Ë
    äØjj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 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$m%Z% erd dl&m'Z'  G d„ de«      Z(e	e(   Z)d dl*m+Z+  ejX                  e-«      Z. G d„ de«      Z/dddede
eee0      ee0   f   fd„Z1dddede0fd„Z2y)é    N)ÚValues)ÚTYPE_CHECKINGÚ	GeneratorÚListÚOptionalÚSequenceÚTupleÚcast©Úcanonicalize_name)Ú
cmdoptions)ÚIndexGroupCommand)ÚSUCCESS)ÚCommandError)ÚLinkCollector)ÚPackageFinder)ÚBaseDistributionÚget_environment)ÚSelectionPreferences)Ú
PipSession)Ústdlib_pkgs)ÚtabulateÚwrite_output)ÚDistributionVersionc                   ó&   — 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© ó    ú]/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/commands/list.pyr   r      s   … ñ	ð ,Ó+ØÔr&   r   )Úparsec                   óÞ   — e Zd ZdZdZdZdd„Zdedede	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y)Ú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/   r0   z--prezYInclude pre-release and development versions. By default, pip only finds stable versions.z--formatÚstoreÚlist_formatÚcolumns)r5   ÚfreezeÚjsonz‚Select the output format among: columns (default), freeze, or json. The 'freeze' format cannot be used with the --outdated option.)r.   r2   r/   Úchoicesr0   z--not-requiredÚnot_requiredz>List packages that are not dependencies of installed packages.)r.   r2   r0   z--exclude-editableÚstore_falseÚinclude_editablez%Exclude editable package from output.z--include-editablez%Include editable package from output.T)r.   r2   r0   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_options4   s  € Ø�‰× Ñ ØØØØØ)ð 	!ô 	
ð 	�‰× Ñ ØØØØØ)ð 	!ô 	
ð 	�‰× Ñ ØØØØØ*ð 	!ô 	
ð 	�‰× Ñ ØØØØð/ð 	!ô 		
ð 	�‰× Ñ ØØØØØ?ð 	!ô 	
ð 	�‰× Ñ ¤×!5Ñ!5Ó!7Ô8Ø�‰× Ñ ØØØð2ð 	!ô 	
ð 	�‰× Ñ ØØØØØ1ðQð 	!ô 
	
ð 	�‰× Ñ ØØØØQð	 	!ô 	
ð 	�‰× Ñ Ø Ø Ø#Ø8ð	 	!ô 	
ð 	�‰× Ñ Ø ØØ#Ø8Øð 	!ô 	
ð 	�‰× Ñ ¤×!8Ñ!8Ó!:Ô;Ü×1Ñ1´*×2HÑ2HÈ$Ï+É+ÓVˆ
à�‰×'Ñ'¨¨:Ô6Ø�‰×'Ñ'¨¨4¯=©=Õ9r&   ÚoptionsÚsessionc                 óŒ   — t        j                  ||¬«      }t        d|j                  ¬«      }t	        j                  ||¬«      S )zK
        Create a package finder appropriate to this list command.
        )rG   F)Úallow_yankedÚallow_all_prereleases)Úlink_collectorÚselection_prefs)r   Úcreater   Úprer   )rD   rG   rH   rL   rM   s        r'   Ú_build_package_finderz!ListCommand._build_package_finderŒ   sG   € ô '×-Ñ-¨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.r6   z?List format 'freeze' cannot be used with the --outdated option.c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©Nr   )Ú.0Úns     r'   ú	<genexpr>z"ListCommand.run.<locals>.<genexpr>¬   s   è ø€ ÒG°Ô)¨!×,ÑGùs   ‚)Ú
local_onlyÚ	user_onlyÚeditables_onlyÚinclude_editablesÚskipr   )ÚoutdatedÚuptodater   r4   r   Úcheck_list_path_optionÚsetr   ÚexcludesÚupdater   ÚpathÚiter_installed_distributionsÚlocalr1   Úeditabler;   r
   r9   Úget_not_requiredÚget_outdatedÚget_uptodateÚoutput_package_listingr   )rD   rG   rQ   r\   ÚdÚpackagess         r'   ÚrunzListCommand.runŸ   sQ  € Ø×Ò × 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rl   Ú_ProcessedDistsc           	      óÆ   — | j                  ||«      D �cg c]A  }t        t        |j                  «      «      t        t        |j                  «      «      kD  r|‘ŒC c}S c c}w rT   ©Úiter_packages_latest_infosr(   r$   r   Úversion©rD   rl   rG   Údists       r'   rh   zListCommand.get_outdatedÈ   sW   € ð
 ×7Ñ7¸À'ÓJö
