ó
    ¢'Ôib@  ã                  óH  • S r SSKJr  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  SSK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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/J0r0  SSK1J2r2J3r3  SSK4J5r5  SSK6J7r7  SSK8J9r9  SSK:J;r;  SSK<J=r=  SSK>J?r?J@r@JArA  \R„                  " \C5      rDS$S jrE\ARŒ                  \ARŽ                  \AR�                  /rI\" SSS 9rJ    S%S! jrK          S&S" jrL " S# S\5      rMg)'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.
é    )ÚannotationsN)Úpartial)ÚValues)ÚAnyÚCallableÚTypeVar)ÚBuildEnvironmentInstallerÚ"InprocessBuildEnvironmentInstallerÚ#SubprocessBuildEnvironmentInstaller)Ú
WheelCache)Ú
cmdoptions)Úmake_target_python)ÚIndexGroupCommand)ÚSessionCommandMixin)ÚCommandErrorÚPreviousBuildDirErrorÚUnsupportedPythonVersion)Ú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)ÚPEP723ExceptionÚpep723_metadata)Úparse_dependency_groups)Úparse_requirements)ÚInstallRequirement)ÚBaseResolver)Úcheck_requires_python)ÚTempDirectoryÚTempDirectoryTypeRegistryÚtempdir_kindsc                óF   • [         R                  R                  S5      S:H  $ )zª
Check if regular constraints should be ignored because
we are in a isolated build process and build constraints
feature is enabled but no build constraints were passed.
Ú _PIP_IN_BUILD_IGNORE_CONSTRAINTSÚ1)ÚosÚenvironÚget©Úoptionss    Ú\/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/pip/_internal/cli/req_command.pyÚ!should_ignore_regular_constraintsr2   ;   s   € ô �:‰:�>‰>Ð<Ó=ÀÑDÐDó    Ú	_CommandTÚRequirementCommand)Úboundc                ó&   ^ ^• SS jmSUU 4S jjnU$ )zFDecorator for common logic related to managing temporary
directories.
c                óB   • [          H  nU R                  US5        M     g )NF)ÚKEEPABLE_TEMPDIR_TYPESÚ
set_delete)ÚregistryÚts     r1   Úconfigure_tempdir_registryÚ0with_cleanup.<locals>.configure_tempdir_registryV   s   € ß'ˆAØ×Ñ  5Ö)ò (r3   c                ó¾   >• 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   )Úselfr0   Úargsr=   Úfuncs      €€r1   ÚwrapperÚwith_cleanup.<locals>.wrapperZ   s`   ø€ Ø×$Ñ$Ñ0Ð0Ð0Ø××Ù& t×'<Ñ'<Ô=ð	Ù˜ tÓ,Ð,øÜ$ó 	ñ ' t×'<Ñ'<Ô=Øð	ús	   µ> ¾A)r;   r'   ÚreturnÚNone)rC   r4   r0   r   rD   ú	list[str]rH   Úint© )rE   rF   r=   s   ` @r1   Úwith_cleanuprM   O   s   ù€ ô*÷ð ð €Nr3   c           	     ó�   • / nU  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$ )NT)Ú
constraintÚfinderr0   ÚsessionF©ÚisolatedÚuser_supplied)r"   r   Úisolated_modeÚappend)Úconstraint_filesrP   r0   rQ   ÚrequirementsÚfilenameÚ
parsed_reqÚ
req_to_adds           r1   Úparse_constraint_filesr\   k   sd   € ð €LÛ$ˆÜ,ØØØØØô
ˆJô =ØØ ×.Ñ.Ø#ñˆJð
 ×Ñ 
Ö+ó
ñ %ð Ðr3   c                  ó$  ^ • \ rS rSrS
U 4S jjr\SS j5       r\  S                 SS jj5       r\       S                     SS jj5       r	          SS jr
\SS j5       r  S         SS jjrS	rU =r$ )r5   é„   c                óÞ   >• [         TU ]  " U0 UD6  U R                  R                  [        R
                  " 5       5        U R                  R                  [        R                  " 5       5        g r@   )ÚsuperÚ__init__Úcmd_optsÚ
