§
    �’jC4  ã                  ór  — d dl mZ d dlZd dlZd dlZd dl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 d d
lmZmZmZmZ d dlmZ d dlmZmZ d dlm Z  d dl!m"Z" d dl#m$Z$ er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.  ej/        e0¦  «        Z1 G d„ d¦  «        Z2 G d„ d¦  «        Z3dS )é    )ÚannotationsN)ÚIterableÚSequence)ÚAbstractContextManager)Únullcontext)ÚStringIO)ÚTYPE_CHECKING)ÚPrefix)Úopen_rich_spinnerÚopen_spinner)ÚBuildDependencyInstallErrorÚDiagnosticPipErrorÚInstallWheelBuildErrorÚPipError)Úget_environment)ÚVERBOSEÚcapture_logging)Úget_runnable_pip)Úcall_subprocess)ÚTempDirectory)Ú
WheelCache)ÚPackageFinder)ÚBuildTracker)ÚInstallRequirement)ÚBaseResolverc                  ó&   — e Zd ZdZ	 ddd	„Zdd„ZdS )Ú#SubprocessBuildEnvironmentInstallerzD
    Install build dependencies by calling pip in a subprocess.
    NÚfinderr   Úbuild_constraintsúlist[str] | NoneÚreturnÚNonec                ó&   — || _         |pg | _        d S ©N)r   Ú_build_constraints)Úselfr   r   s      úOC:\Projects\DSCons\.venv\Lib\site-packages\pip\_internal\build_env\installer.pyÚ__init__z,SubprocessBuildEnvironmentInstaller.__init__*   s   € ð
 ˆŒØ"3Ð"9°rˆÔÐÐó    ÚrequirementsúIterable[str]Úprefixr
   ÚkindÚstrÚfor_reqúInstallRequirement | Nonec          
     ó
  — | j         }t          ¦   «         dd|j        ddddddg
}|j        r|                     d	|j        ¦  «         n5|                     d	t
          j        ¦  «         |                     d
