Ë
    ”U.jLD  ã                  ó\  — d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
mZmZ ddl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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.m/Z/m0Z0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@mAZA ddlBmCZCmDZDmEZE  ejŒ                  eG«      ZHd%d„ZIeEj”                  eEj–                  eEj˜                  gZM edd ¬!«      ZN	 	 	 	 d&d"„ZO	 	 	 	 	 	 	 	 	 	 d'd#„ZP G d$„ d e«      ZQy)(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_pylock_packageÚinstall_req_from_req_string)ÚPEP723ExceptionÚpep723_metadata)Úparse_dependency_groups)Úparse_requirements)ÚInstallRequirement)ÚBaseResolver)Úcheck_requires_python)Úis_valid_pylock_filenameÚselect_from_pylock_path_or_url)ÚTempDirectoryÚTempDirectoryTypeRegistryÚtempdir_kindsc                óF   — t         j                  j                  d«      dk(  S )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    ú_C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pip/_internal/cli/req_command.pyÚ!should_ignore_regular_constraintsr5   @   s   € ô �:‰:�>‰>Ð<Ó=ÀÑDÐDó    Ú	_CommandTÚRequirementCommand)Úboundc                ó    ‡ ‡— dd„Šdˆˆ fd„}|S )zNDecorator for common logic related to managing temporary
    directories.
    c                ó>   — t         D ]  }| j                  |d«       Œ y ©NF)ÚKEEPABLE_TEMPDIR_TYPESÚ
