
    jF5                       S SK Jr  S SKrS SKrS SKrS SKJrJrJr  S SK	J
r
  S SKJr  S SKJrJr  S SKJr  S SKJrJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJrJr  S SK J!r!  S SK"J#r#  S SK$J%r%J&r&  \(       a  S SK'J(r(  S SK)J*r*   " S S\5      r+\\+   r,\RZ                  " \.5      r/ " S S\5      r0      SS jr1SS jr2g)    )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                  .    \ rS rSr% SrS\S'   S\S'   Srg)	_DistWithLatestInfo   zGive 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_filetype N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r"       l/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pip/_internal/commands/list.pyr   r      s    	  r*   r   c                    ^  \ rS rSrSrSrSrSS jr\R                  SU 4S jj5       r
      SS jrSS jr      SS	 jr      SS
 jr      SS jr      SS jr      SS jr      SS jrSrU =r$ )ListCommand+   zh
List installed packages, including editables.

Packages are listed in a case-insensitive sorted order.
Tz
      %prog [options]c           	     <   U R                   R                  SSSSSS9  U R                   R                  SSSSS	S9  U R                   R                  S
SSSSS9  U R                   R                  SSSSSS9  U R                   R                  SSSSSS9  U R                   R                  [        R                  " 5       5        U R                   R                  SSSSSSS9  U R                   R                  SSSSS9  U R                   R                  SS S!S"S9  U R                   R                  S#SS!S$S%S&9  U R                   R                  [        R                  " 5       5        [        R
                  " [        R                  U R                  5      n[        R
                  " [        R                  U R                  5      nU R                  R                  S'U5        U R                  R                  S'U5        U R                  R                  S'U R                   5        g )(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.)destr1   r2   r3   z--formatstorelist_formatcolumns)r8   freezejsonzSelect the output format among: columns (default), freeze, or json. The 'freeze' format cannot be used with the --outdated option.)r1   r5   r2   choicesr3   z--not-requirednot_requiredz>List packages that are not dependencies of installed packages.)r1   r5   r3   z--exclude-editablestore_falseinclude_editablez%Exclude editable package from output.z--include-editablez#Include editable package in output.T)r1   r5   r3   r2   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_optionsListCommand.add_options6   s      ) 	! 	
 	  ) 	! 	
 	  * 	! 	
 	  / 	! 		
 	  ? 	! 	
 	  !5!5!78  1Q 	! 
	
 	  Q	 	! 	
 	    #8	 	! 	
 	   #6 	! 	
 	  !8!8!:;11*2H2H$++V
#55..KK

 	'':6''>:''4==9r*   c              #     >#    UR                   (       d  UR                  (       d  S v   g [        TU ]  X5         S v   S S S 5        g ! , (       d  f       g = f7fN)outdateduptodatesuperpip_version_check)rH   optionsargs	__class__s      r+   rR   ListCommand.pip_version_check   s8       G$4$4W&w5 655s   7AA	A
AAc                    SSK Jn  SSKJn  UR	                  X!S9n[        SUR                  S9nUR                  " UUS9$ )z;
Create a package finder appropriate to this list command.
r   )LinkCollectorr   )rS   F)allow_yankedrelease_control)link_collectorselection_prefs)pip._internal.index.collectorrX   "pip._internal.index.package_finderr   creater   rZ   )rH   rS   sessionrX   r   r[   r\   s          r+   _build_package_finder!ListCommand._build_package_finder   sQ     	@D&--g-G /#33

 ##)+
 	
