Ë
    ‡pªiá1  ã            	       ó~  — d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	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 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jP                  e)«      Z* G d„ de«      Z+dddede
eee,      ee,   f   fd„Z-dddede,fd„Z.y)é    N)Ú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                   ó&   — e Zd ZU dZeed<   eed<   y)Ú_DistWithLatestInfoz¾Give 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_filetypeN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__Ústr© ó    úN/var/www/html/venv/lib/python3.12/site-packages/pip/_internal/commands/list.pyr   r      s   … ñ	ð  ÓØÔr&   r   c                   óú   ‡ — e Zd ZdZdZdZdd„Zdeddfˆ fd„Zded	d
ddfd„Z	dede
e   defd„Zdddeddfd„Zdddeddfd„Zdddeddfd„Zdddeded   fd„Zdddeddfd„Zde
e
e      de
e   ddfd„Zˆ xZS )ÚListCommandzt
    List installed packages, including editables.

    Packages are listed in a case-insensitive sorted order.
    Tz
      %prog [options]ÚreturnNc                 ó  — | j                   j                  ddddd¬«       | j                   j                  ddddd	¬«       | j                   j                  d
dddd¬«       | j                   j                  ddddd¬«       | j                   j                  ddddd¬«       | j                   j                  t        j                  «       «       | j                   j                  dddd¬«       | j                   j                  dddddd¬«       | j                   j                  dddd¬ «       | j                   j                  d!d"d#d$¬ «       | j                   j                  d%dd#d&d'¬(«       | j                   j                  t        j                  «       «       t        j
                  t        j                  | j                  «      }| j                  j                  d)|«       | j                  j                  d)| j                   «       y )*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-   r.   r/   z--prezYInclude pre-release and development versions. By default, pip only finds stable versions.z--formatÚstoreÚlist_formatÚcolumns)r4   ÚfreezeÚjsonz‚Select the output format among: columns (default), freeze, or json. The 'freeze' format cannot be used with the --outdated option.)r-   r1   r.   Úchoicesr/   z--not-requiredÚnot_requiredz>List packages that are not dependencies of installed packages.)r-   r1   r/   z--exclude-editableÚstore_falseÚinclude_editablez%Exclude editable package from output.z--include-editablez%Include editable package from output.T)r-   r1   r/   r.   r   )	Úcmd_optsÚ
add_optionr   Ú	list_pathÚlist_excludeÚmake_option_groupÚindex_groupÚparserÚinsert_option_group)ÚselfÚ
index_optss     r'   Úadd_optionszListCommand.add_options1   s  € Ø�‰× Ñ ØØØØØ)ð 	!ô 	
ð 	�‰× Ñ ØØØØØ)ð 	!ô 	
ð 	�‰× Ñ ØØØØØ*ð 	!ô 	
ð 	�‰× Ñ ØØØØð/ð 	!ô 		
ð 	�‰× Ñ ØØØØØ?ð 	!ô 	
ð 	�‰× Ñ ¤×!5Ñ!5Ó!7Ô8Ø�‰× Ñ ØØØð2ð 	!ô 	
ð 	�‰× Ñ ØØØØØ1ðQð 	!ô 
	
ð 	�‰× Ñ ØØØØQð	 	!ô 	
ð 	�‰× Ñ Ø Ø Ø#Ø8ð	 	!ô 	
ð 	�‰× Ñ Ø ØØ#Ø8Øð 	!ô 	
ð 	�‰× Ñ ¤×!8Ñ!8Ó!:Ô;Ü×1Ñ1´*×2HÑ2HÈ$Ï+É+ÓVˆ
à�‰×'Ñ'¨¨:Ô6Ø�‰×'Ñ'¨¨4¯=©=Õ9r&   Úoptionsc                 óV   •— |j                   s|j                  rt        ‰| �  |«       y y ©N)ÚoutdatedÚuptodateÚsuperÚhandle_pip_version_check)rC   rF   Ú	__class__s     €r'   rL   z$ListCommand.handle_pip_version_check‰   s&   ø€ Ø×Ò˜w×/Ò/Ü‰GÑ,¨WÕ5ð  0r&   Úsessionr   r   c                 ó–   — ddl m} ddlm} |j	                  ||¬«      }t        d|j                  ¬«      } |j                  ||¬«      S )zK
        Create a package finder appropriate to this list command.
        r   )ÚLinkCollectorr   )rF   F)Úallow_yankedÚallow_all_prereleases)Úlink_collectorÚselection_prefs)Úpip._internal.index.collectorrP   Ú"pip._internal.index.package_finderr   Úcreater   Úpre)rC   rF   rN   rP   r   rS   rT   s          r'   Ú_build_package_finderz!ListCommand._build_package_finder�   sS   € õ 	@ÝDà&×-Ñ-¨g¸wÐ-ÓGˆô /ØØ")§+¡+ô
