ó
    Þ jÚ/  ã                   ó¶  • S 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
  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  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%J&r&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/J0r0J1r1  \Rd                  " \35      r4\1Rj                  \1Rl                  \1Rn                  /r8S\S\4S jr9 " S S\5      r:g)zðContains the RequirementCommand base class.

This class is in a separate module so the commands that do not always
need PackageFinder capability don't unnecessarily import the
PackageFinder machinery and all its vendored dependencies, etc.
é    N)Úpartial)ÚValues)ÚAnyÚListÚOptionalÚTuple)Ú
WheelCache)Ú
cmdoptions)ÚIndexGroupCommand)ÚSessionCommandMixin)ÚCommandErrorÚPreviousBuildDirError)ÚLinkCollector)ÚPackageFinder)ÚSelectionPreferences)ÚTargetPython)Ú
PipSession)ÚBuildTracker)ÚRequirementPreparer)Úinstall_req_from_editableÚinstall_req_from_lineÚ#install_req_from_parsed_requirementÚinstall_req_from_req_string)Úparse_requirements)ÚInstallRequirement)ÚBaseResolver)ÚTempDirectoryÚTempDirectoryTypeRegistryÚtempdir_kindsÚfuncÚreturnc           	      ó‚   ^ ^• S[         SS4S jmS[        S[        S[        [           S[
        [           4UU 4S jjnU$ )	zFDecorator for common logic related to managing temporary
directories.
Úregistryr!   Nc                 óB   • [          H  nU R                  US5        M     g )NF)ÚKEEPABLE_TEMPDIR_TYPESÚ
set_delete)r#   Úts     ÚW/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/cli/req_command.pyÚconfigure_tempdir_registryÚ0with_cleanup.<locals>.configure_tempdir_registry7   s   € ß'ˆAØ×Ñ  5Ö)ò (ó    ÚselfÚoptionsÚargsc                 ó¾   >• U R                   c   eUR                  (       a  T" U R                   5         T" XU5      $ ! [         a    T" U R                   5        e f = f©N)Útempdir_registryÚno_cleanr   )r,   r-   r.   r)   r    s      €€r(   ÚwrapperÚwith_cleanup.<locals>.wrapper;   sb   ø€ ð ×$Ñ$Ñ0Ð0Ð0Ø××Ù& t×'<Ñ'<Ô=ð	Ù˜ tÓ,Ð,øÜ$ó 	ñ ' t×'<Ñ'<Ô=Øð	ús	   µ> ¾A)r   ÚRequirementCommandr   r   r   r   Úint)r    r3   r)   s   ` @r(   Úwith_cleanupr7   2   sP   ù€ ð
*Ô-Fð *È4ô *ðÜ ðÜ+1ðÜ9=¼c¹ðä	”#‰÷ð ð  €Nr+   c                   ó†  ^ • \ rS rSrS\S\SS4U 4S jjr\S\S\4S j5       r	\
  S S	\S\S
\S\S\S\S\\   S\S\4S jj5       r\
        S!S\S\S\S\\   S\S\S\S\S\S\\   S\\\S4      S\4S jj5       rS\\   S\S\S\S\\   4
S jr\S\SS4S j5       r  S"S\S\S\\   S\\   S\4
S jjrSrU =r$ )#r5   éN   r.   Úkwr!   Nc                 ó‚   >• [         TU ]  " U0 UD6  U R                  R                  [        R
                  " 5       5        g r0   )ÚsuperÚ__init__Úcmd_optsÚ
