ó
    �Rj†2  ã                   óÂ  • 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/  SSK0J1r1J2r2J3r3  \Rh                  " \55      r6\3Rn                  \3Rp                  \3Rr                  /r:S\S\4S jr; " 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_dependency_groups)Ú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     ÚID:\diplom_project\venv\Lib\site-packages\pip/_internal/cli/req_command.pyÚconfigure_tempdir_registryÚ0with_cleanup.<locals>.configure_tempdir_registry8   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!   r4   r*   s   ` @r)   Úwith_cleanupr8   3   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$ )#r6   éO   r/   Úkwr"   Nc                 óÞ   >• [         TU ]  " U0 UD6  U R                  R                  [        R
                  " 5       5        U R                  R                  [        R                  " 5       5        g r1   )ÚsuperÚ__init__Úcmd_optsÚ
add_optionr
   Údependency_groupsr3   )r-   r/   r;   Ú	__class__s      €r)   r>   ÚRequirementCommand.__init__P   sK   ø€ Ü‰Ò˜$Ð% "Ò%à�‰× Ñ ¤×!=Ò!=Ó!?Ô@Ø�‰× Ñ ¤×!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_variantV   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
UR                  S9$ )zA
Create a RequirementPreparer instance for the given parameters.
FrF   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_dirrP   Úbuild_isolationÚcheck_build_depsrL   rM   Úprogress_barrN   Úrequire_hashesrO   Ú
lazy_wheelrQ   Úlegacy_resolverÚresume_retries)ÚpathrI   Úfeatures_enabledÚloggerÚwarningr   rT   rU   rV   rW   rX   r[   )ÚclsrK   r.   rL   rM   rN   rO   rP   rQ   Útemp_build_dir_pathrZ   Úresolver_variantrY   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Ø'Ø!ØØ+Ø"×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.
)Úisolatedrk   rF   r   N)re   rN   rf   Úmake_install_reqrO   Úignore_dependenciesrg   rh   ri   rj   rl   )r   r   Úisolated_moderI   Ú,pip._internal.resolution.resolvelib.resolverÚ	_internalÚ
resolutionrF   ÚresolverÚResolverrp   Ú(pip._internal.resolution.legacy.resolverrE   )r`   re   rN   r.   rf   rO   rg   rh   ri   rj   rk   rl   ro   rb   Ú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                 ó.  • / 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                  (       aM  [        UR                  5       H4  n	[        U	UR                  UR                  SS9nUR	                  U5        M6     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                  (       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)Ú
constraintrN   r.   rM   F)rn   Úuser_suppliedNÚconfig_settings)Ú
comes_fromrn   rk   r}   r~   )rn   rk   r}   )r}   rn   rk   r~   )rN   r.   rM   )rn   rk   r}   r~   c              3   ó8   #   • U  H  oR                   v •  M     g 7fr1   )Ú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   rq   Úappendr   rk   ÚgetattrrA   r   r   Ú	editablesr   Úrequirementsr.   ÚgetÚanyrX   r†   Ú
find_linksr   ÚformatÚdictÚjoin)r-   r/   r.   rN   rM   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ð ×Ñ 
Ö+ñ ð ×$×$Ü.¨w×/HÑ/HÖI�Ü8ØØ$×2Ñ2Ø&×1Ñ1Ø"&ñ	�
ð ×#Ñ# JÖ/ñ Jð ×$Ô$ˆCÜ2ØØ"Ø ×.Ñ.Ø"×-Ñ-Ü '¨Ð1BÀDÓ IñˆJð ×Ñ 
Ö+ñ %ð  ×,Ô,ˆHÜ0Ø°ô�
ô AØØ$×2Ñ2Ø&×1Ñ1Ø"&ð &×-×-ð #×*Ñ*×.Ñ.Ð/@ÔAà!ñ
�
ð ×#Ñ# JÖ/óñ -ô$ Ñ<©|Ó<×<Ñ<Ø%)ˆGÔ"ö Ø× × Ø×#×#Ø×(×(à˜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)rN   rœ   Ú	locationss      r)   Útrace_basic_infoÚ#RequirementCommand.trace_basic_info6  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.
rH   T)Úallow_yankedÚformat_controlÚallow_all_prereleasesÚprefer_binaryrh   )Úlink_collectorÚselection_prefsr¢   )r   Úcreater   r¥   Úprer§   r   )r-   r.   rM   r¢   rh   r¨   r©   s          r)   Ú_build_package_finderÚ(RequirementCommand._build_package_finderA  s[   € ô '×-Ò-¨gÑGˆÜ.ØØ"×1Ñ1Ø")§+¡+Ø!×/Ñ/Ø#9ñ
ˆô ×#Ò#Ø)Ø+Ø'ñ
ð 	
r,   r‰   )Nr   )NFTFFzto-satisfy-onlyNN)NN) Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r>   Ústaticmethodr   ÚstrrI   Úclassmethodr   r   r   r   Úboolr   r7   r   rc   r	   r   r   ry   r   r   r™   r    r   r¬   Ú__static_attributes__Ú__classcell__)rB   s   @r)   r6   r6   O   s&  ø† ð8˜cð 8¨ð 8°÷ 8ð ð¨Fð °só ó ðð ð '+Øñ5
à%ð5
ð ð5
ð $ð	5
ð
 ð5
ð ð5
ð ð5
ð ˜s‘mð5
ð ð5
ð 
ô5
ó ð5
ðn ð -1Ø#Ø!%Ø',Ø %Ø 1Ø%)Ø59ñ8
à%ð8
ð ð8
ð ð	8
ð
 ˜jÑ)ð8
ð ð8
ð ð8
ð !%ð8
ð ð8
ð ð8
ð ˜T‘Nð8
ð " %¨¨S¨¡/Ñ2ð8
ð 
ô8
ó ð8
ðtcà�3‰iðcð ðcð ð	cð
 ðcð 
Ð Ñ	!ôcðJ ð# ð #°4ó #ó ð#ð 15Ø15ñ
àð
ð ð
ð   Ñ-ð	
ð
 !)¨¡ð
ð 
÷
ó 
r,   r6   )=Ú__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_dependency_groupr   Ú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&   r8   r6   r‰   r,   r)   Ú<module>rÒ      s»   ðñó Ý Ý ß -Ó -å *Ý (Ý =Ý Vß HÝ 7Ý <Ý EÝ ;Ý 4Ý EÝ @÷ó õ KÝ 9Ý <Ý 6÷ñ ð 
×	Ò	˜8Ó	$€ð ×ÑØ×#Ñ#Ø×ÑðÐ ð�sð ˜sô ô8L
Ð*õ L
r,   