
    yjF5                    ~   d dl mZ d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZm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mZ d dl m!Z! d dl"m#Z# d dl$m%Z%m&Z& er"d dl'm(Z( d dl)m*Z*  G d de          Z+ee+         Z, ej-        e.          Z/ G d de          Z0d!dZ1d"d Z2dS )#    )annotationsN)	GeneratorIteratorSequence)Parser)Values)TYPE_CHECKINGcastcanonicalize_name)InvalidVersionVersion)
cmdoptions)IndexGroupCommand)SUCCESS)CommandError)BaseDistributionget_environment)SelectionPreferences)stdlib_pkgs)tabulatewrite_outputPackageFinder)
PipSessionc                  (    e Zd ZU dZded<   ded<   dS )_DistWithLatestInfozGive the distribution object a couple of extra fields.

        These will be populated during ``get_outdated()``. This is dirty but
        makes the rest of the code much cleaner.
        r   latest_versionstrlatest_filetypeN)__name__
__module____qualname____doc____annotations__     \/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/pip/_internal/commands/list.pyr   r      s6         	 	 	 r'   r   c                       e Zd ZdZdZdZddZej        d  fd            Z	d!dZ
d"dZd#dZd#dZd#dZd$dZd%dZd&dZ xZS )'ListCommandzt
    List installed packages, including editables.

    Packages are listed in a case-insensitive sorted order.
    Tz
      %prog [options]returnNonec                   | j                             ddddd           | j                             ddddd	           | j                             d
dddd           | j                             ddddd           | j                             ddddd           | j                             t          j                               | j                             dddddd           | j                             dddd           | j                             dd d!d"           | j                             d#dd!d$d%&           | j                             t          j                               t          j        t          j        | j                  }t          j        t          j        | j                  }| j        	                    d'|           | j        	                    d'|           | j        	                    d'| j                    d S )(Nz-oz
--outdated
store_trueFzList outdated packages)actiondefaulthelpz-uz
--uptodatezList uptodate packagesz-ez
--editablezList editable projects.z-lz--localzSIf in a virtualenv that has global access, do not list globally-installed packages.z--useruserz,Only output packages installed in user-site.)destr/   r0   r1   z--formatstorelist_formatcolumns)r6   freezejsonzSelect the output format among: columns (default), freeze, or json. The 'freeze' format cannot be used with the --outdated option.)r/   r3   r0   choicesr1   z--not-requirednot_requiredz>List packages that are not dependencies of installed packages.)r/   r3   r1   z--exclude-editablestore_falseinclude_editablez%Exclude editable package from output.z--include-editablez#Include editable package in output.T)r/   r3   r1   r0   r   )
cmd_opts
add_optionr   	list_pathlist_excludemake_option_groupindex_groupparserpackage_selection_groupinsert_option_group)self
index_optsselection_optss      r(   add_optionszListCommand.add_options6   sx     ) 	! 	
 	
 	
 	  ) 	! 	
 	
 	
 	  * 	! 	
 	
 	
 	  / 	! 		
 		
 		
 	  ? 	! 	
 	
 	
 	  !5!7!7888  1Q 	! 
	
 
	
 
	
 	  Q	 	! 	
 	
 	
 	    #8	 	! 	
 	
 	
 	   #6 	! 	
 	
 	
 	  !8!:!:;;;1*2H$+VV
#5.K
 

 	'':666''>:::''4=99999r'   optionsr   args	list[str]Iterator[None]c              #     K   |j         s|j        sd V  d S t                                          ||          5  d V  d d d            d S # 1 swxY w Y   d S N)outdateduptodatesuperpip_version_check)rF   rJ   rK   	__class__s      r(   rS   zListCommand.pip_version_check   s        	G$4 	EEEFWW&&w55 	 	EEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAsessionr   r   c                    ddl m} ddlm} |                    ||          }t          d|j                  } |j        ||          S )zK
        Create a package finder appropriate to this list command.
        r   )LinkCollectorr   )rJ   F)allow_yankedrelease_control)link_collectorselection_prefs)pip._internal.index.collectorrW   "pip._internal.index.package_finderr   creater   rY   )rF   rJ   rU   rW   r   rZ   r[   s          r(   _build_package_finderz!ListCommand._build_package_finder   s     	@?????DDDDDD&--gw-GG /#3
 
 

 $}#)+
 
 
 	
r'   intc                   t          j        |           |j        r|j        rt	          d          |j        r|j        dk    rt	          d          t          j        |           t          t                    }|j	        r$|
                    d |j	        D                        d t          |j                                      |j        |j        |j        |j        |          D             }|j        r|                     ||          }|j        r|                     ||          }n|j        r|                     ||          }|                     ||           t.          S )Nz5Options --outdated and --uptodate cannot be combined.r7   z?List format 'freeze' cannot be used with the --outdated option.c              3  4   K   | ]}t          |          V  d S rO   r   ).0ns     r(   	<genexpr>z"ListCommand.run.<locals>.<genexpr>   s+      GG)!,,GGGGGGr'   c                .    g | ]}t          d |          S )r   )r
   )rc   ds     r(   
<listcomp>z#ListCommand.run.<locals>.<listcomp>   s3     	%
 	%
 	%
 &**	%
 	%
 	%
r'   )
local_only	user_onlyeditables_onlyinclude_editablesskip)r   check_release_control_exclusiverP   rQ   r   r5   check_list_path_optionsetr   excludesupdater   pathiter_installed_distributionslocalr2   editabler<   r:   get_not_requiredget_outdatedget_uptodateoutput_package_listingr   )rF   rJ   rK   rm   packagess        r(   runzListCommand.run   s   27;;; 	X 0 	XVWWW 	 3x ? ?Q   	)'222; 	HKKGGg6FGGGGGG	%
 	%
