
    si:2                    
   S r SSKJr  SSKrSSKrSSKJrJr  SSKJ	r	  SSK
Jr  \	(       a  SSKJrJrJr  SS	KJr  \R"                  " \5      rSS
 jrS rS r        S SS jjr         S SS jjrSS jrSS jrg)zXCLI implementation for `conda list`.

Lists all packages installed into an environment.
    )annotationsN)isdirisfile)TYPE_CHECKING   )__version__)ArgumentParser	Namespace_SubParsersAction)Anyc                   SSK Jn  SSKJn  SSKJnJnJnJn  SnUn	U" S5      n
U R                  "  S9UU	U
S.UD6nU" U5        U" U5        U" U5        UR                  S	US
SSR                  [        U5      5       S3S9  UR                  SSSSS9  UR                  SSSSS9  UR                  SSSSS9  UR                  SSSS9  UR                  SSSS9  UR                  SSS S9  UR                  S!S"SS#S9  UR                  S$S%SS&S9  UR                  S'SS(S9  UR                  S)S*S+S,S-S.9  UR                  S/S*S+S0S1S.9  UR                  S2S3S4S5S69  UR                  S7S89  U$ ):Nr   )dals)CONDA_LIST_FIELDS   )add_parser_jsonadd_parser_prefixadd_parser_show_channel_urlscomma_separated_strippedz/List installed packages in a conda environment.a  
        Examples:

        List all packages in the current environment::

            conda list

        List all packages in reverse order::

            conda list --reverse

        List all packages installed into the environment 'myenv'::

            conda list -n myenv

        List all packages that begin with the letters "py", using regex::

            conda list ^py

        List name and version only::

            conda list --fields name,version

        Save packages for future use::

            conda list --export > package-list.txt

        Reinstall packages from an export file::

            conda create -n myenv --file package-list.txt

        )helpdescriptionepilogz--fieldslist_fieldsz7Comma-separated list of fields to print. Valid values: ,.)typedestr   z	--reverse