add_optionr
   r2   )r,   r.   r:   Ú	__class__s      €r(   r=   ÚRequirementCommand.__init__O   s0   ø€ Ü‰Ò˜$Ð% "Ò%à�‰× Ñ ¤×!4Ò!4Ó!6Õ7r+   r-   c                 ó&   • SU R                   ;   a  gg)zEDetermines which resolver should be used, based on the given options.zlegacy-resolverÚlegacyÚ
resolvelib)Údeprecated_features_enabled©r-   s    r(   Údetermine_resolver_variantÚ-RequirementCommand.determine_resolver_variantT   s   € ð  × CÑ CÓCØàr+   Útemp_build_dirÚbuild_trackerÚsessionÚfinderÚuse_user_siteÚdownload_dirÚ	verbosityc	                 ó�  • UR                   n	U	c   eSn
U R                  U5      nUS:X  a,  SUR                  ;   nU(       a  [        R	                  S5        O)Sn
SnSUR                  ;   a  [        R	                  S5        [        U	UR                  UUR                  UR                  UUUR                  UUR                  UUUU
S9$ )zA
Create a RequirementPreparer instance for the given parameters.
FrD   z	fast-depszÊpip is using lazily downloaded wheels using HTTP range requests to obtain dependency information. This experimental feature is enabled through --use-feature=fast-deps and it is not ready for production.Tz;fast-deps has no effect when used with the legacy resolver.)Ú	build_dirÚsrc_dirrN   Úbuild_isolationÚcheck_build_depsrJ   rK   Úprogress_barrL   Úrequire_hashesrM   Ú
lazy_wheelrO   Úlegacy_resolver)ÚpathrG   Úfeatures_enabledÚloggerÚwarningr   rR   rS   rT   rU   rV   )ÚclsrI   r-   rJ   rK   rL   rM   rN   rO   Útemp_build_dir_pathrX   Úresolver_variantrW   s                r(   Úmake_requirement_preparerÚ,RequirementCommand.make_requirement_preparer\   sÝ   € ð -×1Ñ1ÐØ"Ñ.Ð.Ð.Øˆà×9Ñ9¸'ÓBÐØ˜|Ó+Ø$¨×(@Ñ(@Ñ@ˆJÞÜ—‘ð"ôøð #ˆOØˆJØ˜g×6Ñ6Ó6Ü—‘ØQôô #Ø)Ø—O‘OØ%Ø#×3Ñ3Ø$×5Ñ5Ø'ØØ ×-Ñ-ØØ"×1Ñ1Ø'Ø!ØØ+ñ
ð 	
r+   ÚpreparerÚwheel_cacheÚignore_installedÚignore_requires_pythonÚforce_reinstallÚupgrade_strategyÚ
use_pep517Úpy_version_info.c                 óž  • [        [        UR                  U
S9nU R                  U5      nUS:X  aO  SSKnUR
                  R                  R                  R                  R                  UUUUUUR                  UUUU	US9$ SSKnUR
                  R                  R                  R                  R                  UUUUUUR                  UUUU	US9$ )z6
Create a Resolver instance for the given parameters.
)Úisolatedrh   rD   r   N)rb   rL   rc   Úmake_install_reqrM   Úignore_dependenciesrd   re   rf   rg   ri   )r   r   Úisolated_moderG   Ú,pip._internal.resolution.resolvelib.resolverÚ	_internalÚ
resolutionrD   ÚresolverÚResolverrm   Ú(pip._internal.resolution.legacy.resolverrC   )r]   rb   rL   r-   rc   rM   rd   re   rf   rg   rh   ri   rl   r_   Úpips                  r(   Úmake_resolverÚ RequirementCommand.make_resolver“   sï   € ô$ #Ü'Ø×*Ñ*Ø!ñ
Ðð
 ×9Ñ9¸'ÓBÐð ˜|Ó+Û?à—=‘=×+Ñ+×6Ñ6×?Ñ?×HÑHØ!ØØ'Ø!1Ø+Ø$+×$?Ñ$?Ø!1Ø'=Ø /Ø!1Ø /ð Ið ð ó 	8à�}‰}×'Ñ'×.Ñ.×7Ñ7×@Ñ@ØØØ#Ø-Ø'Ø '× ;Ñ ;Ø-Ø#9Ø+Ø-Ø+ð Að 
ð 	
r+   c                 óP  • / nUR                    H=  n[        USUUUS9 H)  n[        UUR                  SS9nUR	                  U5        M+     M?     U HA  n	[        U	SUR                  UR                  S[        USS5      S9nUR	                  U5        MC     UR                   H@  n	[        U	SUR                  UR                  [        USS5      S9nUR	                  U5        MB     UR                   Hr  n[        XcX$S	9 Ha  n[        UUR                  UR                  SUR                  (       a  UR                  R                  S5      OSS
9nUR	                  U5        Mc     Mt     [        S U 5       5      (       a  SUl        U(       d˜  UR                  (       d‡  UR                  (       dv  SU R                  0n
UR                   (       a<  [#        SR$                  " S0 ['        U
SR)                  UR                   5      S9D65      e[#        SR$                  " S0 U
D65      eU$ )zC
Parse command-line arguments into the corresponding requirements.
T)Ú
constraintrL   r-   rK   F)rk   Úuser_suppliedNÚconfig_settings)Ú
comes_fromrk   rh   rz   r{   )rz   rk   rh   r{   )rL   r-   rK   )rk   rh   rz   r{   c              3   ó6   #   • U H  oR                   v •  M     g 7fr0   )Úhas_hash_options)Ú.0Úreqs     r(   Ú	<genexpr>Ú6RequirementCommand.get_requirements.<locals>.<genexpr>  s   é € Ð<©|¨×#Ö#ª|ùs   ‚ÚnamezXYou must give at least one requirement to {name} (maybe you meant "pip {name} {links}"?)Ú )ÚlinkszHYou must give at least one requirement to {name} (see "pip help {name}")© )Úconstraintsr   r   rn   Úappendr   rh   ÚgetattrÚ	editablesr   Úrequirementsr-   ÚgetÚanyrV   rƒ   Ú
find_linksr   ÚformatÚdictÚjoin)r,   r.   r-   rL   rK   r‹   ÚfilenameÚ
parsed_reqÚ
req_to_addr€   Úoptss              r(   Úget_requirementsÚ#RequirementCommand.get_requirementsÎ   s:  € ð 24ˆØ×+Ô+ˆHÜ0ØØØØØô�
ô AØØ$×2Ñ2Ø"'ñ�
ð
 ×#Ñ# JÖ/óñ ,ó ˆCÜ.ØØØ ×.Ñ.Ø"×-Ñ-Ø"Ü '¨Ð1BÀDÓ IñˆJð ×Ñ 
Ö+ñ ð ×$Ô$ˆCÜ2ØØ"Ø ×.Ñ.Ø"×-Ñ-Ü '¨Ð1BÀDÓ IñˆJð ×Ñ 
Ö+ñ %ð  ×,Ô,ˆHÜ0Ø°ô�
ô AØØ$×2Ñ2Ø&×1Ñ1Ø"&ð &×-×-ð #×*Ñ*×.Ñ.Ð/@ÔAà!ñ
�
ð ×#Ñ# JÖ/óñ -ô$ Ñ<©|Ó<×<Ñ<Ø%)ˆGÔ"æ˜×)×)¨W×-A×-AØ˜DŸI™IÐ&ˆDØ×!×!Ü"ð>ß>D¹fðEñ ä˜t¨3¯8©8°G×4FÑ4FÓ+GÑHñóð ô #ð.ß.4©fð5ñ =Ø7;ñ=óð ð
 Ðr+   c                 óv   • U R                   nUR                  5       nU(       a  [        R                  U5        gg)z5
Trace basic information about the provided objects.
N)Úsearch_scopeÚget_formatted_locationsr[   Úinfo)rL   r™   Ú	locationss      r(   Útrace_basic_infoÚ#RequirementCommand.trace_basic_info$  s1   € ð ×*Ñ*ˆØ ×8Ñ8Ó:ˆ	ÞÜ�K‰K˜	Õ"ð r+   Útarget_pythonc                 ó¬   • [         R                  " X!S9n[        SUR                  UR                  UR
                  US9n[        R                  " UUUS9$ )z»
Create a package finder appropriate to this requirement command.

:param ignore_requires_python: Whether to ignore incompatible
    "Requires-Python" values in links. Defaults to False.
rF   T)Úallow_yankedÚformat_controlÚallow_all_prereleasesÚprefer_binaryre   )Úlink_collectorÚselection_prefsrŸ   )r   Úcreater   r¢   Úprer¤   r   )r,   r-   rK   rŸ   re   r¥   r¦   s          r(   Ú_build_package_finderÚ(RequirementCommand._build_package_finder/  s[   € ô '×-Ò-¨gÑGˆÜ.ØØ"×1Ñ1Ø")§+¡+Ø!×/Ñ/Ø#9ñ
ˆô ×#Ò#Ø)Ø+Ø'ñ
ð 	
r+   r†   )Nr   )NFTFFzto-satisfy-onlyNN)NN) Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r=   Ústaticmethodr   ÚstrrG   Úclassmethodr   r   r   r   Úboolr   r6   r   r`   r	   r   r   rv   r   r   r–   r�   r   r©   Ú__static_attributes__Ú__classcell__)r@   s   @r(   r5   r5   N   s&  ø† ð8˜cð 8¨ð 8°÷ 8ð
 ð¨Fð °só ó ðð ð '+Øñ4
à%ð4
ð ð4
ð $ð	4
ð
 ð4
ð ð4
ð ð4
ð ˜s‘mð4
ð ð4
ð 
ô4
ó ð4
ðl ð -1Ø#Ø!%Ø',Ø %Ø 1Ø%)Ø59ñ8
à%ð8
ð ð8
ð ð	8
ð
 ˜jÑ)ð8
ð ð8
ð ð8
ð !%ð8
ð ð8
ð ð8
ð ˜T‘Nð8
ð " %¨¨S¨¡/Ñ2ð8
ð 
ô8
ó ð8
ðtTà�3‰iðTð ðTð ð	Tð
 ðTð 
Ð Ñ	!ôTðl ð# ð #°4ó #ó ð#ð 15Ø15ñ
àð
ð ð
ð   Ñ-ð	
ð
 !)¨¡ð
ð 
÷
ó 
r+   r5   );Ú__doc__ÚloggingÚ	functoolsr   Úoptparser   Útypingr   r   r   r   Úpip._internal.cacher	   Úpip._internal.clir
   Úpip._internal.cli.index_commandr   r   Úpip._internal.exceptionsr   r   Úpip._internal.index.collectorr   Ú"pip._internal.index.package_finderr   Ú$pip._internal.models.selection_prefsr   Ú"pip._internal.models.target_pythonr   Úpip._internal.network.sessionr   Ú,pip._internal.operations.build.build_trackerr   Ú pip._internal.operations.preparer   Úpip._internal.req.constructorsr   r   r   r   Úpip._internal.req.req_filer   Úpip._internal.req.req_installr   Úpip._internal.resolution.baser   Úpip._internal.utils.temp_dirr   r   r   Ú	getLoggerr«   r[   Ú	BUILD_ENVÚEPHEM_WHEEL_CACHEÚ	REQ_BUILDr%   r7   r5   r†   r+   r(   Ú<module>rÎ      s·   ðñó Ý Ý ß -Ó -å *Ý (Ý =Ý Vß HÝ 7Ý <Ý EÝ ;Ý 4Ý EÝ @÷ó õ :Ý <Ý 6÷ñ ð 
×	Ò	˜8Ó	$€ð ×ÑØ×#Ñ#Ø×ÑðÐ ð�sð ˜sô ô8{
Ð*õ {
r+   