$W\22OO"=!,&/")": P  	%
 	%
 	%
  	@,,Xw??H 	<((7;;HH 	<((7;;H##Hg666r'   r{   _ProcessedDistsc                B    d |                      ||          D             S )Nc                2    g | ]}|j         |j        k    |S r&   r   versionrc   dists     r(   rh   z,ListCommand.get_outdated.<locals>.<listcomp>   s2     
 
 
"T\11 111r'   iter_packages_latest_infosrF   r{   rJ   s      r(   rx   zListCommand.get_outdated   3    
 
77'JJ
 
 
 	
r'   c                B    d |                      ||          D             S )Nc                2    g | ]}|j         |j        k    |S r&   r   r   s     r(   rh   z,ListCommand.get_uptodate.<locals>.<listcomp>   s2     
 
 
"dl22 222r'   r   r   s      r(   ry   zListCommand.get_uptodate   r   r'   c                R    d |D             t          fd|D                       S )Nc                h    h | ]/}|                                 pd D ]}t          |j                  0S )r&   )iter_dependenciesr   name)rc   r   deps      r(   	<setcomp>z/ListCommand.get_not_required.<locals>.<setcomp>   sZ     
 
 
..006B
 
  ch''
 
 
 
r'   c                &    h | ]}|j         v|S r&   canonical_name)rc   pkgdep_keyss     r(   r   z/ListCommand.get_not_required.<locals>.<setcomp>   s&    SSSS0B(0R0RS0R0R0Rr'   )list)rF   r{   rJ   r   s      @r(   rw   zListCommand.get_not_required   sF    
 
 
 
 
 SSSSHSSSTTTr'   *Generator[_DistWithLatestInfo, None, None]c              #      K                                   5 }                     |          d fd}t          ||          D ]}||V  		 d d d            d S # 1 swxY w Y   d S )Nr   r   r+   _DistWithLatestInfo | Nonec                >                        | j                  }                    | j                  rd |D             }                    | j                  }|                    |          }|d S |j        }|j        j        rd}nd}|| _        || _	        | S )Nc                *    g | ]}|j         j        |S r&   )r   is_prerelease)rc   	candidates     r(   rh   zOListCommand.iter_packages_latest_infos.<locals>.latest_info.<locals>.<listcomp>   s4     & & &%(0>&!& & &r'   )project_namewheelsdist)
find_all_candidatesr   should_exclude_prereleasemake_candidate_evaluatorsort_best_candidater   linkis_wheelr   r    )	r   all_candidates	evaluatorbest_candidateremote_versiontypfinderrJ   rF   s	         r(   latest_infoz;ListCommand.iter_packages_latest_infos.<locals>.latest_info   s     "(!;!;D<O!P!P11'4;NOO & &)7& & &N #;;!%!4 <  	 "+!>!>~!N!N!)4!/!7!&/ "!CC!C&4#'*$r'   )r   r   r+   r   )_build_sessionr_   map)rF   r{   rJ   rU   r   r   r   s   ` `   @r(   r   z&ListCommand.iter_packages_latest_infos   s         ))  	W//AAF       6 K22  #JJJ= 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	s   8A!!A%(A%c                   t          |d           }|j        dk    r-|r+t          ||          \  }}|                     ||           d S |j        dk    rl|D ]g}	 |j         d|j         }n!# t          $ r |j         d|j         }Y nw xY w|j        dk    rt          d||j
                   Xt          |           hd S |j        d	k    rt          t          ||                     d S d S )