àÜ”S˜×,Ñ,Ó-Ó.´´s¸4¿<¹<Ó7HÓ1IÒIò ò
ð 	
ùò 
ó   •AAc           	      óÆ   — | j                  ||«      D �cg c]A  }t        t        |j                  «      «      t        t        |j                  «      «      k(  r|‘ŒC c}S c c}w rT   rp   rs   s       r'   ri   zListCommand.get_uptodateÑ   sW   € ð
 ×7Ñ7¸À'ÓJö
àÜ”S˜×,Ñ,Ó-Ó.´%¼¸D¿L¹LÓ8IÓ2JÒJò ò
ð 	
ùò 
ru   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)rD   rl   rG   rt   ÚdepÚdep_keysÚpkgs          r'   rg   zListCommand.get_not_requiredÚ   s}   € ð
 !÷
àØ×.Ñ.Ó0Ò6°Bò
ð ô ˜cŸh™hÕ'ð
Ø'ð
ˆñ 
ô  HÖS˜S°×0BÑ0BÈ(Ò0R’SÒ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)Nrt   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{   rO   rr   Úis_prereleaseÚmake_candidate_evaluatorÚsort_best_candidateÚlinkÚis_wheelr   r   )	rt   Úall_candidatesÚ	candidateÚ	evaluatorÚbest_candidateÚremote_versionÚtypÚfinderrG   s	          €€r'   Úlatest_infoz;ListCommand.iter_packages_latest_infos.<locals>.latest_infoî   sÉ   ø€ ð "(×!;Ñ!;¸D×<OÑ<OÓ!P�Ø—{’{ð *8ö&à%Ø(×0Ñ0×>Ò>ò "ð&�Nð &ð #×;Ñ;Ø!%×!4Ñ!4ð <ó �	ð "+×!>Ñ!>¸~Ó!N�Ø!Ð)Øà!/×!7Ñ!7�Ø!×&Ñ&×/Ò/Ø!‘Cà!�CØ&4�Ô#Ø'*�Ô$Ø�ùò)&s   ­B5)Ú_build_sessionrP   r   Úmap)rD   rl   rG   rH   r‘   rt   r�   s     `   @r'   rq   z&ListCommand.iter_packages_latest_infosè   s}   ùè ø€ ð × Ñ  Ó)ð !	¨WØ×/Ñ/°¸ÓAˆFðØ+ðäÐ/Ñ0öô8 ˜K¨Ó2ò �ØÑ#Ø“Jñ÷?!	÷ !	ñ !	ü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 rT   )r{   )rt   s    r'   ú<lambda>z4ListCommand.output_package_listing.<locals>.<lambda>  s   € ˜T×0Ñ0€ r&   )Úkeyr5   r6   é   z%s==%s (%s)z%s==%sr7   )
Úsortedr4   Úformat_for_columnsÚoutput_package_listing_columnsÚverboser   Úraw_namerr   ÚlocationÚformat_for_json)rD   rl   rG   ÚdataÚheaderrt   s         r'   rj   z"ListCommand.output_package_listing  sÈ   € ô ØÙ0ô
ˆð ×Ñ )Ò+±Ü-¨h¸Ó@‰LˆD�&Ø×/Ñ/°°fÕ=Ø× Ñ  HÒ,Ø ò H�Ø—?‘? aÒ'Ü Ø% t§}¡}°d·l±lÀDÇMÁMõô ! ¨4¯=©=¸$¿,¹,ÕGñHð × Ñ  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%   ©rU   Úxs     r'   rW   z=ListCommand.output_package_listing_columns.<locals>.<genexpr>.  s   è ø€ Ò*B°q¨3°­7Ñ*Bùs   ‚)ÚlenÚinsertr   Újoinr   )rD   r    r¡   Úpkg_stringsÚsizesÚvals         r'   r›   z*ListCommand.output_package_listing_columns#  sn   € ô ˆ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ÚusagerF   r   r   r   rP   r   r$   Úintrm   rh   ri   rg   r   rq   rj   r›   r%   r&   r'   r*   r*   )   s  „ ñð Ðð€EóV:ðp
Øð
Ø(2ð
à	ó
ð&'˜6ð '¨¨c©ð '°só 'ðR
Ø)ð
Ø4:ð
à	ó
ð
Ø)ð
Ø4:ð
à	ó
ðUØ)ðUØ4:ðUà	óUð$Ø)ð$Ø4:ð$à	Ð4Ñ	5ó$ðL=Ø)ð=Ø4:ð=à	ó=ð*Ø˜˜c™‘OðØ-1°#©Yðà	ôr&   r*   Úpkgsrn   rG   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
                  t        |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.
    ÚPackageÚVersionÚLatestÚTypec              3   ó4   K  — | ]  }|j                   –— Œ y ­wrT   )rf   r¦   s     r'   rW   z%format_for_columns.<locals>.<genexpr>A  s   è ø€ Ò1 q˜Ÿ
�
Ñ1ùs   ‚zEditable project locationr˜   ÚLocationÚ	InstallerÚ )r]   ÚextendÚanyÚappendrœ   r�   r$   rr   r   r   Úeditable_project_locationrž   Ú	installer)r±   rG   r¡   Úrunning_outdatedÚhas_editablesr    ÚprojÚrows           r'   rš   rš   4  sF  € ð ˜Ð#€Fà×'Ñ'ÐÙØ�‰�x Ð(Ô)äÑ1¨DÔ1Ó1€MÙØ�‰Ð1Ô2à‡�˜!ÒØ�‰�jÔ!Ø‡�˜!ÒØ�‰�kÔ"à€DØò ˆð �}‰}œc $§,¡,Ó/Ð0ˆáØ�J‰J”s˜4×.Ñ.Ó/Ô0Ø�J‰J�t×+Ñ+Ô,áØ�J‰J�t×5Ñ5Ò;¸Ô<à�?‰?˜aÒØ�J‰J�t—}‘}Ò*¨Ô+Ø�?‰?˜aÒØ�J‰J�t—~‘~Ô&à�‰�CÕð#ð& �ˆ<Ðr&   rl   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)ry   rr   r˜   rº   rž   r¿   r   r   r¾   )r�   r$   rr   rœ   rž   r¿   r]   r   r   r¾   r½   r7   Údumps)rl   rG   r    rt   Úinfor¾   s         r'   rŸ   rŸ   a  sÆ   € Ø€DØò ˆà—M‘MÜ˜4Ÿ<™<Ó(ñ
ˆð �?‰?˜aÒØ#Ÿ}™}Ò2°ˆD�ÑØ $§¡ˆD�ÑØ×ÒÜ%(¨×)<Ñ)<Ó%=ˆDÐ!Ñ"Ø&*×&:Ñ&:ˆDÐ"Ñ#Ø$(×$BÑ$BÐ!Ù$Ø0IˆDÐ,Ñ-Ø�‰�DÕðô �:‰:�dÓÐr&   )3r7   ÚloggingÚoptparser   Útypingr   r   r   r   r   r	   r
   Úpip._vendor.packaging.utilsr   Úpip._internal.clir   Úpip._internal.cli.req_commandr   Úpip._internal.cli.status_codesr   Úpip._internal.exceptionsr   Úpip._internal.index.collectorr   Ú"pip._internal.index.package_finderr   Úpip._internal.metadatar   r   Ú$pip._internal.models.selection_prefsr   Úpip._internal.network.sessionr   Úpip._internal.utils.compatr   Úpip._internal.utils.miscr   r   Úpip._internal.metadata.baser   r   rn   Úpip._vendor.packaging.versionr(   Ú	getLoggerr   Úloggerr*   r$   rš   rŸ   r%   r&   r'   ú<module>rÚ      sÑ   ðÛ Û Ý ß R× RÑ Rå 9å (Ý ;Ý 2Ý 1Ý 7Ý <ß DÝ EÝ 4Ý 2ß ;áÝ?ôÐ.ô ð Ð2Ñ3€Oõ 0à	ˆ×	Ñ	˜8Ó	$€ôHÐ#ô HðV*Ø
ð*Ø&,ð*à
ˆ4��S‘	‰?˜D ™IÐ%Ñ&ó*ðZÐ/ð ¸&ð ÀSô r&   