
    wBf                         d Z ddlZddlZddlmZmZmZ ddlmZm	Z	  ej                  e      ZdedefdZd Zd	 Z	 	 	 	 dd
Z	 	 	 	 	 	 ddZddZdededefdZy)zXCLI implementation for `conda list`.

Lists all packages installed into an environment.
    N)ArgumentParser	Namespace_SubParsersAction)isdirisfilesub_parsersreturnc                 8   ddl m} ddlm}m}m} d}|} |d      } | j                  	 d+|||d|}	 ||	        ||	        ||	       |	j                  dd	d
d       |	j                  ddd	d       |	j                  ddd	d       |	j                  dd	d       |	j                  dd	d       |	j                  ddd	d       |	j                  ddd	d       |	j                  ddd d!d"#       |	j                  d$d%d&d'(       |	j                  d)*       |	S ),N   )dals   )add_parser_jsonadd_parser_prefixadd_parser_show_channel_urlsz/List installed packages in a conda environment.aQ  
        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

        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	--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-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--no-pipstore_falseTpipz+Do not include pip-only installed packages.)r   r   destr   regexstore?z4List only packages matching this regular expression.)r   nargsr   zconda.cli.main_list.execute)func)list)	
auxlib.ishr   helpersr   r   r   
add_parseradd_argumentset_defaults)
r   kwargsr   r   r   r   summaryr   r   ps
             3lib/python3.12/site-packages/conda/cli/main_list.pyconfigure_parserr)      s   !  @GK	F> 				
 	A aA #NN8	   NN7	   NN;	   NN7   NN5  
 NN	   NN)	   NN:   NNC	   NN5N6H    c                 L    t        d       t        d       t        d| z         y )Nz7# This file may be used to create an environment using:z0# $ conda create --name <env> --file <this file>z# platform: %s)print)subdirs    r(   print_export_headerr.      s"    	
CD	
<=	
V
#$r*   c              #      K   |r$t        j                  |t         j                        nd }t        | d       D ]$  }|r|j	                  |j
                        !| & y w)Nc                 6    | j                   j                         S N)namelowerxs    r(   <lambda>zget_packages.<locals>.<lambda>   s    afflln r*   key)recompileIsortedsearchr2   )	installedr   pat
prefix_recs       r(   get_packagesrA      sS     %*"**UBDD
!CY,DE 
3::joo.6s   AA!c                    ddl m} ddlm} ddlm} ddlm} d}	t         || d	      j                         d
       }
g }|rt        |
|      n|
D ]  }|dk(  r<|j                  |j                  r|j                         n|j                                D|dk(  rB|j                  dj                  |j                   |j"                  |j$                  f             t'        |j)                  d      xs d      }d|z  }|d ||      z  z  }|j)                  d      }|xs |j*                  }|s|||k7  r|d|z  z  }|j                  |        |rt-        |      }g }|dk(  rd| z  dddz  g}|j/                  |       |	|fS )Nr   )DEFAULTS_CHANNEL_NAMEcontext
PrefixDatar   )disp_featuresr   T)pip_interop_enabledc                     | j                   S r1   )r2   r4   s    r(   r6   zlist_packages.<locals>.<lambda>   s
    aff r*   r7   	canonicalexport=features z&%(name)-25s %(version)-15s %(build)15sz  %sschannelhumanz # packages in environment at %s:#z# %-23s %-15s %15s  Channel)NameVersionBuild)base.constantsrC   base.contextrE   core.prefix_datarG   commonrH   r<   iter_recordsrA   appendjsondist_fields_dumpdist_strjoinr2   versionbuildsetgetshow_channel_urlsreversedextend)prefixr   formatreverserd   rC   rE   rG   rH   resr>   packagesprecrN   disprP   results                    r(   list_packagesro      s    7&-%
C6t4AACI
 H27Y.Y [ OO+2<<%%'T]]_ XOOCHHdiitzz%JKLtxx
+1r27$>x00088J'-J1J1J (11FX%%D-0 H%F.7),HH

 MM(;r*   c                 *   ddl m} ddlm} t	        |       sddlm}	  |	|       |s|dk(  rt        |j                         t        | ||||      \  }
}|j                  r
 ||       |
S t        dj                  t        t        |                   |
S )	Nr   rD   r   stdout_jsonEnvironmentLocationNotFoundrL   )rh   ri   rd   
)rW   rE   rY   rr   r   
exceptionsrt   r.   r-   ro   r\   r,   r_   mapstr)rg   r   rh   ri   piplistr\   rd   rE   rr   rt   exitcodeoutputs               r(   print_packagesr|      s     '#=<)&11X/$+Hf ||F
 O 	diiC()*Or*   c                    ddl m} ddlm} ddlm} t        |       sddlm}  ||       t        |j                         t        d        ||       j                         D ]`  }|j                  d      }|r|j                  |      rt        d|d	   z         9|j                  d
      }t        ||r|rd|z  ndz          b y )Nr   )UNKNOWN_CHANNELrD   rF   rs   z	@EXPLICITurlz# no URL for: %sfnmd5z#%s )rV   r~   rW   rE   rX   rG   r   rv   rt   r.   r-   r,   iter_records_sortedrc   
startswith)	rg   add_md5r~   rE   rG   rt   prefix_recordr   r   s	            r(   print_explicitr      s    0&-=<)&11'	+#F+??A >&cnn_5$}T'::;&cGUS[<=>r*   argsparserc           	         ddl m} ddlm} ddlm} ddlm} |j                  } ||      sddl	m
}  ||      | j                  }| j                  rd|z  }| j                  ri ||      }	t        |	j                        r4|j                   s|	j#                          y
 ||	j%                                y
dd	l	m}
  |
|	j                        | j(                  rt+        || j,                         y
| j.                  rd}n| j0                  rd}nd}|j                   rd}t3        |||| j4                  | j6                  |j                   |j8                        S )Nr   rD   )is_conda_environment)Historyr   rq   rs   z^%s$)PathNotFoundErrorr   rK   rL   rQ   )ri   ry   r\   rd   )rW   rE   gateways.disk.testr   historyr   rY   rr   target_prefixrv   rt   r   	full_name	revisionsr   pathr\   	print_log
object_logr   explicitr   r   rK   rL   r|   ri   r   rd   )r   r   rE   r   r   rr   rg   rt   r   hr   rh   s               r(   executer     s   &9!#""F'<)&11JJE~~%~~FO!&&><<  ALLN+
  7#AFF++ }}vtxx(~~	||\\!33 r*   )NrQ   FN)NrQ   FFFN)F)__doc__loggingr9   argparser   r   r   os.pathr   r   	getLogger__name__logr)   r.   rA   ro   r|   r   intr   rO   r*   r(   <module>r      s   
  	 A A !g!n"3 n. nb% 8z 	"J>(3) 3^ 3 3r*   