¦  «         t           	                    ¦   «         t          j        k    r|                     d¦  «         n7t           	                    ¦   «         t          k    r|                     d¦  «         dD ]h}t          |j        |¦  «        }|                     d|                     dd¦  «        z   d                     t%          |pdh¦  «        ¦  «        f¦  «         Œi|j        �M|j                             ¦   «         D ]3\  }	}
|                     d|	                     dd¦  «        z   |
f¦  «         Œ4|j        }|rB|                     d|d	         g¦  «         |dd …         D ]}|                     d|g¦  «         Œn|                     d¦  «         |j        D ]}|                     d|g¦  «         Œ|j        �|                     d|j        g¦  «         |j        r|                     d¦  «         |j        D ]}|                     d|g¦  «         Œ|j        r|                     d|j        g¦  «         |j        r|                     d|j        g¦  «         |j        r|                     d¦  «         |j        r/|                     dd                     |j        ¦  «        g¦  «         | j        D ]}|                     d|g¦  «         Œ|j        r.|                     d |j                              ¦   «         g¦  «         |                     d¦  «         |                     |¦  «         |r|j!        r
d!|j!        › �nd}tE          d"|› �¦  «        5 }tG          |d#|› |› �|d$d%i¬&¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )'NÚinstallz--prefixz	--no-userz--no-warn-script-locationz--disable-pip-version-checkz--no-compilez--targetÚ r   z--ignore-installedz-vvz-v)Ú	no_binaryÚonly_binaryz--Ú_ú-ú,z:none:z-ié   z--extra-index-urlz
--no-indexz--find-linksz--proxyz--no-proxy-envz--trusted-hostz--certz--client-certz--prefer-binaryz--refresh-packagez--build-constraintz--uploaded-prior-toz for úInstalling zinstalling Ú _PIP_IN_BUILD_IGNORE_CONSTRAINTSÚ1)Úcommand_descÚspinnerÚextra_environ)$r   r   ÚpathÚvenv_executableÚinsertÚsysÚ
executableÚappendÚloggerÚgetEffectiveLevelÚloggingÚDEBUGr   ÚgetattrÚformat_controlÚextendÚreplaceÚjoinÚsortedÚrelease_controlÚget_ordered_argsÚ
index_urlsÚ
find_linksÚproxyÚno_proxy_envÚtrusted_hostsÚcustom_certÚclient_certÚprefer_binaryÚrefresh_packager%   Úuploaded_prior_toÚ	isoformatÚnamer   r   )r&   r*   r,   r-   r/   r   ÚargsrK   ÚformatsÚ	attr_nameÚvaluerR   Úextra_indexÚlinkÚhostÚconstraint_fileÚidentify_requirementr>   s                     r'   r2   z+SubprocessBuildEnvironmentInstaller.install2   sÉ  € ð ”ˆåÑÔØð ØŒKØØ'Ø)ð ð Øð%
ˆð( Ô!ð 	.Ø�KŠK˜˜6Ô1Ñ2Ô2Ð2Ð2à�KŠK˜�3œ>Ñ*Ô*Ð*Ø�KŠKÐ,Ñ-Ô-Ð-å×#Ò#Ñ%Ô%­¬Ò6Ð6Ø�KŠK˜ÑÔÐÐÝ×%Ò%Ñ'Ô'­7Ò2Ð2Ø�KŠK˜ÑÔÐØ:ð 	ð 	ˆNÝ˜fÔ3°^ÑDÔDˆGØ�KŠKà˜>×1Ò1°#°sÑ;Ô;Ñ;Ø—H’H�V GÐ$9°¨zÑ:Ô:Ñ;Ô;ðñô ð ð ð Ô!Ð-ð %+Ô$:×$KÒ$KÑ$MÔ$Mð Ið IÑ �	˜5Ø—’˜T I×$5Ò$5°c¸3Ñ$?Ô$?Ñ?ÀÐGÑHÔHÐHÐHàÔ&ˆ
Øð 	&Ø�KŠK˜˜z¨!œ}Ð-Ñ.Ô.Ð.Ø)¨!¨"¨"œ~ð @ð @�Ø—’Ð0°+Ð>Ñ?Ô?Ð?Ð?ð@ð �KŠK˜Ñ%Ô%Ð%ØÔ%ð 	0ð 	0ˆDØ�KŠK˜¨Ð.Ñ/Ô/Ð/Ð/ð Œ<Ð#Ø�KŠK˜ F¤LÐ1Ñ2Ô2Ð2ØÔð 	*Ø�KŠKÐ(Ñ)Ô)Ð)ØÔ(ð 	2ð 	2ˆDØ�KŠKÐ)¨4Ð0Ñ1Ô1Ð1Ð1ØÔð 	8Ø�KŠK˜ 6Ô#5Ð6Ñ7Ô7Ð7ØÔð 	?Ø�KŠK˜¨&Ô*<Ð=Ñ>Ô>Ð>ØÔð 	+Ø�KŠKÐ)Ñ*Ô*Ð*ØÔ!ð 	QØ�KŠKÐ,¨c¯hªh°vÔ7MÑ.NÔ.NÐOÑPÔPÐPð  $Ô6ð 	Að 	AˆOØ�KŠKÐ-¨Ð?Ñ@Ô@Ð@Ð@àÔ#ð 	WØ�KŠKÐ.°Ô0H×0RÒ0RÑ0TÔ0TÐUÑVÔVÐVØ�Š�DÑÔÐØ�Š�LÑ!Ô!Ð!ð '.ÐF°'´,ÐFÐ"�G”LÐ"Ð"Ð"ÀBð 	õ Ð.¨Ð.Ð.Ñ/Ô/ð 	°7ÝØØG¨4ÐGÐ1EÐGÐGØØAÀ3ÐGð	ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÏO8Ï8O<Ï?O<r$   )r   r   r   r    r!   r"   ©
r*   r+   r,   r
   r-   r.   r/   r0   r!   r"   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r(   r2   © r)   r'   r   r   %   sV   € € € € € ðð ð /3ð:ð :ð :ð :ð :ðfð fð fð fð fð fr)   r   c                  ó:   — e Zd ZdZdddœdd„Zd d„Zd!d„Zd"d„ZdS )#Ú"InprocessBuildEnvironmentInstallera  
    Install build dependencies via the already running pip process.

    This contains a stripped down version of the install command with
    only the logic necessary for installing build dependencies. The
    finder, session, build tracker, and wheel cache are reused, but new
    instances of everything else are created as needed.

    Options are inherited from the parent install command unless
    they don't make sense for build dependencies (in which case, they
    are hard-coded, see comments below).
    rl   r   )r   Ú	verbosityr   r   Úbuild_trackerr   Úwheel_cacher   r   úSequence[InstallRequirement]ro   Úintr!   r"   c               ó   — ddl m} || _        || _        || _        d| _        t          dd¬¦  «        } |di d| “d|“d|j        j        “d	|j	        “d
