ó
    �Rj¬*  ã            
       óÂ  • S r SSKrSSKrSSKrSSK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Jr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Jr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)J*r*  \(       a  SSK+J,r,  \RZ                  " \.5      r/S\0S\0S\\\0   \\0\04   4   4S jr1 " S S5      r2S\04S jr3S\\0   4S jr4 " S S5      r5 " S S\55      r6g)z:Build Environment used for isolation during sdist buildingé    N)ÚOrderedDict)ÚTracebackType)ÚTYPE_CHECKINGÚIterableÚListÚOptionalÚSetÚTupleÚTypeÚUnion)ÚVersion)Ú__file__)Úopen_spinner)Úget_platlibÚget_purelibÚ
get_scheme)Úget_default_environmentÚget_environment)ÚVERBOSE)Úget_requirement)Úcall_subprocess)ÚTempDirectoryÚtempdir_kinds)ÚPackageFinderÚaÚbÚreturnc                 ó   • X:w  a  X4$ U 4$ ©N© )r   r   s     ÚCD:\diplom_project\venv\Lib\site-packages\pip/_internal/build_env.pyÚ_dedupr"      s   € Ø“VˆAˆ6Ð% ! Ð%ó    c                   ó&   • \ rS rSrS\SS4S jrSrg)Ú_Prefixé"   Úpathr   Nc                 óž   • Xl         SU l        [        SUS9nUR                  U l        [        UR                  UR                  5      U l        g )NFÚ )Úprefix)	r'   Úsetupr   ÚscriptsÚbin_dirr"   ÚpurelibÚplatlibÚlib_dirs)Úselfr'   Úschemes      r!   Ú__init__Ú_Prefix.__init__#   s;   € ØŒ	ØˆŒ
Ü˜B tÑ,ˆØ—~‘~ˆŒÜ˜vŸ~™~¨v¯~©~Ó>ˆ�r#   )r-   r0   r'   r+   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústrr3   Ú__static_attributes__r    r#   r!   r%   r%   "   s   † ð?˜Sð ? T÷ ?r#   r%   c                  óØ   • [         R                  " [        5      R                  5       R                  n U R                  5       (       d  [        U 5      $ [        R                  " U S-  5      $ )z¬Get a file to pass to a Python executable, to run the currently-running pip.

This is used to run a pip subprocess, for installing requirements into the build
environment.
z__pip-runner__.py)	ÚpathlibÚPathÚpip_locationÚresolveÚparentÚis_dirr9   ÚosÚfsdecode)Úsources    r!   Úget_runnable_piprE   +   sM   € ô �\Š\œ,Ó'×/Ñ/Ó1×8Ñ8€Fà�=‰=�?‰?ô �6‹{Ðä�;Š;�vÐ 3Ñ3Ó4Ð4r#   c                  óê   • [        [        S5      (       a  [        R                  " 5       n O[        5       [	        5       /n U  Vs1 s H"  n[
        R                  R                  U5      iM$     sn$ s  snf )zÎGet system site packages

Usually from site.getsitepackages,
but fallback on `get_purelib()/get_platlib()` if unavailable
(e.g. in a virtualenv created by virtualenv<20)

Returns normalized set of strings.
Úgetsitepackages)ÚhasattrÚsiterG   r   r   rB   r'   Únormcase)Úsystem_sitesr'   s     r!   Ú_get_system_sitepackagesrL   ;   sW   € ô ŒtÐ&×'Ñ'Ü×+Ò+Ó-‰ô $›¤{£}Ð5ˆÙ/;Ó<ª| tŒB�G‰G×Ñ˜TÖ"©|Ñ<Ð<ùÒ<s   Á)A0c                   óì   • \ rS rSrSrSS jrSS jrS\\\	      S\\	   S	\\
   SS4S
 jrS\\   S\\\\\4      \\   4   4S jrSSS\\   S\S\SS4