add_optionr   Údependency_groupsrB   )rC   rD   ÚkwÚ	__class__s      €r1   ra   ÚRequirementCommand.__init__…   sK   ø€ Ü‰Ò˜$Ð% "Ò%à�‰× Ñ ¤×!=Ò!=Ó!?Ô@Ø�‰× Ñ ¤×!4Ò!4Ó!6Õ7r3   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_enabledr/   s    r1   Údetermine_resolver_variantÚ-RequirementCommand.determine_resolver_variant‹   s   € ð  × CÑ CÓCØàr3   c	                óZ  • 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S/ 5      nSUR                  ;   nS	UR                  ;   a-  [        XÕX$5      n[        UUUU[        UR                  5      S
9nO[        UUUS9n[        U	UR                  UUR                  UUR                  UUUR                  UUR                   UUUU
S9$ )zA
Create a RequirementPreparer instance for the given parameters.
Frj   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_constraintszbuild-constraintzinprocess-build-deps)rP   Úbuild_trackerro   Ú	verbosityÚwheel_cache)ro   Ú build_constraint_feature_enabled)Ú	build_dirÚsrc_dirÚdownload_dirÚbuild_isolationÚbuild_isolation_installerÚcheck_build_depsrp   rQ   Úprogress_barrP   Úrequire_hashesÚuse_user_siteÚ
lazy_wheelrq   Úlegacy_resolver)Úpathrl   Úfeatures_enabledÚloggerÚwarningÚgetattrr\   r
   r   Ú	cache_dirr   r   ru   rw   ry   rz   r{   )ÚclsÚtemp_build_dirr0   rp   rQ   rP   r|   rv   rq   Útemp_build_dir_pathr~   Úresolver_variantr}   ro   rs   Úbuild_constraint_reqsÚenv_installers                    r1   Úmake_requirement_preparerÚ,RequirementCommand.make_requirement_preparer“   sa  € ð -×1Ñ1ÐØ"Ñ.Ð.Ð.Øˆà×9Ñ9¸'ÓBÐØ˜|Ó+Ø$¨×(@Ñ(@Ñ@ˆJÞÜ—‘ð"ôøð #ˆOØˆJØ˜g×6Ñ6Ó6Ü—‘ØQôô
 $ GÐ-@À"ÓEÐà '×":Ñ":Ñ:ð 	)ð
 " W×%=Ñ%=Ó=Ü$:Ø!¨7ó%Ð!ô ?ØØ+Ø"7Ø#Ü& w×'8Ñ'8Ó9ñ‰Mô @ØØ"3Ø1QñˆMô #Ø)Ø—O‘OØ%Ø#×3Ñ3Ø&3Ø$×5Ñ5Ø'ØØ ×-Ñ-ØØ"×1Ñ1Ø'Ø!ØØ+ñ