|“d|“dd“dd “dd“dd“dd“dd“dd“dd“dd“dd“Ž| _
        d S )Nr   )ÚRequirementPreparerzbuild-env-installT)r-   Úglobally_managedÚbuild_isolation_installerr   ÚsessionÚ	build_dirrp   ro   Úsrc_dirr3   Údownload_dirÚbuild_isolationÚvirtualÚcheck_build_depsFÚprogress_barÚoffÚrequire_hashesÚuse_user_siteÚ
lazy_wheelÚlegacy_resolverÚallow_editablesrl   )Ú pip._internal.operations.prepareru   Ú_finderr%   Ú_wheel_cacheÚ_levelr   Ú_link_collectorrx   r@   Ú	_preparer)r&   r   rp   rq   r   ro   ru   ry   s           r'   r(   z+InprocessBuildEnvironmentInstaller.__init__­   s,  € ð 	IÐHÐHÐHÐHÐHàˆŒØ"3ˆÔØ'ˆÔØˆŒå!Ð':ÈTÐRÑRÔRˆ	Ø,Ð,ð 
ð 
ð 
Ø&* dð
ð �6ð
ð Ô*Ô2Ð2ð	
ð
  ”n�nð
ð (˜-ð
ð  �ið
ð �Bð
ð ˜ð
ð &˜Ið
ð #˜Uð
ð ˜ð
ð" !˜5ð#
ð$  ˜%ð%
ð& �uð'
ð( "˜Eð)
ð* !˜Dð+
ˆŒˆˆr)   r*   r+   r,   r
   r-   r.   r/   r0   c               ó´  — t                                t          ¦  «         o
| j        dk    }|r!t	          ¦   «         }t          d|› �¦  «        }nDt          t          ¦   «         ¦  «        t          ¦   «         }}t                                d|¦  «         	 | xj        dz  c_        |5  |5 }|  	                    ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   �nC# t          $ r�}	t                                t          j        |                     ¦   «         ¦  «        ¦  «         t                                d|	ddi¬	¦  «         t                                d
¦  «         t          |||	d¬¦  «        ‚d}	~	wt           $ rŸ}	t          j        |                     ¦   «         ¦  «                             ¦   «         }
|sMd}
t%          |	t&          ¦  «        rt                                d|	¦  «         nt                                d¦  «         t          |||	|
¬¦  «        ‚d}	~	ww xY w| xj        dz  c_        dS # | xj        dz  c_        w xY w)z@Install entrypoint. Manages output capturing and error handling.r   r:   zInstalling %s ...r9   Nz%sÚrichT)Úextrar3   )ÚcauseÚ	log_lineszpip crashed unexpectedly)rF   ÚisEnabledForr   r‰   r   r   r   r   ÚinfoÚ_install_implr   ÚtextwrapÚdedentÚgetvalueÚerrorr   Ú	ExceptionÚ
splitlinesÚ
isinstancer   Ú	exception)r&   r*   r,   r-   r/   Úcapture_logsÚcapture_ctxr>   ÚstreamÚexcÚlogss              r'   r2   z*InprocessBuildEnvironmentInstaller.installÖ   sÐ  € õ "×.Ò.­wÑ7Ô7Ð7ÐL¸D¼KÈ1Ò<LˆØð 	3õ 5DÑ4EÔ4EˆKÝ,=Ð>RÈDÐ>RÐ>RÑ,SÔ,SˆGˆGõ $/­x©z¬zÑ#:Ô#:½K¹M¼M˜ˆKÝ�KŠKÐ+¨TÑ2Ô2Ð2ð	ØˆKŒK˜1ÑˆKŒKØð 9ð 9˜+ð 9¨Ø×"Ò" <°Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ùøõ "ð 	ð 	ð 	õ �KŠK�œ¨¯ªÑ(9Ô(9Ñ:Ô:Ñ;Ô;Ð;Ý�LŠL˜˜s¨6°4¨.ˆLÑ9Ô9Ð9Ý�KŠK˜‰OŒOˆOÝ-Ø˜¨S¸Dðñ ô ð øøøøõ ð 	ð 	ð 	Ý%-¤_°V·_²_Ñ5FÔ5FÑ%GÔ%G×%RÒ%RÑ%TÔ%TˆDØð Að �Ý˜c¥8Ñ,Ô,ð AÝ—L’L  sÑ+Ô+Ð+Ð+å×$Ò$Ð%?Ñ@Ô@Ð@Ý-Ø˜¨S¸Dðñ ô ð øøøøð	øøøð ˆKŒK˜1ÑˆKŒKˆKˆKøˆDˆKŒK˜1ÑˆKŒKˆKˆKˆKˆKs€   ÂC0 Â&C#Â)CÃ C#ÃC	ÃC#ÃC	ÃC#ÃC0 Ã#C'Ã'C0 Ã*C'Ã+C0 Ã.I Ã0
H0Ã:B
FÆH0ÆBH+È+H0È0I ÉIc                óª  ‡— ddl m} ddlm} ddlmŠ ddlm} ˆfd„|D ¦   «         }|                     | j	        ¦  «         |  
                    ¦   «         }|                     |d¬¦  «        }| j                             |j                             ¦   «         ¦  «         d	„ |j        D ¦   «         }	 ||	| j        dd¬