S jr\S\SSS\\   S\S\SS4S j5       rSrg)ÚBuildEnvironmentéO   zACreates and manages an isolated environment to install build depsr   Nc                 ó   ^• [        [        R                  SS9m[        U4S jS 5       5      U l        / U l        / U l        [        [        U R                  R                  5       5      5       HM  nU R
                  R                  UR                  5        U R                  R                  UR                  5        MO     [        5       n[        R                   R#                  TR                   S5      U l        [        R                   R'                  U R$                  5      (       d   [        R(                  " U R$                  5        [+        [        R                   R#                  U R$                  S5      SSS	9 nUR-                  [.        R0                  " S
5      R3                  X R                  S95        S S S 5        g ! , (       d  f       g = f)NT)ÚkindÚglobally_managedc              3   óŽ   >#   • U  H:  nU[        [        R                  R                  TR                  U5      5      4v •  M<     g 7fr   )r%   rB   r'   Újoin)Ú.0ÚnameÚtemp_dirs     €r!   Ú	<genexpr>Ú,BuildEnvironment.__init__.<locals>.<genexpr>U   s5   øé € ð %
â-�ð ”7œ2Ÿ7™7Ÿ<™<¨¯©°tÓ<Ó=Õ>Ú-ùs   ƒAA)ÚnormalÚoverlayrI   zsitecustomize.pyÚwzutf-8)ÚencodingaŸ  
                import os, site, sys

                # First, drop system-sites related paths.
                original_sys_path = sys.path[:]
                known_paths = set()
                for path in {system_sites!r}:
                    site.addsitedir(path, known_paths=known_paths)
                system_paths = set(
                    os.path.normcase(path)
                    for path in sys.path[len(original_sys_path):]
                )
                original_sys_path = [
                    path for path in original_sys_path
                    if os.path.normcase(path) not in system_paths
                ]
                sys.path = original_sys_path

                # Second, add lib directories.
                # ensuring .pth file are processed.
                for path in {lib_dirs!r}:
                    assert not path in sys.path
                    site.addsitedir(path)
                )rK   r0   )r   r   Ú	BUILD_ENVr   Ú	_prefixesÚ	_bin_dirsÚ	_lib_dirsÚreversedÚlistÚvaluesÚappendr-   Úextendr0   rL   rB   r'   rT   Ú	_site_dirÚexistsÚmkdirÚopenÚwriteÚtextwrapÚdedentÚformat)r1   r*   rK   ÚfprW   s       @r!   r3   ÚBuildEnvironment.__init__R   s<  ø€ Ü ¤m×&=Ñ&=ÐPTÑUˆä$ô %
á-ó%
ó 
ˆŒð
 %'ˆŒØ$&ˆŒÜœt D§N¡N×$9Ñ$9Ó$;Ó<Ö=ˆFØ�N‰N×!Ñ! &§.¡.Ô1Ø�N‰N×!Ñ! &§/¡/Ö2ñ >ô 0Ó1ˆäŸ™Ÿ™ h§m¡m°VÓ<ˆŒÜ�w‰w�~‰~˜dŸn™n×-Ñ-Ü�HŠH�T—^‘^Ô$ÜÜ�G‰G�L‰L˜Ÿ™Ð);Ó<¸cÈGò
àØ�H‰HÜ—’ðó÷2 ‘& l¿^¹^�&ÐLô5÷
÷ 
ö 
ús   Å9=F?Æ?
Gc                 óö  • S Vs0 s H$  nU[         R                  R                  US 5      _M&     snU l        U R                  S S  nU R                  S   nU(       a.  UR                  UR                  [         R                  5      5        U R                  /n[         R                  R                  [         R                  R                  U5      S[         R                  R                  U5      S.5        g s  snf )N)ÚPATHÚPYTHONNOUSERSITEÚ
PYTHONPATHrr   Ú1)rB   ÚenvironÚgetÚ	_save_envr`   rf   ÚsplitÚpathseprg   ÚupdaterT   )r1   rV   r'   Úold_pathÚ
pythonpaths        r!   Ú	__enter__ÚBuildEnvironment.__enter__ˆ   s½   € ñ Có
âB�ð ”"—*‘*—.‘.  tÓ,Ò,ÙBñ
ˆŒð
 �~‰~™aÐ ˆØ—>‘> &Ñ)ˆÞØ�K‰K˜Ÿ™¤r§z¡zÓ2Ô3à—n‘nÐ%ˆ
ä
�
‰
×ÑäŸ
™
Ÿ™¨Ó-Ø$'Ü Ÿj™jŸo™o¨jÓ9ñõ	
ùò
s   …+C6Úexc_typeÚexc_valÚexc_tbc                 óº   • U R                   R                  5        H=  u  pEUc"  [        R                  R	                  US 5        M*  U[        R                  U'   M?     g r   )rx   ÚitemsrB   rv   Úpop)r1   r€   r�   r‚   ÚvarnameÚ	old_values         r!   Ú__exit__ÚBuildEnvironment.__exit__�   sD   € ð #'§.¡.×"6Ñ"6Ö"8ÑˆGØÑ Ü—
‘
—‘˜w¨Ö-à&/”—
‘
˜7Ó#ò	 #9r#   Úreqsc                 ó¾  • [        5       n[        5       nU(       Ga?  [        U S5      (       a  [        U R                  5      O	[	        5       nU GH  n[        U5      nUR                  b$  UR                  R                  SS05      (       d  M@  UR                  UR                  5      nU(       d  UR                  U5        Mu  [        UR                  [        5      (       a  UR                   SUR                   3nOUR                   SUR                   3nUR                  R                  UR                  SS9(       a  Mö  UR                  X…45        GM     X24$ )zvReturn 2 sets:
- conflicting requirements: set of (installed, wanted) reqs tuples
- missing requirements: set of reqs
ra   Úextrar)   z==z===T)Úprereleases)ÚsetrH   r   ra   r   r   ÚmarkerÚevaluateÚget_distributionrV   ÚaddÚ
isinstanceÚversionr   Ú	specifierÚcontains)	r1   rŠ   ÚmissingÚconflictingÚenvÚreq_strÚreqÚdistÚinstalled_req_strs	            r!   Úcheck_requirementsÚ#BuildEnvironment.check_requirements©   s  € ô “%ˆÜ“eˆßô ˜4 ×-Ñ-ô   §¡Ô/ä,Ó.ð ô
  �Ü% gÓ.�ð —:‘:Ñ)°#·*±*×2EÑ2EÀwÐPRÀm×2TÑ2TÙØ×+Ñ+¨C¯H©HÓ5�ÞØ—K‘K Ô(ÙÜ˜dŸl™l¬G×4Ñ4Ø+.¯8©8¨*°B°t·|±|°nÐ(EÑ%à+.¯8©8¨*°C¸¿¹°~Ð(FÐ%Ø—}‘}×-Ñ-¨d¯l©lÈÐ-×MÐMØ—O‘OÐ%6Ð$@×Añ  ð" Ð#Ð#r#   Úfinderr   ÚrequirementsÚprefix_as_stringrQ   c                óœ   • U R                   U   nUR                  (       a   eSUl        U(       d  g U R                  [        5       UUUUS9  g )NT)rQ   )r_   r+   Ú_install_requirementsrE   )r1   r    r¡   r¢   rQ   r*   s         r!   Úinstall_requirementsÚ%BuildEnvironment.install_requirementsË   sR   € ð —‘Ð 0Ñ1ˆØ—<—<ÐÐØˆŒÞØØ×"Ñ"ÜÓØØØØð 	#ò 	
r#   Úpip_runnabler*   c                ó€  • [         R                  U SSSSUR                  SSSSS	/n[        R	                  5       [
        R                  ::  a  UR                  S
5        O-[        R	                  5       [        ::  a  UR                  S5        S Ha  n[        UR                  U5      nUR                  SUR                  SS5      -   SR                  [        U=(       d    S15      5      45        Mc     UR                  nU(       a6  UR                  SUS   /5        USS   H  n	UR                  SU	/5        M     OUR                  S5        UR                    H  n
UR                  SU
/5        M     UR"                  (       a  UR                  SUR"                  /5        UR$                   H  nUR                  SU/5        M     UR&                  (       a  UR                  SUR&                  /5        UR(                  (       a  UR                  SUR(                  /5        UR*                  (       a  UR                  S5        UR,                  (       a  UR                  S5        UR                  S5        UR                  U5        [/        SU 35       n[1        USU 3US 9  S S S 5        g ! , (       d  f       g = f)!NÚinstallz--ignore-installedz	--no-userz--prefixz--no-warn-script-locationz--disable-pip-version-checkz--no-compilez--targetr)   z-vvz-v)Ú	no_binaryÚonly_binaryz--Ú_Ú-Ú,z:none:z-ir   é   z--extra-index-urlz
--no-indexz--find-linksz--proxyz--trusted-hostz--certz--client-certz--prez--prefer-binaryzInstalling zpip subprocess to install )Úcommand_descÚspinner)ÚsysÚ
executabler'   ÚloggerÚgetEffectiveLevelÚloggingÚDEBUGre   r   ÚgetattrÚformat_controlrf   ÚreplacerT   ÚsortedÚ
index_urlsÚ
find_linksÚproxyÚtrusted_hostsÚcustom_certÚclient_certÚallow_all_prereleasesÚprefer_binaryr   r   )r§   r    r¡   r*   rQ   Úargsr¹   Úformatsr¼   Úextra_indexÚlinkÚhostr±   s                r!   r¤   Ú&BuildEnvironment._install_requirementsà   sC  € ô �N‰NØØØ ØØØ�K‰KØ'Ø)ð ð Øð#
ˆô& ×#Ñ#Ó%¬¯©Ó6Ø�K‰K˜ÕÜ×%Ñ%Ó'¬7Ó2Ø�K‰K˜ÔÛ:ˆNÜ˜f×3Ñ3°^ÓDˆGØ�K‰Kà˜>×1Ñ1°#°sÓ;Ñ;Ø—H‘HœV G×$9°¨zÓ:Ó;ðöñ ;ð ×&Ñ&ˆ
ÞØ�K‰K˜˜z¨!™}Ð-Ô.Ø)¨!¨"›~�Ø—‘Ð0°+Ð>Ö?ò  .ð �K‰K˜Ô%Ø×%Ô%ˆDØ�K‰K˜¨Ð.Ö/ñ &ð �<�<Ø�K‰K˜ F§L¡LÐ1Ô2Ø×(Ô(ˆDØ�K‰KÐ)¨4Ð0Ö1ñ )à××Ø�K‰K˜ 6×#5Ñ#5Ð6Ô7Ø××Ø�K‰K˜¨&×*<Ñ*<Ð=Ô>Ø×'×'Ø�K‰K˜Ô Ø××Ø�K‰KÐ)Ô*Ø�‰�DÔØ�‰�LÔ!Ü˜K¨ vÐ.Ô/°7ÜØØ9¸$¸Ð@Øò÷ 0×/Ö/ús   ÊJ/Ê/
J=)r`   ra   r_   rx   rg   ©r   N)r5   r6   r7   r8   Ú__doc__r3   r~   r   r   ÚBaseExceptionr   rˆ   r   r9   r
   r	   rž   r¥   Ústaticmethodr%   r¤   r:   r    r#   r!   rN   rN   O   s  † ÙKô4ôl
ð*
0à˜4 Ñ.Ñ/ð
0ð ˜-Ñ(ð
0ð ˜Ñ'ð	
0ð
 
ô
0ð $Ø˜S‘Mð $à	ˆs�5˜˜c˜‘?Ñ# S¨¡XÐ-Ñ	.ô $ðD
àð
ð ˜s‘mð
ð ð	
ð ð
ð 
ô
ð* ðEØðEàðEð ˜s‘mðEð ð	Eð ðEð 
óEó óEr#   rN   c            
       óŒ   • \ rS rSrSrSS jrSS jrS\\\	      S\\	   S	\\
   SS4S
 jrSS jrSSS\\   S\S\SS4
S jrSrg)ÚNoOpBuildEnvironmenti)  z0A no-op drop-in replacement for BuildEnvironmentr   Nc                 ó   • g r   r    ©r1   s    r!   r3   ÚNoOpBuildEnvironment.__init__,  ó   € Ør#   c                 ó   • g r   r    rÑ   s    r!   r~   ÚNoOpBuildEnvironment.__enter__/  rÓ   r#   r€   r�   r‚   c                 ó   • g r   r    )r1   r€   r�   r‚   s       r!   rˆ   ÚNoOpBuildEnvironment.__exit__2  s   € ð 	r#   c                 ó   • g r   r    rÑ   s    r!   ÚcleanupÚNoOpBuildEnvironment.cleanup:  rÓ   r#   r    r   r¡   r¢   rQ   c                ó   • [        5       er   )ÚNotImplementedError)r1   r    r¡   r¢   rQ   s        r!   r¥   Ú)NoOpBuildEnvironment.install_requirements=  s   € ô "Ó#Ð#r#   r    rÊ   )r5   r6   r7   r8   rË   r3   r~   r   r   rÌ   r   rˆ   rÙ   r   r9   r¥   r:   r    r#   r!   rÏ   rÏ   )  sŒ   † Ù:ôôðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
ôôð$àð$ð ˜s‘mð$ð ð	$ð ð$ð 
÷$r#   rÏ   )7rË   r¶   rB   r<   rI   r²   rl   Úcollectionsr   Útypesr   Útypingr   r   r   r   r	   r
   r   r   Úpip._vendor.packaging.versionr   Úpipr   r>   Úpip._internal.cli.spinnersr   Úpip._internal.locationsr   r   r   Úpip._internal.metadatar   r   Úpip._internal.utils.loggingr   Úpip._internal.utils.packagingr   Úpip._internal.utils.subprocessr   Úpip._internal.utils.temp_dirr   r   Ú"pip._internal.index.package_finderr   Ú	getLoggerr5   r´   r9   r"   r%   rE   rL   rN   rÏ   r    r#   r!   Ú<module>rì      sÍ   ðÙ @ã Û 	Û Û Û 
Û Ý #Ý ß S× SÓ Så 1å (Ý 3ß HÑ Hß KÝ /Ý 9Ý :ß EæÝ@à	×	Ò	˜8Ó	$€ð&ˆcð &�cð &˜e E¨#¡J°°c¸3°h±Ð$?Ñ@ô &÷?ñ ?ð5˜#ô 5ð = # c¡(ô =÷(Wñ Wôt$Ð+õ $r#   