r*   c                f   [         R                  " U5        UR                  (       a  UR                  (       a  [	        S5      eUR                  (       a  UR
                  S:X  a  [	        S5      e[         R                  " U5        [        [        5      nUR                  (       a"  UR                  S UR                   5       5        [        UR                  5      R                  UR                  UR                  UR                   UR"                  US9 Vs/ s H  n[%        SU5      PM     nnUR&                  (       a  U R)                  XQ5      nUR                  (       a  U R+                  XQ5      nO"UR                  (       a  U R-                  XQ5      nU R/                  XQ5        [0        $ s  snf )Nz5Options --outdated and --uptodate cannot be combined.r9   z?List format 'freeze' cannot be used with the --outdated option.c              3  8   #    U  H  n[        U5      v   M     g 7frN   r   ).0ns     r+   	<genexpr>"ListCommand.run.<locals>.<genexpr>   s     G6F)!,,6F   )
local_only	user_onlyeditables_onlyinclude_editablesskipr   )r   check_release_control_exclusiverO   rP   r   r7   check_list_path_optionsetr   excludesupdater   pathiter_installed_distributionslocalr4   editabler>   r
   r<   get_not_requiredget_outdatedget_uptodateoutput_package_listingr   )rH   rS   rT   rn   dpackagess         r+   runListCommand.run   s^   227; 0 0VWW 3 3x ?Q  	))'2;KKGg6F6FGG %W\\2OO"==!,,&//")":": P 	%
 &* 	 	%
 ,,X?H((;H((;H##H61	%
s   F.c                    U R                  X5       Vs/ s H!  nUR                  UR                  :  d  M  UPM#     sn$ s  snf rN   iter_packages_latest_infosr   versionrH   r}   rS   dists       r+   ry   ListCommand.get_outdated   sF    
 77J
J""T\\1 J
 	
 
   ??c                    U R                  X5       Vs/ s H!  nUR                  UR                  :X  d  M  UPM#     sn$ s  snf rN   r   r   s       r+   rz   ListCommand.get_uptodate   sF    
 77J
J""dll2 J
 	
 
r   c                   U VVs1 s H9  nUR                  5       =(       d    S  H  n[        UR                  5      iM     M;     nnn[        U Vs1 s H  ofR                  U;  d  M  UiM     sn5      $ s  snnf s  snf )Nr"   )iter_dependenciesr   namelistcanonical_name)rH   r}   rS   r   depdep_keyspkgs          r+   rx   ListCommand.get_not_required   s}    
 !
 ..06B6 chh'6 (  	 
 HSHS0B0B(0RSHSTT
 Ts   A A6A<)A<c              #     ^ ^^#    T R                  T5       nT R                  TU5      m    SUUU 4S jjn[        XA5       H  nUc  M  Uv   M     S S S 5        g ! , (       d  f       g = f7f)Nc                  > TR                  U R                  5      nT	R                  TU R                  5      (       a/  U Vs/ s H"  nUR                  R                  (       a  M   UPM$     nnTR                  U R                  S9nUR                  U5      nUc  g UR                  nUR                  R                  (       a  SnOSnXPl	        X`l
        U $ s  snf )N)project_namewheelsdist)find_all_candidatesr   should_exclude_prereleaser   is_prereleasemake_candidate_evaluatorsort_best_candidatelinkis_wheelr   r!   )
r   all_candidates	candidate	evaluatorbest_candidateremote_versiontypfinderrS   rH   s
          r+   latest_info;ListCommand.iter_packages_latest_infos.<locals>.latest_info   s     "(!;!;D<O<O!P11'4;N;NOO *8&)7I(00>> ")7 # & #;;!%!4!4 < 	 "+!>!>~!N!)!/!7!7!&&//!C!C&4#'*$)&s   C%C)r   r   returnz_DistWithLatestInfo | None)_build_sessionra   map)rH   r}   rS   r`   r   r   r   s   ` `   @r+   r   &ListCommand.iter_packages_latest_infos   sk        )W//AF)+ 6 K2#J 3= *))s"   A-0AA	A-
A*&A-c                   [        US S9nUR                  S:X  a&  U(       a  [        X5      u  p4U R                  X45        g UR                  S:X  aY  U HR  n UR                   SUR
                   3nUR                  S:  a  [        SXeR                  5        MG  [        U5        MT     g UR                  S	:X  a  [        [        X5      5        g g ! [         a    UR                   SUR                   3n Nf = f)
Nc                    U R                   $ rN   )r   )r   s    r+   <lambda>4ListCommand.output_package_listing.<locals>.<lambda>  s
    T00r*   )keyr8   r9   z==z===   z%s (%s)r:   )sortedr7   format_for_columnsoutput_package_listing_columnsraw_namer   r   raw_versionverboser   locationformat_for_json)rH   r}   rS   dataheaderr   
req_strings          r+   r{   "ListCommand.output_package_listing  s     0
 )+-h@LD//=  H, I$(MM?"T\\N!CJ ??a' JF , !   F*;< + & I$(MM?#d6F6F5G!HJIs   C%C98C9c                    [        U5      S:  a  UR                  SU5        [        U5      u  p4[        U5      S:  a(  UR                  SSR                  S U 5       5      5        U H  n[	        U5        M     g )Nr   r    c              3  ,   #    U  H
  nS U-  v   M     g7f)-Nr"   re   xs     r+   rg   =ListCommand.output_package_listing_columns.<locals>.<genexpr><  s     *BEq37Es   )leninsertr   joinr   )rH   r   r   pkg_stringssizesvals         r+   r   *ListCommand.output_package_listing_columns1  sg     t9q=KK6"%d^ t9q=q#((*BE*B"BCC r*   r"   )r   None)rS   r   rT   	list[str]r   zIterator[None])rS   r   r`   r   r   r   )rS   r   rT   r   r   int)r}   _ProcessedDistsrS   r   r   r   )r}   r   rS   r   r   z*Generator[_DistWithLatestInfo, None, None])r}   r   rS   r   r   r   )r   zlist[list[str]]r   r   r   r   )r#   r$   r%   r&   r'   ignore_require_venvusagerK   
contextlibcontextmanagerrR   ra   r~   ry   rz   rx   r   r{   r   r)   __classcell__)rU   s   @r+   r-   r-   +   s    ES:j  

(2
	
.)V
'
28
	

'
28
	
U'U28U	U#'#28#	3#J='=28=	=.#-6	 r*   r-   c                $   SS/nUR                   nU(       a  UR                  SS/5        SS jnU  Vs/ s H
  oT" U5      PM     nn[        U5      nU(       a  UR                  S5        [        S U  5       5      nU(       a  UR                  S5        UR                  S	:  a  UR                  S
5        UR                  S	:  a  UR                  S5        / n	[        U 5       GH"  u  pUR                  UR                  /nU(       a?  UR                  [        UR                  5      5        UR                  UR                  5        U(       a  UR                  Xj   =(       d    S5        U(       a$  UR                  UR                  =(       d    S5        UR                  S	:  a$  UR                  UR                  =(       d    S5        UR                  S	:  a  UR                  UR                  5        U	R                  U5        GM%     X4$ s  snf )zS
Convert the package data into something usable
by output_package_listing_columns.
Packager   LatestTypec                     U R                  S5      n[        5       R                  U5      R	                  S5      $ ! [         a     g f = f)NWHEELBuild)	read_textFileNotFoundErrorr   parsestrget)r   
wheel_files     r+   wheel_build_tag+format_for_columns.<locals>.wheel_build_tagO  sI    	0J x  ,0099 ! 		s   ; 
AAr   c              3  8   #    U  H  oR                   v   M     g 7frN   )rw   r   s     r+   rg   %format_for_columns.<locals>.<genexpr>[  s     1Dq

Dri   zEditable project locationr   Location	Installer )r   r   r   z
str | None)rO   extendanyappendr   	enumerater   r   r    r   r!   editable_project_locationr   	installer)pkgsrS   r   running_outdatedr   p
build_tagshas_build_tagshas_editablesr   iprojrows                r+   r   r   B  s    #F''x(): /33d/!$dJ3_Ng1D11M12!j!!k"DT? }}d../JJs4../0JJt++,JJz}*+JJt55;<??aJJt}}*+??aJJt~~&C) #, <K 4s   Hc                   / nU  H  n [        UR                  5      nUR                  US.nUR
                  S:  a'  UR                  =(       d    SUS'   UR                  US'   UR                  (       a'  [        UR                  5      US'   UR                  US'   UR                  nU(       a  XeS'   UR                  U5        M     [        R                  " U5      $ ! [         a    UR                  n Nf = f)	N)r   r   r   r   r   r   r   r!   r   )r    r   r   r   r   r   r   r   rO   r   r!   r   r   r:   dumps)r}   rS   r   r   r   infor   s          r+   r   r   ~  s    D	'$,,'G MM
 ??a#}}2D $D%()<)<%=D!"&*&:&:D"#$($B$B!$0I,-D% & ::d!  	'&&G	's   CC76C7)r   r   rS   r   r   z!tuple[list[list[str]], list[str]])r}   r   rS   r   r   r    )3
__future__r   r   r:   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     s    "    9 9   & 9 A ( = 2 1 D E 2 ;@8.  23O 
		8	$T# Tn9
9$*9&9xr*   