Nc                    | j         S rO   r   )r   s    r(   <lambda>z4ListCommand.output_package_listing.<locals>.<lambda>  s	    T0 r'   )keyr6   r7   z==z===   z%s (%s)r8   )sortedr5   format_for_columnsoutput_package_listing_columnsraw_namer   r   raw_versionverboser   locationformat_for_json)rF   r{   rJ   dataheaderr   
req_strings          r(   rz   z"ListCommand.output_package_listing  sQ    00
 
 
 )+++-h@@LD&//f===== H,,  - -I$(M!C!CT\!C!CJJ% I I I$(M!H!Hd6F!H!HJJJI?a'' JFFFF ,,,,- -  F**7;;<<<<< +*s   A--B
Br   list[list[str]]r   c                0   t          |          dk    r|                    d|           t          |          \  }}t          |          dk    r3|                    dd                    d |D                                  |D ]}t	          |           d S )Nr   r    c              3      K   | ]	}d |z  V  
dS )-Nr&   rc   xs     r(   re   z=ListCommand.output_package_listing_columns.<locals>.<genexpr><  s&      *B*Bq37*B*B*B*B*B*Br'   )leninsertr   joinr   )rF   r   r   pkg_stringssizesvals         r(   r   z*ListCommand.output_package_listing_columns1  s     t99q==KK6"""%d^^U t99q==q#((*B*BE*B*B*B"B"BCCC 	 	C	 	r'   )r+   r,   )rJ   r   rK   rL   r+   rM   )rJ   r   rU   r   r+   r   )rJ   r   rK   rL   r+   r`   )r{   r}   rJ   r   r+   r}   )r{   r}   rJ   r   r+   r   )r{   r}   rJ   r   r+   r,   )r   r   r   rL   r+   r,   )r!   r"   r#   r$   ignore_require_venvusagerI   
contextlibcontextmanagerrS   r_   r|   rx   ry   rw   r   rz   r   __classcell__)rT   s   @r(   r*   r*   +   s%         ES: S: S: S:j      
 
 
 
.) ) ) )V
 
 
 

 
 
 
U U U U# # # #J= = = =.       r'   r*   pkgsr}   rJ   r   r+   !tuple[list[list[str]], list[str]]c                   ddg}|j         }|r|                    ddg           dd	fd
| D             }t          |          }|r|                    d           t          d | D                       }|r|                    d           |j        dk    r|                    d           |j        dk    r|                    d           g }t          |           D ]\  }}	|	j        |	j        g}
|rA|
                    t          |	j	                             |
                    |	j
                   |r|
                    ||         pd           |r|
                    |	j        pd           |j        dk    r|
                    |	j        pd           |j        dk    r|
                    |	j                   |                    |
           ||fS )z_
    Convert the package data into something usable
    by output_package_listing_columns.
    Packager   LatestTyper   r   r+   
str | Nonec                    	 |                      d          }n# t          $ r Y d S w xY wt                                          |                              d          S )NWHEELBuild)	read_textFileNotFoundErrorr   parsestrget)r   
wheel_files     r(   wheel_build_tagz+format_for_columns.<locals>.wheel_build_tagO  sb    	00JJ  	 	 	44	xx  ,,00999s    
&&c                &    g | ]} |          S r&   r&   )rc   pr   s     r(   rh   z&format_for_columns.<locals>.<listcomp>V  s#    333//!$$333r'   r   c              3  $   K   | ]}|j         V  d S rO   )rv   r   s     r(   re   z%format_for_columns.<locals>.<genexpr>[  s$      11q
111111r'   zEditable project locationr   Location	Installer )r   r   r+   r   )rP   extendanyappendr   	enumerater   r   r   r   r    editable_project_locationr   	installer)r   rJ   r   running_outdated
build_tagshas_build_tagshas_editablesr   iprojrowr   s              @r(   r   r   B  s    #F' *x())): : : : 4333d333J__N g11D11111M 31222!j!!!!k"""DT??  4 }d./ 	-JJs4.//000JJt+,,, 	,JJz!}*+++ 	=JJt5;<<<?aJJt}*+++?aJJt~&&&C<r'   r{   r   c                ~   g }| D ]}	 t          |j                  }n# t          $ r
 |j        }Y nw xY w|j        |d}|j        dk    r|j        pd|d<   |j        |d<   |j        r!t          |j	                  |d<   |j
        |d<   |j        }|r||d<   |                    |           t          j        |          S )	N)r   r   r   r   r   r   r   r    r   )r   r   r   r   r   r   r   r   rP   r   r    r   r   r8   dumps)r{   rJ   r   r   r   infor   s          r(   r   r   ~  s   D  	'$,''GG 	' 	' 	'&GGG	' M
 
 ?a#}2D $D 	;%()<%=%=D!"&*&:D"#$($B!$ 	J0ID,-D:ds   11)r   r}   rJ   r   r+   r   )r{   r}   rJ   r   r+   r   )3
__future__r   r   r8   loggingcollections.abcr   r   r   email.parserr   optparser   typingr	   r
   pip._vendor.packaging.utilsr   pip._vendor.packaging.versionr   r   pip._internal.clir   pip._internal.cli.index_commandr   pip._internal.cli.status_codesr   pip._internal.exceptionsr   pip._internal.metadatar   r   $pip._internal.models.selection_prefsr   pip._internal.utils.compatr   pip._internal.utils.miscr   r   r]   r   pip._internal.network.sessionr   r   r}   	getLoggerr!   loggerr*   r   r   r&   r'   r(   <module>r
     s4   " " " " " "       9 9 9 9 9 9 9 9 9 9             & & & & & & & & 9 9 9 9 9 9 A A A A A A A A ( ( ( ( ( ( = = = = = = 2 2 2 2 2 2 1 1 1 1 1 1 D D D D D D D D E E E E E E 2 2 2 2 2 2 ; ; ; ; ; ; ; ; 4@@@@@@888888    .    23O 
	8	$	$T T T T T# T T Tn9 9 9 9x     r'   