
    ]h4                    |   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
  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*\RV                  " \,5      r- " S S\5      r.      SS jr/SS jr0g)    )annotationsN)	Generator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!       M/var/www/html/env/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SU 4S j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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9  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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.)destr0   r1   r2   z--prezYInclude pre-release and development versions. By default, pip only finds stable versions.z--formatstorelist_formatcolumns)r7   freezejsonzSelect the output format among: columns (default), freeze, or json. The 'freeze' format cannot be used with the --outdated option.)r0   r4   r1   choicesr2   z--not-requirednot_requiredz>List packages that are not dependencies of installed packages.)r0   r4   r2   z--exclude-editablestore_falseinclude_editablez%Exclude editable package from output.z--include-editablez#Include editable package in output.T)r0   r4   r2   r1   r   )	cmd_opts
add_optionr   	list_pathlist_excludemake_option_groupindex_groupparserinsert_option_group)self
index_optss     r*   add_optionsListCommand.add_options5   s     ) 	! 	
 	  ) 	! 	
 	  * 	! 	
 	  / 	! 		
 	  ? 	! 	
 	  !5!5!78  2 	! 	
 	  1Q 	! 
	
 	  Q	 	! 	
 	    #8	 	! 	
 	   #6 	! 	
 	  !8!8!:;11*2H2H$++V
'':6''4==9r)   c                j   > UR                   (       d  UR                  (       a  [        TU ]  U5        g g N)outdateduptodatesuperhandle_pip_version_check)rF   options	__class__s     r*   rO   $ListCommand.handle_pip_version_check   s&    w//G,W5  0r)   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   )rP   F)allow_yankedallow_all_prereleases)link_collectorselection_prefs)pip._internal.index.collectorrT   "pip._internal.index.package_finderr   creater   pre)rF   rP   sessionrT   r   rW   rX   s          r*   _build_package_finder!ListCommand._build_package_finder   sO     	@D&--g-G /")++

 ##)+
 	
r)   c                :   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        [.        $ s  snf )Nz5Options --outdated and --uptodate cannot be combined.r8   z?List format 'freeze' cannot be used with the --outdated option.c              3  8   #    U  H  n[        U5      v   M     g 7frK   r
   ).0ns     r*   	<genexpr>"ListCommand.run.<locals>.<genexpr>   s     G6F)!,,6F   )
local_only	user_onlyeditables_onlyinclude_editablesskipr   )rL   rM   r   r6   r   check_list_path_optionsetr   excludesupdater   pathiter_installed_distributionslocalr3   editabler=   r	   r;   get_not_requiredget_outdatedget_uptodateoutput_package_listingr   )rF   rP   argsrk   dpackagess         r*   runListCommand.run   sP    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 rK   iter_packages_latest_infosr   versionrF   rz   rP   dists       r*   ru   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 rK   r~   r   s       r*   rv   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)rF   rz   rP   r   depdep_keyspkgs          r*   rt   ListCommand.get_not_required   s}    
 !
 ..06B6 chh'6 (  	 
 HSHS0B0B(0RSHSTT
 Ts   A A6A<)A<c              #     ^^#    U R                  T5       nU R                  TU5      m    S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                  (       d/  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   r\   r   is_prereleasemake_candidate_evaluatorsort_best_candidatelinkis_wheelr   r    )	r   all_candidates	candidate	evaluatorbest_candidateremote_versiontypfinderrP   s	          r*   latest_info;ListCommand.iter_packages_latest_infos.<locals>.latest_info   s     "(!;!;D<O<O!P{{ *8&)7I(00>> ")7 # & #;;!%!4!4 < 	 "+!>!>~!N!)!/!7!7!&&//!C!C&4#'*$)&s   CC)r   r   returnz_DistWithLatestInfo | None)_build_sessionr^   map)rF   rz   rP   r]   r   r   r   s     `   @r*   r   &ListCommand.iter_packages_latest_infos   sk        )W//AF)+ 8 K2#J 3? *))s"   A+/A	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                   $ rK   )r   )r   s    r*   <lambda>4ListCommand.output_package_listing.<locals>.<lambda>  s
    T00r)   )keyr7   r8   z==z===   z%s (%s)r9   )sortedr6   format_for_columnsoutput_package_listing_columnsraw_namer   r   raw_versionverboser   locationformat_for_json)rF   rz   rP   dataheaderr   
req_strings          r*   rw   "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!   rb   xs     r*   rd   =ListCommand.output_package_listing_columns.<locals>.<genexpr>9  s     *BEq37Es   )leninsertr   joinr   )rF   r   r   pkg_stringssizesvals         r*   r   *ListCommand.output_package_listing_columns.  sg     t9q=KK6"%d^ t9q=q#((*BE*B"BCC r)   r!   )r   None)rP   r   r   r   )rP   r   r]   r   r   r   )rP   r   rx   	list[str]r   int)rz   _ProcessedDistsrP   r   r   r   )rz   r   rP   r   r   z*Generator[_DistWithLatestInfo, None, None])rz   r   rP   r   r   r   )r   zlist[list[str]]r   r   r   r   )r"   r#   r$   r%   r&   ignore_require_venvusagerH   rO   r^   r{   ru   rv   rt   r   rw   r   r(   __classcell__)rQ   s   @r*   r,   r,   *   s     EV:p6

(2
	
.'R
'
28
	

'
28
	
U'U28U	U$'$28$	3$L='=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        UR                  S:  a  UR                  S5        UR                  S:  a  UR                  S	5        [        S
 U  5       5      nU(       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_tagL  sI    	0J x  ,0099 ! 		s   ; 
AAr   r   Location	Installerc              3  8   #    U  H  oR                   v   M     g 7frK   )rs   r   s     r*   rd   %format_for_columns.<locals>.<genexpr>]  s     1Dq

Drf   zEditable project location )r   r   r   z
str | None)rL   extendanyappendr   	enumerater   r   r   r   r    editable_project_locationr   	installer)pkgsrP   r   running_outdatedr   p
build_tagshas_build_tagshas_editablesr   iprojrows                r*   r   r   ?  s    #F''x(): /33d/!$dJ3_Ng!j!!k"1D11M12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   rL   r   r    r   r   r9   dumps)rz   rP   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   rP   r   r   z!tuple[list[list[str]], list[str]])rz   r   rP   r   r   r   )1
__future__r   r9   loggingcollections.abcr   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   rZ   r   pip._internal.network.sessionr   r   r   	getLoggerr"   loggerr,   r   r   r!   r)   r*   <module>r     s    "   /   & 9 A ( = 2 1 D E 2 ;@8.  23O 
		8	$R# Rj9
9$*9&9xr)   