set_delete)ÚregistryÚts     r4   Úconfigure_tempdir_registryz0with_cleanup.<locals>.configure_tempdir_registry[   s   € ß'ˆAØ×Ñ  5Õ)ñ (r6   c                ó²   •— | j                   €J ‚|j                  r ‰| j                   «       	  ‰| ||«      S # t        $ r  ‰| j                   «       ‚ w xY w©N)Útempdir_registryÚno_cleanr   )Úselfr3   ÚargsrA   Úfuncs      €€r4   Úwrapperzwith_cleanup.<locals>.wrapper_   sb   ø€ Ø×$Ñ$Ð0Ð0Ð0Ø×ÒÙ& t×'<Ñ'<Ô=ð	Ù˜˜g tÓ,Ð,øÜ$ò 	ñ ' t×'<Ñ'<Ô=Øð	ús	   ¯	9 ¹A)r?   r*   ÚreturnÚNone)rF   r7   r3   r   rG   ú	list[str]rJ   Úint© )rH   rI   rA   s   ` @r4   Úwith_cleanuprO   T   s   ù€ ó*öð €Nr6   c                ó”   — g }| D ]@  }t        |d|||¬«      D ]+  }t        ||j                  d¬«      }|j                  |«       Œ- ŒB |S )NT)Ú
constraintÚfinderr3   ÚsessionF©ÚisolatedÚuser_supplied)r#   r   Úisolated_modeÚappend)Úconstraint_filesrR   r3   rS   ÚrequirementsÚfilenameÚ
parsed_reqÚ
req_to_adds           r4   Úparse_constraint_filesr^   p   sd   € ð €LÛ$ˆÜ,ØØØØØ÷
ˆJô =ØØ ×.Ñ.Ø#ôˆJð
 ×Ñ 
Õ+ñ
ð %ð Ðr6   c                  ó  ‡ — e Zd Zdˆ fd„Zed	d„«       Ze	 	 d
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Ze	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Z	 	 	 	 	 	 	 	 	 	 dd„Z	edd„«       Z
	 	 d	 	 	 	 	 	 	 	 	 dd„Zˆ xZS )r8   c                óØ   •— t        ‰| �  |i |¤Ž | j                  j                  t	        j
                  «       «       | j                  j                  t	        j                  «       «       y rC   )ÚsuperÚ__init__Úcmd_optsÚ
add_optionr   Údependency_groupsrE   )rF   rG   ÚkwÚ	__class__s      €r4   rb   zRequirementCommand.__init__Š   sK   ø€ Ü‰Ñ˜$Ð% "Ò%à�‰× Ñ ¤×!=Ñ!=Ó!?Ô@Ø�‰× Ñ ¤×!4Ñ!4Ó!6Õ7r6   c                ó"   — d| j                   v ryy)zEDetermines which resolver should be used, based on the given options.zlegacy-resolverÚlegacyÚ
resolvelib)Údeprecated_features_enabledr2   s    r4   Údetermine_resolver_variantz-RequirementCommand.determine_resolver_variant�   s   € ð  × CÑ CÑCØàr6   c	                óV  — |j                   }	|	€J ‚d}
| j                  |«      }|dk(  r&d|j                  v }|r=t        j	                  d«       n'd}
d}d|j                  v rt        j	                  d«       t        |dg «      }d|j                  v }d	|j                  v r2t        ||||«      }t        ||||t        |j                  «      ¬
«      }nt        |||¬«      }t        |	|j                  ||j                  ||j                  |||j                  ||j                   ||||
¬«      S )zQ
        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)rR   Úbuild_trackerrn   Ú	verbosityÚwheel_cache)rn   Ú build_constraint_feature_enabled)Ú	build_dirÚsrc_dirÚdownload_dirÚbuild_isolationÚbuild_isolation_installerÚcheck_build_depsro   rS   Úprogress_barrR   Úrequire_hashesÚuse_user_siteÚ
lazy_wheelrp   Úlegacy_resolver)Úpathrl   Úfeatures_enabledÚloggerÚwarningÚgetattrr^   r
   r   Ú	cache_dirr   r   rt   rv   rx   ry   rz   )ÚclsÚtemp_build_dirr3   ro   rS   rR   r{   ru   rp   Útemp_build_dir_pathr}   Úresolver_variantr|   rn   rr   Úbuild_constraint_reqsÚenv_installers                    r4   Úmake_requirement_preparerz,RequirementCommand.make_requirement_preparer˜   sd  € ð -×1Ñ1ÐØ"Ð.Ð.Ð.Øˆà×9Ñ9¸'ÓBÐØ˜|Ò+Ø$¨×(@Ñ(@Ð@ˆJÙÜ—‘ð"õð #ˆOØˆJØ˜g×6Ñ6Ñ6Ü—‘ØQôô
 $ GÐ-@À"ÓEÐà '×":Ñ":Ð:ð 	)ð
 " W×%=Ñ%=Ñ=Ü$:Ø! 6¨7°Gó%Ð!ô ?ØØ+Ø"7Ø#Ü& w×'8Ñ'8Ó9ô‰Mô @ØØ"3Ø1QôˆMô #Ø)Ø—O‘OØ%Ø#×3Ñ3Ø&3Ø$×5Ñ5Ø'ØØ ×-Ñ-ØØ"×1Ñ1Ø'Ø!ØØ+ô
ð 	
r6   c                ó¬  — t        t        |j                  ¬«      }| j                  |«      }|dk(  rRddl}|j
                  j                  j                  j                  j                  ||||||j                  ||||	|
¬«      S ddl}|j
                  j                  j                  j                  j                  ||||||j                  ||||	|
¬«      S )zF
        Create a Resolver instance for the given parameters.
        )rU   rj   r   N)ÚpreparerrR   rq   Úmake_install_reqr{   Úignore_dependenciesÚignore_installedÚignore_requires_pythonÚforce_reinstallÚupgrade_strategyÚpy_version_info)r   r   rW   rl   Ú,pip._internal.resolution.resolvelib.resolverÚ	_internalÚ
resolutionrj   ÚresolverÚResolverrŽ   Ú(pip._internal.resolution.legacy.resolverri   )r„   rŒ   rR   r3   rq   r{   r�   r�   r‘   r’   r“   r�   r‡   Úpips                 r4   Úmake_resolverz RequirementCommand.make_resolveré   sì   € ô" #Ü'Ø×*Ñ*ô
Ðð ×9Ñ9¸'ÓBÐð ˜|Ò+Û?à—=‘=×+Ñ+×6Ñ6×?Ñ?×HÑHØ!ØØ'Ø!1Ø+Ø$+×$?Ñ$?Ø!1Ø'=Ø /Ø!1Ø /ð Ió ð ó 	8à�}‰}×'Ñ'×.Ñ.×7Ñ7×@Ñ@ØØØ#Ø-Ø'Ø '× ;Ñ ;Ø-Ø#9Ø+Ø-Ø+ð Aó 
ð 	
r6   c                ó€  — g }t        |«      s)t        |j                  |||«      }|j                  |«       |D ]I  }|j	                  «       sŒt        |d|j                  dt        |dd«      ¬«      }|j                  |«       ŒK |j                  rCt        |j                  «      D ]+  }t        ||j                  d¬«      }|j                  |«       Œ- |j                  D ]7  }t        |d|j                  t        |dd«      ¬«      }|j                  |«       Œ9 |j                  D ]Æ  }	t        |	«      rTt         j#                  d«       t%        |	|¬«      D ].  \  }
}|j                  t'        |
||	|j(                  d¬	«      «       Œ0 Œbt+        |	|||¬
«      D ]S  }t-        ||j                  d|j.                  r|j.                  j1                  d«      nd¬«      }|j                  |«       ŒU ŒÈ |j2                  rÞt5        |j2                  «      dkD  rt7        d«      ‚|j2                  d   }	 t9        |«      }|j1                  dd«      }|rL|j>                  s@tA        |«      }tC        ||jD                  ¬«      stG        d|›d|jH                  › d|›�«      ‚|j1                  dg «      D ]+  }t        ||j                  d¬«      }|j                  |«       Œ- tK        d„ |D «       «      rd|_&        |s¤|j                  s˜|j                  sŒ|j                  s€|j2                  std| jN                  i}|jP                  r?t7         djR                  di tU        |djW                  |jP                  «      ¬«      ¤Ž«      ‚t7         djR                  di |¤Ž«      ‚|S # t:        $ r}t7        |j<                  «      ‚d}~ww xY w)zS
        Parse command-line arguments into the corresponding requirements.
        NTÚconfig_settings)Ú
comes_fromrU   rV   r�   rT   )rV   rU   r�   z‹Using pylock.toml as a requirements source is an experimental feature. It may be removed/changed in a future release without prior warning.)rS   )rV   )rR   r3   rS   )rU   rV   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  ó4   K  — | ]  }|j                   –— Œ y ­wrC   )Úhas_hash_options)Ú.0Úreqs     r4   Ú	<genexpr>z6RequirementCommand.get_requirements.<locals>.<genexpr>˜  s   è ø€ Ð<©|¨ˆ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}")rN   ),r5   r^   ÚconstraintsÚextendÚstripr   rW   r‚   rX   re   r"   r   Ú	editablesr   rZ   r'   r€   r�   r(   r   Úformat_controlr#   r   r3   r1   Úrequirements_from_scriptsÚlenr   r!   r    Úmsgr�   r   r&   r“   r   Ú
py_versionÚanyrz   r©   Ú
find_linksÚformatÚdictÚjoin)rF   rG   r3   rR   rS   rZ   r¬   r§   r]   r[   ÚpackageÚpackage_distr\   ÚscriptÚscript_metadataÚexcÚscript_requires_pythonÚtarget_pythonÚoptss                      r4   Úget_requirementsz#RequirementCommand.get_requirements"  sè  € ð 24ˆä0°Ô9Ü0Ø×#Ñ# V¨W°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Ü'¨Ô1Ü—‘ð-ôô .LØ g÷.Ñ)�G˜\ð !×'Ñ'Ü7Ø#Ø(Ø$Ø#×2Ñ2Ø*.ôõð.ð Ü0Ø °À'÷�
ô AØØ$×2Ñ2Ø"&ð &×-Ò-ð #×*Ñ*×.Ñ.Ð/@ÔAà!ô	�
ð ×#Ñ# JÕ/ñð+ -ðH ×,Ò,Ü�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Ø×!Ò!Ü"ðEð >ß>D¹fñä˜t¨3¯8©8°G×4FÑ4FÓ+GÔHñóð ô #ð5ð .ß.4©fñ=Ø7;ñ=óð ð
 Ðøôe #ò ,Ü" 3§7¡7Ó+Ð+ûð,ús   È.N Î	N=Î#N8Î8N=c                ól   — | j                   }|j                  «       }|rt        j                  |«       yy)zE
        Trace basic information about the provided objects.
        N)Úsearch_scopeÚget_formatted_locationsr€   Úinfo)rR   rÄ   Ú	locationss      r4   Útrace_basic_infoz#RequirementCommand.trace_basic_info²  s1   € ð ×*Ñ*ˆØ ×8Ñ8Ó:ˆ	ÙÜ�K‰K˜	Õ"ð r6   c                óÒ   — t        j                  ||¬«      }t        d|j                  |j                  |j
                  |¬«      }t        j                  ||||j                  ¬«      S )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.
        r2   T)Úallow_yankedr°   Úrelease_controlÚprefer_binaryr�   )Úlink_collectorÚselection_prefsrÀ   Úuploaded_prior_to)r   Úcreater   r°   rË   rÌ   r   rÏ   )rF   r3   rS   rÀ   r�   rÍ   rÎ   s          r4   Ú_build_package_finderz(RequirementCommand._build_package_finder½  sh   € ô '×-Ñ-¨g¸wÔGˆÜ.ØØ"×1Ñ1Ø#×3Ñ3Ø!×/Ñ/Ø#9ô
ˆô ×#Ñ#Ø)Ø+Ø'Ø%×7Ñ7ô	
ð 	
r6   )rG   r   rf   r   rJ   rK   )r3   r   rJ   Ústr)Nr   )r…   r)   r3   r   ro   r   rS   r   rR   r   r{   Úboolru   z
str | Nonerp   rM   rJ   r   )NFTFFzto-satisfy-onlyN)rŒ   r   rR   r   r3   r   rq   zWheelCache | Noner{   rÓ   r�   rÓ   r�   rÓ   r‘   rÓ   r’   rÒ   r“   ztuple[int, ...] | NonerJ   r%   )
rG   rL   r3   r   rR   r   rS   r   rJ   úlist[InstallRequirement])rR   r   rJ   rK   r<   )
r3   r   rS   r   rÀ   zTargetPython | Noner�   rÓ   rJ   r   )Ú__name__Ú
__module__Ú__qualname__rb   Ústaticmethodrl   ÚclassmethodrŠ   r›   rÂ   rÈ   rÑ   Ú__classcell__)rg   s   @r4   r8   r8   ‰   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NàðNð ðNð ð	Nð
 ðNð 
"óNð` ò#ó ð#ð .2Ø',ð
àð
ð ð
ð +ð	
ð
 !%ð
ð 
÷
r6   )r3   r   rJ   rÓ   )rH   ú-Callable[[_CommandT, Values, list[str]], int]rJ   rÛ   )
rY   rL   rR   r   r3   r   rS   r   rJ   rÔ   )RÚ__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   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.pylockr'   r(   Úpip._internal.utils.temp_dirr)   r*   r+   Ú	getLoggerrÕ   r€   r5   Ú	BUILD_ENVÚEPHEM_WHEEL_CACHEÚ	REQ_BUILDr=   r7   rO   r^   r8   rN   r6   r4   Ú<module>rü      s0  ðñõ #ã Û 	Ý Ý ß )Ñ )÷ñ õ
 +Ý (Ý ;Ý =Ý V÷ñ õ
 8Ý <Ý EÝ ;Ý 4Ý EÝ @÷õ ÷ FÝ JÝ 9Ý <Ý 6Ý ?÷÷ñ ð 
ˆ×	Ñ	˜8Ó	$€óEð ×ÑØ×#Ñ#Ø×ÑðÐ ñ �KÐ';Ô<€	ðØ
7ðà2óð8Øðàðð ðð ð	ð
 óô2O
Ð*õ O
r6   