ˆð
 $ˆ}×#Ñ#Ø)Ø+ô
ð 	
r&   Úargsc                 óø  — |j                   r|j                  rt        d«      ‚|j                   r|j                  dk(  rt        d«      ‚t	        j
                  |«       t        t        «      }|j                  r"|j                  d„ |j                  D «       «       t        |j                  «      j                  |j                  |j                  |j                  |j                   |¬«      D �cg c]  }t#        d|«      ‘Œ }}|j$                  r| j'                  ||«      }|j                   r| j)                  ||«      }n|j                  r| j+                  ||«      }| j-                  ||«       t.        S c c}w )Nz5Options --outdated and --uptodate cannot be combined.r5   z?List format 'freeze' cannot be used with the --outdated option.c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrH   r   )Ú.0Úns     r'   Ú	<genexpr>z"ListCommand.run.<locals>.<genexpr>±   s   è ø€ ÐGÑ6F°Ô)¨!×,Ñ6Fùs   ‚)Ú
local_onlyÚ	user_onlyÚeditables_onlyÚinclude_editablesÚskipr   )rI   rJ   r   r3   r   Úcheck_list_path_optionÚsetr   ÚexcludesÚupdater   ÚpathÚiter_installed_distributionsÚlocalr0   Úeditabler:   r
   r8   Úget_not_requiredÚget_outdatedÚget_uptodateÚoutput_package_listingr   )rC   rF   rZ   rd   ÚdÚpackagess         r'   ÚrunzListCommand.run¤   sX  € Ø×Ò × 0Ò 0ÜÐVÓWÐWà×Ò × 3Ñ 3°xÒ ?ÜØQóð ô 	×)Ñ)¨'Ô2ä”;ÓˆØ×ÒØ�K‰KÑG°g×6FÒ6FÓGÔGô % W§\¡\Ó2×OÑOØ"Ÿ=™=Ø!Ÿ,™,Ø&×/Ñ/Ø")×":Ñ":Øð Pô ó	%
ñ�ô Ð&¨Õ*ðð 	ð 	%
ð ×ÒØ×,Ñ,¨X°wÓ?ˆHà×ÒØ×(Ñ(¨°7Ó;‰HØ×ÒØ×(Ñ(¨°7Ó;ˆHà×#Ñ# H¨gÔ6Üˆùò1	%
s   Ã/E7rr   Ú_ProcessedDistsc                 ó~   — | j                  ||«      D �cg c]  }|j                  |j                  kD  r|‘Œ c}S c c}w rH   ©Úiter_packages_latest_infosr   Úversion©rC   rr   rF   Údists       r'   rn   zListCommand.get_outdatedÍ   sH   € ð
 ×7Ñ7¸À'ÔJó
áJ�Ø×"Ñ" T§\¡\Ò1ò ØJñ
ð 	
ùò 
ó   •":c                 ó~   — | j                  ||«      D �cg c]  }|j                  |j                  k(  r|‘Œ c}S c c}w rH   rv   ry   s       r'   ro   zListCommand.get_uptodateÖ   sH   € ð
 ×7Ñ7¸À'ÔJó
áJ�Ø×"Ñ" d§l¡lÒ2ò ØJñ
ð 	
ùò 
r{   c                 óâ   — |D ��ch c]0  }|j                  «       xs dD ]  }t        |j                  «      ’Œ Œ2 }}}t        |D �ch c]  }|j                  |vsŒ|’Œ c}«      S c c}}w c c}w )Nr%   )Úiter_dependenciesr   ÚnameÚlistÚcanonical_name)rC   rr   rF   rz   ÚdepÚdep_keysÚpkgs          r'   rm   zListCommand.get_not_requiredß   s   € ñ
 !ô