store_trueFz)List installed packages in reverse order.)actiondefaultr   z-cz--canonicalz(Output canonical names of packages only.)r   r   z-fz--full-namez]Only search for full names, i.e., ^<regex>$. --full-name NAME is identical to regex '^NAME$'.z
--explicitzbList explicitly all installed conda packages with URL (output may be used by conda create --file).z--md5z&Add MD5 hashsum when using --explicit.z--sha256z)Add SHA256 hashsum when using --explicit.z-ez--exportzOutput explicit, machine-readable requirement strings instead of human-readable lists of packages. This output may be used by conda create --file.z-rz--revisionszList the revision history.z--sizez#Show package and environment sizes.z--no-pipstore_falseTpipz+Do not include pip-only installed packages.)r   r   r   r   z--authremove_authzfIn explicit mode, leave authentication details in package URLs. They are removed by default otherwise.regexstore?z4List only packages matching this regular expression.)r   nargsr   zconda.cli.main_list.execute)func)list)
auxlib.ishr   base.constantsr   helpersr   r   r   r   
add_parseradd_argumentjoinsortedset_defaults)sub_parserskwargsr   r   r   r   r   r   summaryr   r   ps               3lib/python3.13/site-packages/conda/cli/main_list.pyconfigure_parserr6      s>   !2  @GK	!FF 				
 	A aA #NN%&):";<=Q@	   NN8	   NN7	   NN;	   NN7   NN5  
 NN8  
 NN	   NN)	   NN2  
 NN:   NN1   NNC	   NN5N6H    c                p    [        S5        [        S5        [        SU  35        [        S[         35        g )Nz7# This file may be used to create an environment using:z0# $ conda create --name <env> --file <this file>z# platform: z# created-by: conda )printr   )subdirs    r5   print_export_headerr;      s3    	
CD	
<=	L
!"	 
./r7   c              #     #    U(       a%  [         R                  " U[         R                  5      OS n[        U S S9 H,  nU(       a  UR	                  UR
                  5      c  M(  Uv   M.     g 7f)Nc                6    U R                   R                  5       $ N)namelowerxs    r5   <lambda>get_packages.<locals>.<lambda>   s    affllnr7   key)recompileIr/   searchr?   )	installedr#   pat
prefix_recs       r5   get_packagesrN      sN     %*"**UBDD
!CY,DE
3::joo.6 Fs   A+A-c	           	     	   SSK Jn	Jn
Jn  SSKJn  SSKJn  SSKJ	nJ
n  SSKJn  SSKJn  S	nU" U S
S9nU(       a  UR                  5         U(       aJ  U(       a  UR!                  US 5      nU(       a  U4OSnO=[#        [%        UR'                  5       U5      S S9nO[#        UR'                  5       S S9nU=(       d    UR(                  n[+        U=(       d    UR,                  5      nU(       a  SU;  a  UR/                  S5        [1        U5      R3                  U	5      =n(       a!  U" S[#        U5       S[+        U	5       S35      e/ nU Vs/ s H  nU	U   PM
     nn[5        US S 5      U
:X  a%  / SQUSS   Vs/ s H  n[7        U5      PM     sn-   nOU Vs/ s H  n[7        U5      PM     nnU GH  nUS:X  ay  UR8                  (       aG  UR;                  5       nU(       a  UR=                  UR>                  5      US'   UR/                  U5        OUR/                  URA                  5       5        M  US:X  a  UR/                  URB                  5        M  / n[E        U5       GH  u  nnUS:X  a,  [1        UR!                  S5      =(       d    S5      n U" U 5      n!OUS:X  a0  UR!                  S5      n"U(       d	  Uc  U"U:w  a  [G        U"5      n!O|Sn!OyUS:X  a  URA                  5       n!ObUS:X  a"  U" UR=                  UR>                  5      5      n!O:[G        UR!                  US 5      =(       d    S5      RI                  5       n!U!S:X  a  Sn!UR/                  U!5        [7        U!5      =n#UU   :  d  GM  U#UU'   GM     UR/                  U5        GM     U(       a"  U(       d  U(       a  U" X5      eU" SU S35      eU(       a  [K        U5      nUS:X  a  S RM                  U V$s/ s H	  n$S!U$ S"3PM     sn$5      n%S#U  S$3/n&U(       a*  U" URO                  5       5      n'U&R/                  S%U' 35        U&RQ                  S&S'U% 3[5        U5      -  /5        US	==   S-  ss'   S RM                  U V$s/ s H	  n$S!U$ S"3PM     sn$5      n%U&RQ                  U Vs/ s H  nU%[5        U5      -  PM     sn5        UU&4$ [+        U5      n&UU&4$ s  snf s  snf s  snf s  sn$f s  sn$f s  snf )(Nr   )r   DEFAULT_CONDA_LIST_FIELDSDEFAULTS_CHANNEL_NAMEcontext
PrefixData)CondaValueErrorPackageNotInstalledError)human_bytesr   )disp_featuresr   T)interoperability c                    U R                   $ r>   r?   rA   s    r5   rC   list_packages.<locals>.<lambda>   s    affr7   rE   c                    U R                   $ r>   r]   rA   s    r5   rC   r^      s    !&&r7   sizezInvalid fields passed: z. Valid options are r      )      rc   r   	canonicalexportfeatureschannel_name dist_strNonezNo packages match 'z'.humanz  z%-sz# packages in environment at :z# environment size: #z# ))r*   r   rP   rQ   base.contextrS   core.prefix_datarU   
exceptionsrV   rW   utilsrX   commonrY   loadgetr/   rN   iter_recordsshow_channel_urlsr(   r   appendset
differencetuplelenjsondist_fields_dumppackage_sizeprefix_pathri   spec	enumeratestrstripreversedr.   r`   extend)(prefixr#   formatreverserw   reload_recordsfieldsregex_is_full_name	show_sizer   rP   rQ   rS   rU   rV   rW   rX   rY   exitcodeprefix_datarecordprefix_recordsinvalid_fieldspackagesfieldtitlestitlewidthsprecpackagerowidxrf   valuerg   value_lengthwidthtemplate_lineresultenv_sizes(                                           r5   list_packagesr      s    
 '-F#%HVd;K __UD1F*0fYbN#[557?$N
   8 8 :@PQ)FW-F-F&/G//0FV6)fV//0ABB~B%f^&<%= >!!%&7!8 9<
 	
 H4:;F5&FF;VBQZ55 F12J#GJ5CJJ#GG*01&#e*&1[ ||//1&*&7&78O8O&PGFO(0XOODII& #F+JC
"txx
39r:%h/.(#xx7%(0$(==-EE*$&#D$5$5k6M6M$NODHHUD17R8>>@F?EJJu #E
*fSk9*s1 ,4 	U X X*699 3E7"=>>H%		f"EfURwa=f"EF+F815
 ";#3#3#56HMM0
;<]O$uV}4	
 	q	Q			f"EfURwa=f"EFXNX'}uW~5XNO V hVY <#G1l #F #FNs$   S;SS&S3SS$c
                   SSK Jn
  SSKJn  [	        U 5      (       d  SSKJn  U" U 5      eU(       d  US:X  a  [        U
R                  5        [        U UUUUUUU	S9u  pU
R                  (       a
  U" U5        U$ [        SR                  U Vs/ s H  n[        U5      R                  5       PM     sn5      5        U$ s  snf )	Nr   rR   r   stdout_jsonEnvironmentLocationNotFoundre   )r   r   rw   r   r   r   
)ro   rS   rs   r   r   rq   r   r;   r:   r   r}   r9   r.   r   rstrip)r   r#   r   r   piplistr}   rw   r   r   r   rS   r   r   r   outputlines                   r5   print_packagesr   7  s     '#==<)&11X/$+-	H ||F
 O 	dii?T))+?@AO @s   #B>c                   SSK JnJn  SSKJn  SSKJn  SSKJn  U(       a  U(       a  [        S5      e[        U 5      (       d  SSKJn	  U	" U 5      e[        UR                  5        [        U5        U" U 5      R!                  5        H  n
U
R#                  S5      nU(       a  UR%                  U5      (       a  [        S	R'                  U
S
   5      5        MP  U(       a#  UR)                  UR+                  U5      S   5      nU(       d  U(       a7  U(       a  SOSnU
R#                  U5      n[        X(       a  SU 3OS-   5        M  [        U5        M     g )Nr   )EXPLICIT_MARKERUNKNOWN_CHANNELrR   )urlrT   z0Only one of add_md5 and add_sha256 can be chosenr   r   z# no URL for: {}fnr   md5sha256rn   rh   )r*   r   r   ro   rS   rs   r   rp   rU   
ValueErrorr   rq   r   r;   r:   r9   iter_records_sortedru   
startswithr   r"   split_anaconda_token)r   add_md5r"   
add_sha256r   r   rS   
common_urlrU   r   prefix_recordr   hash_key
hash_values                 r5   print_explicitr   b  s    A&*-:KLL==<)&11'	/#F+??A&cnn_55$++M$,?@A(()H)H)Ma)PQCj 'uXH&**84J#Z1ZL)R@A#J Br7   c                   SSK Jn  SSKJn  SSKJn  SSKJn  UR                  5       nUR                  5         [        UR                  5      nU R                  (       a  U R                  (       a  SSKJn  U" S5      eU R                   n	U R"                  (       at  U" U5      n
[%        U
R&                  5      (       a:  UR(                  (       d  U
R+                  5         g
U" U
R-                  5       5         g
SS	KJn  U" U
R&                  5      eU R0                  (       a,  [3        XpR                  U R4                  U R                  5        g
U R6                  (       a  SnOU R8                  (       a  SnOSnUR(                  (       a  Sn[;        UU	UU R<                  U R>                  UR(                  UR@                  U RB                  U RD                  S9	$ )Nr   rR   rT   )Historyr   r   )ArgumentErrorz@Only one of --md5 and --sha256 can be specified at the same time)PathNotFoundErrorr   rd   re   rk   )r   r   r}   rw   r   r   )#ro   rS   rp   rU   historyr   rs   r   from_contextassert_environmentr   r   r   r   rq   r   r#   	revisionsr   pathr}   	print_log
object_logr   explicitr   r"   rd   re   r   r   r!   rw   	full_namer`   )argsparserrS   rU   r   r   r   r   r   r#   hr   r   s                r5   executer     sO   &-!#))+K""$(()FxxDKK.N
 	
 JJE~~FO!&&>><<  ALLN+
  7#AFF++ }}vxx)9)94;;G~~	||\\!33>>))
 
r7   )r1   r   returnr	   )Nrk   FNTNFF)r   z,tuple[int, list[str] | list[dict[str, Any]]])	Nrk   FFFNNFF)r   int)FTF)r   r
   r   r	   r   r   )__doc__
__future__r   loggingrG   os.pathr   r   typingr   rh   r   argparser	   r
   r   r   	getLogger__name__logr6   r;   rN   r   r   r   r   r[   r7   r5   <module>r      s   
 #  	 !   EE!M`0 } 2}D 	( 	(V:8r7   