¦  «        \  }
}|rt%          |¦  «        ‚ ||                     |¦  «        |j        dddddd|j        ¬¦	  «	        }t-          t/          |j        ¦  «        ¦  «        } |||¦  «        x}rt2                               |¦  «         dS dS )z$Core build dependency install logic.r   )Úinstalled_packages_summary)Úinstall_given_reqs)Úinstall_req_from_line)Úbuildc                ó*   •— g | ]} ‰|d ¬¦  «        ‘ŒS )T)Úuser_suppliedrl   )Ú.0Úreqr¤   s     €r'   ú
<listcomp>zDInprocessBuildEnvironmentInstaller._install_impl.<locals>.<listcomp>  s*   ø€ ÐXÐXÐXÀCÐ&Ð& s¸$Ð?Ñ?Ô?ÐXÐXÐXr)   T)Úcheck_supported_wheelsc                ó    — g | ]}|j         °	|‘ŒS rl   )Úis_wheel)r¨   Úrs     r'   rª   zDInprocessBuildEnvironmentInstaller._install_impl.<locals>.<listcomp>  s/   € ð 
ð 
ð 
ØÀ1Ä:ð
Øð
ð 
ð 
r)   )Úverifyr…   NFr€   )r,   ÚrootÚhomeÚwarn_script_locationr‚   Ú	pycompiler   Úscript_executable)Úpip._internal.commands.installr¢   Úpip._internal.reqr£   Úpip._internal.req.constructorsr¤   Úpip._internal.wheel_builderr¥   rL   r%   Ú_make_resolverÚresolver‹   Ú prepare_linked_requirements_morer*   ÚvaluesÚrequirements_to_installrˆ   r   Úget_installation_orderr@   rA   r   ÚlistÚlib_dirsrF   r’   )r&   r*   r,   r¢   r£   r¥   ÚireqsÚresolverÚresolved_setÚreqs_to_buildr6   Úbuild_failuresÚ	installedÚenvÚsummaryr¤   s                  @r'   r“   z0InprocessBuildEnvironmentInstaller._install_impl
  sÌ  ø€ àMÐMÐMÐMÐMÐMØ8Ð8Ð8Ð8Ð8Ð8ØHÐHÐHÐHÐHÐHØ5Ð5Ð5Ð5Ð5Ð5àXÐXÐXÐXÈ<ÐXÑXÔXˆØ�Š�TÔ,Ñ-Ô-Ð-à×&Ò&Ñ(Ô(ˆØ×'Ò'¨ÀdÐ'ÑKÔKˆØŒ×7Ò7ØÔ%×,Ò,Ñ.Ô.ñ	
ô 	
ð 	
ð
ð 
Ø#Ô;ð
ñ 
ô 
ˆð "˜EØ˜4Ô,°TÈ4ð
ñ 
ô 
Ñˆˆ>ð ð 	9Ý(¨Ñ8Ô8Ð8à&Ð&Ø×+Ò+¨LÑ9Ô9Ø”;àØØ!&Øð Øà$Ô4ð
ñ 
ô 
ˆ	õ  �d 6¤?Ñ3Ô3Ñ4Ô4ˆØ0Ð0°¸CÑ@Ô@Ð@ˆ7ð 	!Ý�KŠK˜Ñ Ô Ð Ð Ð ð	!ð 	!r)   r   c                óf   — ddl m} ddlm}  ||| j        | j        | j        dddddddd¬¦  «        S )	z'Create a new resolver for one time use.r   )Úinstall_req_from_req_string)ÚResolverFTzto-satisfy-onlyN)Úmake_install_reqÚpreparerr   rq   Úignore_requires_pythonr‚   Úignore_dependenciesÚonly_dependenciesÚignore_installedÚforce_reinstallÚupgrade_strategyÚpy_version_info)r·   rÊ   Ú,pip._internal.resolution.resolvelib.resolverrË   r‹   r‡   rˆ   )r&   rÊ   rË   s      r'   r¹   z1InprocessBuildEnvironmentInstaller._make_resolver7  sm   € ð 	OÐNÐNÐNÐNÐNØIÐIÐIÐIÐIÐIàˆxØ8à”^Ø”<ØÔ)à#(ØØ %Ø#Ø!Ø!Ø.Ø ð
ñ 
ô 
ð 	
r)   N)r   r   rp   r   rq   r   r   rr   ro   rs   r!   r"   rg   )r*   r+   r,   r
   r!   r"   )r!   r   )rh   ri   rj   rk   r(   r2   r“   r¹   rl   r)   r'   rn   rn   ›   sƒ   € € € € € ðð ð. ;=Øð'