á �Ø×.Ñ.Ó0Ò6°BÒ6�ô ˜cŸh™hÕ'à6ð (Ø ð 	ñ 
ô ¡HÓS¡H˜S°×0BÑ0BÈ(Ò0R’S HÑSÓTÐTùó
ùò Ts   †5A&ÁA,ÁA,)r   NNc              #   óÖ   ‡‡K  — | j                  ‰«      5 }| j                  ‰|«      Šdddt        d   fˆˆfd„}t        ||«      D ]	  }|€Œ|–— Œ 	 d d d «       y # 1 sw Y   y xY w­w)Nrz   r   r*   c                 ót  •— ‰j                  | j                  «      }‰j                  s%|D �cg c]  }|j                  j                  s|‘Œ }}‰j                  | j                  ¬«      }|j                  |«      }|€y |j                  }|j                  j                  rd}nd}|| _	        || _
        | S c c}w )N)Úproject_nameÚwheelÚsdist)Úfind_all_candidatesr�   rX   rx   Úis_prereleaseÚmake_candidate_evaluatorÚsort_best_candidateÚlinkÚis_wheelr   r   )	rz   Úall_candidatesÚ	candidateÚ	evaluatorÚbest_candidateÚremote_versionÚtypÚfinderrF   s	          €€r'   Úlatest_infoz;ListCommand.iter_packages_latest_infos.<locals>.latest_infoó   sÌ   ø€ ð "(×!;Ñ!;¸D×<OÑ<OÓ!P�Ø—{’{ñ *8ó&á)7˜IØ(×0Ñ0×>Ò>ò "Ø)7ð #ð &ð #×;Ñ;Ø!%×!4Ñ!4ð <ó �	ð "+×!>Ñ!>¸~Ó!N�Ø!Ð)Øà!/×!7Ñ!7�Ø!×&Ñ&×/Ò/Ø!‘Cà!�CØ&4�Ô#Ø'*�Ô$Ø�ùò)&s   ­B5)Ú_build_sessionrY   r   Úmap)rC   rr   rF   rN   r—   rz   r–   s     `   @r'   rw   z&ListCommand.iter_packages_latest_infosí   so   ùè ø€ ð × Ñ  Ô)¨WØ×/Ñ/°¸ÓAˆFðØ+ðäÐ/Ñ0öô8 ˜K¨Ö2�ØÑ#Ø“Jñ 3÷? *×)Ñ)üs"   „A)–6AÁAÁ	A)ÁA&Á"A)c                 ó¸  — t        |d„ ¬«      }|j                  dk(  r$|r"t        ||«      \  }}| j                  ||«       y |j                  dk(  re|D ]_  }|j                  dk\  r-t        d|j                  |j                  |j                  «       Œ?t        d|j                  |j                  «       Œa y |j                  dk(  rt        t        ||«      «       y y )	Nc                 ó   — | j                   S rH   )r�   )rz   s    r'   Ú<lambda>z4ListCommand.output_package_listing.<locals>.<lambda>  s
   € ˜T×0Ò0r&   )Úkeyr4   r5   é   z%s==%s (%s)z%s==%sr6   )
Úsortedr3   Úformat_for_columnsÚoutput_package_listing_columnsÚverboser   Úraw_namerx   ÚlocationÚformat_for_json)rC   rr   rF   ÚdataÚheaderrz   s         r'   rp   z"ListCommand.output_package_listing  sÁ   € ô ØÙ0ô
ˆð ×Ñ )Ò+±Ü-¨h¸Ó@‰LˆD�&Ø×/Ñ/°°fÕ=Ø× Ñ  HÒ,Û �Ø—?‘? aÒ'Ü Ø% t§}¡}°d·l±lÀDÇMÁMõô ! ¨4¯=©=¸$¿,¹,ÕGñ !ð × Ñ  FÒ*Üœ¨°7Ó;Õ<ð +r&   r¦   r§   c                 óð   — t        |«      dkD  r|j                  d|«       t        |«      \  }}t        |«      dkD  r(|j                  ddj                  d„ |D «       «      «       |D ]  }t	        |«       Œ y )Nr   rž   Ú c              3   ó&   K  — | ]	  }d |z  –— Œ y­w)Ú-Nr%   ©r]   Úxs     r'   r_   z=ListCommand.output_package_listing_columns.<locals>.<genexpr>3  s   è ø€ Ð*B¹E°q¨3°­7¹Eùs   ‚)ÚlenÚinsertr   Újoinr   )rC   r¦   r§   Úpkg_stringsÚsizesÚvals         r'   r¡   z*ListCommand.output_package_listing_columns(  si   € ô ˆt‹9�qŠ=Ø�K‰K˜˜6Ô"ä% d›^Ñˆ�Uô ˆt‹9�qŠ=Ø×Ñ˜q #§(¡(Ñ*B¹EÓ*BÓ"BÔCãˆCÜ˜Õñ r&   )r*   N)r   r    r!   r"   Úignore_require_venvÚusagerE   r   rL   rY   r   r$   Úintrs   rn   ro   rm   r   rw   rp   r¡   Ú__classcell__)rM   s   @r'   r)   r)   &   s2  ø„ ñð Ðð€EóV:ðp6°ð 6¸4õ 6ð
Øð
Ø(4ð
à	ó
ð.'˜6ð '¨¨c©ð '°só 'ðR
Ø)ð
Ø4:ð
à	ó
ð
Ø)ð
Ø4:ð
à	ó
ðUØ)ðUØ4:ðUà	óUð$Ø)ð$Ø4:ð$à	Ð4Ñ	5ó$ðL=Ø)ð=Ø4:ð=à	ó=ð*Ø˜˜c™‘OðØ-1°#©Yðà	÷r&   r)   Úpkgsrt   rF   r*   c                 óö  — ddg}|j                   }|r|j                  ddg«       t        d„ | D «       «      }|r|j                  d«       |j                  dk\  r|j                  d«       |j                  dk\  r|j                  d	«       g }| D ]å  }|j
                  |j                  g}|r?|j                  t        |j                  «      «       |j                  |j                  «       |r|j                  |j                  xs d
«       |j                  dk\  r|j                  |j                  xs d
«       |j                  dk\  r|j                  |j                  «       |j                  |«       Œç ||fS )z_
    Convert the package data into something usable
    by output_package_listing_columns.
    ÚPackager   ÚLatestÚTypec              3   ó4   K  — | ]  }|j                   –— Œ y ­wrH   )rl   r¬   s     r'   r_   z%format_for_columns.<locals>.<genexpr>F  s   è ø€ Ð1©D q˜Ÿ
�
©Dùs   ‚zEditable project locationrž   ÚLocationÚ	InstallerÚ )rI   ÚextendÚanyÚappendr¢   r£   Úraw_versionr$   r   r   Úeditable_project_locationr¤   Ú	installer)r¸   rF   r§   Úrunning_outdatedÚhas_editablesr¦   ÚprojÚrows           r'   r    r    9  s>  € ð ˜Ð#€Fà×'Ñ'ÐÙØ�‰�x Ð(Ô)äÑ1©DÓ1Ó1€MÙØ�‰Ð1Ô2à‡�˜!ÒØ�‰�jÔ!Ø‡�˜!ÒØ�‰�kÔ"à€DÛˆð �}‰}˜d×.Ñ.Ð/ˆáØ�J‰J”s˜4×.Ñ.Ó/Ô0Ø�J‰J�t×+Ñ+Ô,áØ�J‰J�t×5Ñ5Ò;¸Ô<à�?‰?˜aÒØ�J‰J�t—}‘}Ò*¨Ô+Ø�?‰?˜aÒØ�J‰J�t—~‘~Ô&à�‰�CÕð# ð& �ˆ<Ðr&   rr   c                 ó’  — g }| D ]¬  }|j                   t        |j                  «      dœ}|j                  dk\  r"|j                  xs d|d<   |j
                  |d<   |j                  r't        |j                  «      |d<   |j                  |d<   |j                  }|r||d<   |j                  |«       Œ® t        j                  |«      S )	N)r   rx   rž   rÀ   r¤   rÆ   r   r   rÅ   )r£   r$   rx   r¢   r¤   rÆ   rI   r   r   rÅ   rÃ   r6   Údumps)rr   rF   r¦   rz   ÚinforÅ   s         r'   r¥   r¥   f  sÁ   € Ø€DÛˆà—M‘MÜ˜4Ÿ<™<Ó(ñ
ˆð �?‰?˜aÒØ#Ÿ}™}Ò2°ˆD�ÑØ $§¡ˆD�ÑØ×ÒÜ%(¨×)<Ñ)<Ó%=ˆDÐ!Ñ"Ø&*×&:Ñ&:ˆDÐ"Ñ#Ø$(×$BÑ$BÐ!Ù$Ø0IˆDÐ,Ñ-Ø�‰�DÕð ô �:‰:�dÓÐr&   )/r6   ÚloggingÚ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   rV   r   Úpip._internal.network.sessionr   r   rt   Ú	getLoggerr   Úloggerr)   r$   r    r¥   r%   r&   r'   Ú<module>rÞ      sË   ðÛ Û Ý ß R× RÑ Rå 9Ý 1å (Ý =Ý 2Ý 1ß DÝ EÝ 2ß ;áÝ@Ý8ôÐ.ô ð Ð2Ñ3€Oð 
ˆ×	Ñ	˜8Ó	$€ôPÐ#ô Pðf*Ø
ð*Ø&,ð*à
ˆ4��S‘	‰?˜D ™IÐ%Ñ&ó*ðZÐ/ð ¸&ð ÀSô r&   