ð 	
r3   c                óœ  • [        [        UR                  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.
)rS   rj   r   N)ÚpreparerrP   rr   Úmake_install_reqr|   Úignore_dependenciesÚignore_installedÚignore_requires_pythonÚforce_reinstallÚupgrade_strategyÚpy_version_info)r   r   rU   rl   Ú,pip._internal.resolution.resolvelib.resolverÚ	_internalÚ
resolutionrj   ÚresolverÚResolverr�   Ú(pip._internal.resolution.legacy.resolverri   )r…   rŽ   rP   r0   rr   r|   r‘   r’   r“   r”   r•   r�   rˆ   Úpips                 r1   Úmake_resolverÚ RequirementCommand.make_resolverä   sì   € ô" #Ü'Ø×*Ñ*ñ
Ðð ×9Ñ9¸'ÓBÐð ˜|Ó+Û?à—=‘=×+Ñ+×6Ñ6×?Ñ?×HÑHØ!ØØ'Ø!1Ø+Ø$+×$?Ñ$?Ø!1Ø'=Ø /Ø!1Ø /ð Ið ð ó 	8à�}‰}×'Ñ'×.Ñ.×7Ñ7×@Ñ@ØØØ#Ø-Ø'Ø '× ;Ñ ;Ø-Ø#9Ø+Ø-Ø+ð Að 
ð 	
r3   c                óD  • / n[        U5      (       d(  [        UR                  X2U5      nUR                  U5        U HM  nUR	                  5       (       d  M  [        USUR                  S[        USS5      S9nUR                  U5        MO     UR                  (       aB  [        UR                  5       H)  n[        UUR                  SS9nUR                  U5        M+     UR                   H5  n[        USUR                  [        USS5      S9nUR                  U5        M7     UR                   Hg  n	[        X“X$S9 HV  n
[!        U
UR                  SU
R"                  (       a  U
R"                  R%                  S5      OSS9nUR                  U5        MX     Mi     UR&                  (       aì  [)        UR&                  5      S	:”  a  [+        S
5      eUR&                  S   n [-        U5      nUR%                  SS5      nU(       aU  UR2                  (       dD  [5        U5      n[7        UUR8                  S9(       d   [;        SU< SUR<                   SU< 35      eUR%                  S/ 5       H)  n[        UUR                  SS9nUR                  U5        M+     [?        S U 5       5      (       a  SUl         U(       dº  UR                  (       d©  UR                  (       d˜  UR                  (       d‡  UR&                  (       dv  SU RB                  0nURD                  (       a<  [+        SRF                  " S0 [I        USRK                  URD                  5      S9D65      e[+        SRF                  " S0 UD65      eU$ ! [.         a  n[+        UR0                  5      eSnAff = f)zC
Parse command-line arguments into the corresponding requirements.
NTÚconfig_settings)Ú
comes_fromrS   rT   r    rR   )rT   rS   r    )rP   r0   rQ   )rS   rT   r    é   z1--requirements-from-script can only be given oncer   zrequires-pythonÚ )Úrequires_pythonÚversion_infozScript z requires a different Python: z not in Údependenciesc              3  ó8   #   • U  H  oR                   v •  M     g 7fr@   )Úhas_hash_options)Ú.0Úreqs     r1   Ú	<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}")rL   )&r2   r\   ÚconstraintsÚextendÚstripr   rU   rƒ   rV   rd   r!   r   Ú	editablesr   rX   r"   r   r0   r.   Úrequirements_from_scriptsÚlenr   r    r   Úmsgr’   r   r%   r•   r   Ú
py_versionÚanyr{   r­   Ú
find_linksÚformatÚdictÚjoin)rC   rD   r0   rP   rQ   rX   r°   rª   r[   rY   rZ   ÚscriptÚscript_metadataÚexcÚscript_requires_pythonÚtarget_pythonÚoptss                    r1   Úget_requirementsÚ#RequirementCommand.get_requirements  s‚  € ð 24ˆä0°×9Ñ9Ü0Ø×#Ñ# V°góˆKð ×Ñ Ô,ãˆCØ—9‘9—;‘;ÙÜ.ØØØ ×.Ñ.Ø"Ü '¨Ð1BÀDÓ IñˆJð ×Ñ 
Ö+ñ ð ×$×$Ü.¨w×/HÑ/HÖI�Ü8ØØ$×2Ñ2Ø"&ñ�
ð
 ×#Ñ# JÖ/ñ Jð ×$Ô$ˆCÜ2ØØ"Ø ×.Ñ.Ü '¨Ð1BÀDÓ Iñ	ˆJð ×Ñ 
Ö+ñ %ð  ×,Ô,ˆHÜ0Ø°ô�
ô AØØ$×2Ñ2Ø"&ð &×-×-ð #×*Ñ*×.Ñ.Ð/@ÔAà!ñ	�
ð ×#Ñ# JÖ/óñ -ð  ×,×,Ü�7×4Ñ4Ó5¸Ó9Ü"Ð#VÓWÐWà×6Ñ6°qÑ9ˆFð,Ü"1°&Ó"9�ð &5×%8Ñ%8Ð9JÈBÓ%OÐ"æ%¨g×.L×.LÜ 2°7Ó ;�ä,Ø$:Ø!.×!>Ñ!>÷ô 3Ø! &¡Ð+IØ(×3Ñ3Ð4°HÐ=SÑ<VðXóð ð
 '×*Ñ*¨>¸2Ö>�Ü8ØØ$×2Ñ2Ø"&ñ�
ð
 ×#Ñ# JÖ/ñ ?ô Ñ<©|Ó<×<Ñ<Ø%)ˆGÔ"ö Ø× × Ø×#×#Ø×(×(Ø×0×0à˜DŸI™IÐ&ˆDØ×!×!Ü"ð>ß>D¹fðEñ ä˜t¨3¯8©8°G×4FÑ4FÓ+GÑHñóð ô #ð.ß.4©fð5ñ =Ø7;ñ=óð ð
 Ðøôe #ó ,Ü" 3§7¡7Ó+Ð+ûð,ús   Ç"M; Í;
NÎNÎN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)rP   rÆ   Ú	locationss      r1   Útrace_basic_infoÚ#RequirementCommand.trace_basic_info™  s1   € ð ×*Ñ*ˆØ ×8Ñ8Ó:ˆ	ÞÜ�K‰K˜	Õ"ð r3   c                óÂ   • [         R                  " X!S9n[        SUR                  UR                  UR
                  US9n[        R                  " UUUUR                  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.
r/   T)Úallow_yankedÚformat_controlÚrelease_controlÚprefer_binaryr’   )Úlink_collectorÚselection_prefsrÁ   Úuploaded_prior_to)r   Úcreater   rÎ   rÏ   rÐ   r   rÓ   )rC   r0   rQ   rÁ   r’   rÑ   rÒ   s          r1   Ú_build_package_finderÚ(RequirementCommand._build_package_finder¤  sf   € ô '×-Ò-¨gÑGˆÜ.ØØ"×1Ñ1Ø#×3Ñ3Ø!×/Ñ/Ø#9ñ
ˆô ×#Ò#Ø)Ø+Ø'Ø%×7Ñ7ñ	
ð 	
r3   rL   )rD   r   re   r   rH   rI   )r0   r   rH   Ústr)Nr   )r†   r&   r0   r   rp   r   rQ   r   rP   r   r|   Úboolrv   z
str | Nonerq   rK   rH   r   )NFTFFzto-satisfy-onlyN)rŽ   r   rP   r   r0   r   rr   zWheelCache | Noner|   rØ   r‘   rØ   r’   rØ   r“   rØ   r”   r×   r•   ztuple[int, ...] | NonerH   r$   )
rD   rJ   r0   r   rP   r   rQ   r   rH   úlist[InstallRequirement])rP   r   rH   rI   )NN)
r0   r   rQ   r   rÁ   zTargetPython | Noner’   zbool | NonerH   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ra   Ústaticmethodrl   Úclassmethodr‹   r�   rÃ   rÊ   rÕ   Ú__static_attributes__Ú__classcell__)rf   s   @r1   r5   r5   „   sÆ  ø† ÷8ð óó ðð ð $(ØðN
à%ðN
ð ðN
ð $ð	N
ð
 ðN
ð ðN
ð ðN
ð !ðN
ð ðN
ð 
ôN
ó ðN
ð` ð *.Ø#Ø!%Ø',Ø %Ø 1Ø26ð6
à%ð6
ð ð6
ð ð	6
ð
 'ð6
ð ð6
ð ð6
ð !%ð6
ð ð6
ð ð6
ð 0ð6
ð 
ô6
ó ð6
ðpzàðzð ðzð ð	zð
 ðzð 
"ôzðx ó#ó ð#ð .2Ø.2ð
àð
ð ð
ð +ð	
ð
 !,ð
ð 
÷
ó 
r3   )r0   r   rH   rØ   )rE   ú-Callable[[_CommandT, Values, list[str]], int]rH   râ   )
rW   rJ   rP   r   r0   r   rQ   r   rH   rÙ   )NÚ__doc__Ú
__future__r   Úloggingr,   Ú	functoolsr   Úoptparser   Útypingr   r   r   Úpip._internal.build_envr	   r
   r   Úpip._internal.cacher   Úpip._internal.clir   Úpip._internal.cli.cmdoptionsr   Úpip._internal.cli.index_commandr   r   Úpip._internal.exceptionsr   r   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.pep723r   r    Ú&pip._internal.req.req_dependency_groupr!   Úpip._internal.req.req_filer"   Úpip._internal.req.req_installr#   Úpip._internal.resolution.baser$   Úpip._internal.utils.packagingr%   Úpip._internal.utils.temp_dirr&   r'   r(   Ú	getLoggerrÚ   r�   r2   Ú	BUILD_ENVÚEPHEM_WHEEL_CACHEÚ	REQ_BUILDr9   r4   rM   r\   r5   rL   r3   r1   Ú<module>r     s)  ðñõ #ã Û 	Ý Ý ß )Ñ )÷ñ õ
 +Ý (Ý ;Ý =Ý V÷ñ õ
 8Ý <Ý EÝ ;Ý 4Ý EÝ @÷ó ÷ FÝ JÝ 9Ý <Ý 6Ý ?÷ñ ð 
×	Ò	˜8Ó	$€ôEð ×ÑØ×#Ñ#Ø×ÑðÐ ñ �KÐ';Ñ<€	ðØ
7ðà2ôð8Øðàðð ðð ð	ð
 ôô2{
Ð*õ {
r3   