
    q"h3              	          S SK r S SKrS SKJr  S SKJr  S SKJrJrJ	r	J
r
Jr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  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)\RT                  " \+5      r, " S S\5      r-SSS\S\\	\	\.      \	\.   4   4S jr/SSS\S\.4S jr0g)    N)Parser)Values)TYPE_CHECKING	GeneratorListOptionalSequenceTuplecastcanonicalize_name)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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.
latest_versionlatest_filetype N)	__name__
__module____qualname____firstlineno____doc__r   __annotations__str__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\SS4U 4S	 jjr	S\S
SSS4S jr
S\S\\   S\4S jrSSS\SS4S jrSSS\SS4S jrSSS\SS4S jrSSS\S\S   4S jrSSS\SS4S jrS\\\      S\\   SS4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]returnNc           	         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.)destr2   r3   r4   z--prezYInclude pre-release and development versions. By default, pip only finds stable versions.z--formatstorelist_formatcolumns)r9   freezejsonzSelect the output format among: columns (default), freeze, or json. The 'freeze' format cannot be used with the --outdated option.)r2   r6   r3   choicesr4   z--not-requirednot_requiredz>List packages that are not dependencies of installed packages.)r2   r6   r4   z--exclude-editablestore_falseinclude_editablez%Exclude editable package from output.z--include-editablez#Include editable package in output.T)r2   r6   r4   r3   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_options2   s     ) 	! 	
 	  ) 	! 	
 	  * 	! 	
 	  / 	! 		
 	  ? 	! 	
 	  !5!5!78  2 	! 	
 	  1Q 	! 
	
 	  Q	 	! 	
 	    #8	 	! 	
 	   #6 	! 	
 	  !8!8!:;11*2H2H$++V
'':6''4==9r*   optionsc                 j   > UR                   (       d  UR                  (       a  [        TU ]  U5        g g N)outdateduptodatesuperhandle_pip_version_check)rH   rL   	__class__s     r+   rR   $ListCommand.handle_pip_version_check   s&    w//G,W5  0r*   sessionr   r   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   )rL   F)allow_yankedallow_all_prereleases)link_collectorselection_prefs)pip._internal.index.collectorrW   "pip._internal.index.package_finderr   creater   pre)rH   rL   rU   rW   r   rZ   r[   s          r+   _build_package_finder!ListCommand._build_package_finder   sO     	@D&--g-G /")++

 ##)+
 	
r*   argsc                 :   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.r:   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   )rO   rP   r   r8   r   check_list_path_optionsetr   excludesupdater   pathiter_installed_distributionslocalr5   editabler?   r   r=   get_not_requiredget_outdatedget_uptodateoutput_package_listingr   )rH   rL   rb   rn   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r|   _ProcessedDistsc                     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|   rL   dists       r+   rx   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+   ry   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|   rL   r   depdep_keyspkgs          r+   rw   ListCommand.get_not_required   s}    
 !
 ..06B6 chh'6 (  	 
 HSHS0B0B(0RSHSTT
 Ts   A A6A<)A<)r   NNc              #      ^^#    U R                  T5       nU R                  TU5      mSSS[        S   4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)Nr   r   r/   c                   > 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finderrL   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)_build_sessionr`   r   map)rH   r|   rL   rU   r   r   r   s     `   @r+   r   &ListCommand.iter_packages_latest_infos   sq        )W//AF+/0 8 K2#J 3? *))s"   A26A!A!	A2!
A/+A2c                    [        US S9nUR                  S:X  a&  U(       a  [        X5      u  p4U R                  X45        g UR                  S:X  ai  U Hb  nUR                  S:  a.  [        SUR                  UR                  UR                  5        MA  [        SUR                  UR                  5        Md     g UR                  S:X  a  [        [        X5      5        g g )	Nc                     U R                   $ rN   )r   )r   s    r+   <lambda>4ListCommand.output_package_listing.<locals>.<lambda>  s
    T00r*   )keyr9   r:      z%s==%s (%s)z%s==%sr;   )
sortedr8   format_for_columnsoutput_package_listing_columnsverboser   raw_namer   locationformat_for_json)rH   r|   rL   dataheaderr   s         r+   rz   "ListCommand.output_package_listing  s     0
 )+-h@LD//=  H, ??a' %t}}dllDMM !4==$,,G !   F*;< +r*   r   r   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>4  s     *BEq37Es   )leninsertr   joinr   )rH   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/   N)r"   r#   r$   r%   r&   ignore_require_venvusagerJ   r   rR   r`   r   r(   intr}   rx   ry   rw   r   r   rz   r   r)   __classcell__)rS   s   @r+   r-   r-   '   s7    EV:p6 64 6

(4
	
.'6 'c 's 'R
)
4:
	

)
4:
	
U)U4:U	U$)$4:$	4	5$L=)=4:=	=*cO-1#Y	 r*   r-   pkgsr   rL   r/   c                 J   SS/nUR                   nU(       a  UR                  SS/5        S[        S[        [           4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Typer   r/   c                      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_tagG  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rN   )rv   r   s     r+   rg   %format_for_columns.<locals>.<genexpr>X  s     1Dq

Dri   zEditable project location )rO   extendr   r   r(   anyappendr   	enumerater   raw_versionr   r    editable_project_locationr   	installer)r   rL   r   running_outdatedr   p
build_tagshas_build_tagshas_editablesr   iprojrows                r+   r   r   :  s    #F''x():. :8C= : /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 r|   c                    / nU  H  nUR                   [        UR                  5      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  XTS'   UR                  U5        M     [        R                  " U5      $ )	N)r   r   r   r   r   r   r   r    r   )r   r(   r   r   r   r   rO   r   r    r   r   r;   dumps)r|   rL   r   r   infor   s         r+   r   r   v  s    DMM4<<(
 ??a#}}2D $D%()<)<%=D!"&*&:&:D"#$($B$B!$0I,-D  ::dr*   )1r;   loggingemail.parserr   optparser   typingr   r   r   r   r	   r
   r   pip._vendor.packaging.utilsr   pip._vendor.packaging.versionr   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*   r+   <module>r     s        R R R 9 1 ( = 2 1 D E 2 ;@8.  23O 
		8	$P# Pf9
9&,9
4S	?DI%&9x/ & S r*   