ð '
ð '
ð '
ð '
ð '
ðR2ð 2ð 2ð 2ðh+!ð +!ð +!ð +!ðZ
ð 
ð 
ð 
ð 
ð 
r)   rn   )4Ú
__future__r   rH   rC   r”   Úcollections.abcr   r   Ú
contextlibr   ÚContextManagerr   Úior   Útypingr	   Úpip._internal.build_env.baser
   Úpip._internal.cli.spinnersr   r   Úpip._internal.exceptionsr   r   r   r   Úpip._internal.metadatar   Úpip._internal.utils.loggingr   r   Úpip._internal.utils.miscr   Úpip._internal.utils.subprocessr   Úpip._internal.utils.temp_dirr   Úpip._internal.cacher   Ú"pip._internal.index.package_finderr   Ú,pip._internal.operations.build.build_trackerr   Úpip._internal.req.req_installr   Úpip._internal.resolution.baser   Ú	getLoggerrh   rF   r   rn   rl   r)   r'   ú<module>rê      s=  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 
€
€
€
Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à /Ð /Ð /Ð /Ð /Ð /Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðð ð ð ð ð ð ð ð ð ð ð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø :Ð :Ð :Ð :Ð :Ð :Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6àð ;Ø.Ð.Ð.Ð.Ð.Ð.Ø@Ð@Ð@Ð@Ð@Ð@ØIÐIÐIÐIÐIÐIØ@Ð@Ð@Ð@Ð@Ð@Ø:Ð:Ð:Ð:Ð:Ð:ð 
ˆÔ	˜8Ñ	$Ô	$€ðsð sð sð sð sñ sô sð sðlr
ð r
ð r
ð r
ð r
ñ r
ô r
ð r
ð r
ð r
r)   