
    ff                        d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ dddZdd	Zdd
ZddZddZddZy)    )annotationsN)Any)Configuration)
find_files)_get_version)walk_potential_rootsc                v   t        |       }|j                  xs d}|j                  xs t        |      }	 t	        j
                  ||j                  )t        j                  j                  |j                        nd       }t        ||j                         }|t#        d|      |j$                  r|j'                  d      d	   }t)        |||      S # t        t        f$ rU}t        dt        j                  j                  |       d| dt        j                         t	        |      }Y d }~d }~ww xY w)
N.)rootzWarning: could not use z(, using default configuration.
 Reason: )file)force_write_version_fileszERROR: no version found forz.devr   )_get_cli_optsr   config_find_pyprojectr   	from_fileospathabspathLookupErrorFileNotFoundErrorprintrelpathsysstderrr   r   
SystemExit	strip_dev	partitioncommand)argsoptsinferred_root	pyprojectr   exversions          k/var/dept/share/cheung/public_html/OutSchool/python/env/lib/python3.12/site-packages/setuptools_scm/_cli.pymainr&      s   D)cM=}=I3((04		0E"''//$)),4
 $*H*HG 6==~~##F+A.4&))% *+ 3%bggooi&@%A Bt1 		
 M23s   AC D8#AD33D8c                F   d}d}t        j                  ||      }|j                  ddd d       |j                  dd	d d
d       |j                  ddd       |j                  dddd       g d}|j                  ddt        j                  dd|       |j                  ddt        j                  dd       |j                  ddd        |j                  d!d"d#$      }d%}|j                  d&|d'   j                         |d(d  z   |)       |j                  |       S )*Nzpython -m setuptools_scmz/Print project version according to SCM metadata)descriptionz-rz--rootzHdirectory managed by the SCM, default: inferred from config file, or ".")defaulthelpz-cz--configPATHzlpath to 'pyproject.toml' with setuptools_scm config, default: looked up in the current or parent directories)r)   metavarr*   z--strip-dev
store_truezEremove the dev/local parts of the version before printing the version)actionr*   z-Nz--no-versionz,do not include package version in the output)jsonplain	key-valuez-fz--formatr0   zspecify output format)typer)   r*   choicesz-qz--query*zdisplay setuptools_scm settings according to query, e.g. dist_name, do not supply an argument in order to print a list of valid queries.)r2   nargsr*   z--force-write-version-fileszntrigger to write the content of the version files
its recommended to use normal/editable installation instead)zextra commandsr    )titledestr,   z7List information about the package, e.g. included fileslsr      )r*   r(   )	argparseArgumentParseradd_argumentstrcasefoldadd_subparsers
add_parserlower
parse_args)r   progdescparseroutput_formatssubs         r%   r   r   0   sv   %D<D$$Tt<F
W	   B   T  
 ;	   4N
\\$   \\)   %G   

&6YPR

SCDDNN4d1gmmoQR8dNKT""    c                   i }| j                   dk(  rdg| _        | j                  g k(  r@d| _        t        j                  j                  d       dg| _        dg|j                  |d<   | j                  g | _        | j                  s||d<   d| j                  v rt        |j                        |d<   | j                  D ]2  }|dv r	 |j                  d      r
t               t        ||      ||<   4 | j                  dk(  r t        t        j                  |d             | j                  dk(  rt!        |       | j                  dk(  rt#        |       y# t        $ r' t        j                  j                  d	| d
       Y  yw xY w)Nr9   filesTzAvailable queries:

queriesr$   )rK   rL   r$   _zError: unknown query: 'z'
r:   r/      )indentr0   r1   r   )r   query
no_versionr   r   write__dataclass_fields__r   r   
startswithAttributeErrorgetattrformatr   r/   dumps_print_plain_print_key_value)r    r$   r   dataqs        r%   r   r   n   sf   D||tY
zzR

12[
"AV%@%@AYzz
??!Y$**"6;;/WZZ 
//	||C $&&fa(DG
 {{fdjja(){{gT{{k!  	JJ6qc=>	s   *E,FFc                (   | j                  dd       }|rt        |       | j                  dg       }|D ]  }t        |        | j                  dg       }|D ]  }t        |        | r)t        dj                  | j                                      y y )Nr$   rK   rL   
)popr   joinvalues)r[   r$   rK   file_rL   rP   s         r%   rY   rY      s    hhy$'GgHHWb!E ehhy"%G edii&' rI   c                    | j                         D ]G  \  }}t        |t              rt        | d|        'dj	                  |      }t        | d|        I y )Nz = z
  )items
isinstancer>   r   r`   )r[   keyvalue	str_values       r%   rZ   rZ      sY    jjl *
UeS!SEUG$%E*ISEYK()*rI   c                    t        t        j                  j                  |             D ]E  }t        j                  j	                  |d      }t        j                  j                  |      sC|c S  t        j                  j                  d      S )Nzpyproject.toml)r   r   r   r   r`   isfile)parent	directoryr"   s      r%   r   r      sh    )"''//&*AB 	GGLL,<=	77>>)$
 77?? rI   )N)r   list[str] | Nonereturnint)r   rm   rn   argparse.Namespace)r    rp   r$   r>   r   r   rn   ro   )r[   zdict[str, Any]rn   None)rk   r>   rn   r>   )
__future__r   r;   r/   r   r   typingr   setuptools_scmr   setuptools_scm._file_findersr    setuptools_scm._get_version_implr   setuptools_scm.discoverr   r&   r   r   rY   rZ   r    rI   r%   <module>ry      sD    "   	 
  ( 3 9 8*@:#|*Z(*rI   