Ë
    »ÿæi—U  ã                  ó^  — d Z ddlmZ ddlZddlZddlZddlZddlZddl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 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 m!Z! ddl"m#Z#m$Z$m%Z%m&Z& ddl'm(Z(m)Z)m*Z* ddl+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9 er+ddl:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZC  G d„ ded¬«      ZD ejŠ                  eF«      ZGd.d„ZH G d „ d!«      ZId/d"„ZJd0d#„ZK G d$„ d%e«      ZL G d&„ d'«      ZM G d(„ d)«      ZN G d*„ d+«      ZO G d,„ d-eO«      ZPy)1z:Build Environment used for isolation during sdist buildingé    )ÚannotationsN)ÚOrderedDict)ÚIterableÚSequence)ÚAbstractContextManager)Únullcontext)ÚStringIO)ÚTracebackType)ÚTYPE_CHECKINGÚProtocolÚ	TypedDict)ÚVersion)Ú__file__)Úopen_rich_spinnerÚopen_spinner)ÚBuildDependencyInstallErrorÚDiagnosticPipErrorÚInstallWheelBuildErrorÚPipError)Úget_platlibÚget_purelibÚ
get_scheme)Úget_default_environmentÚget_environment)Ú
deprecated)ÚVERBOSEÚcapture_logging)Úget_requirement)Úcall_subprocess)ÚTempDirectoryÚtempdir_kinds)Ú
WheelCache)ÚPackageFinder)ÚBuildTracker)ÚInstallRequirement)ÚBaseResolverc                  ó   — e Zd ZU ded<   y)ÚExtraEnvironzdict[str, str]Úextra_environN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úl/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/pip/_internal/build_env.pyr(   r(   ,   s   … Ø%Ô%r/   r(   F)Útotalc                ó   — | |k7  r| |fS | fS ©Nr.   )ÚaÚbs     r0   Ú_dedupr6   3   s   € Ø˜!’VˆAˆqˆ6Ð% ! Ð%r/   c                  ó   — e Zd Zdd„Zy)Ú_Prefixc                ó¦   — || _         d| _        t        d|¬«      }|j                  | _        t        |j                  |j                  «      | _        y )NFÚ )Úprefix)	ÚpathÚsetupr   ÚscriptsÚbin_dirr6   ÚpurelibÚplatlibÚlib_dirs)Úselfr<   Úschemes      r0   Ú__init__z_Prefix.__init__8   s=   € ØˆŒ	ØˆŒ
Ü˜B tÔ,ˆØ—~‘~ˆŒÜ˜vŸ~™~¨v¯~©~Ó>ˆ�r/   N)r<   ÚstrÚreturnÚNone)r*   r+   r,   rE   r.   r/   r0   r8   r8   7   s   „ ô?r/   r8   c                 óÊ   — t        j                  t        «      j                  «       j                  } | j                  «       st        | «      S t        j                  | dz  «      S )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_dirrF   ÚosÚfsdecode)Úsources    r0   Úget_runnable_piprS   @   sK   € ô �\‰\œ,Ó'×/Ñ/Ó1×8Ñ8€Fà�=‰=Œ?ô �6‹{Ðä�;‰;�vÐ 3Ñ3Ó4Ð4r/   c                 óØ   — t        t        d«      rt        j                  «       } nt        «       t	        «       g} | D �ch c]!  }t
        j                  j                  |«      ’Œ# c}S c c}w )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ÚsiterU   r   r   rP   r<   Únormcase)Úsystem_sitesr<   s     r0   Ú_get_system_sitepackagesrZ   P   sT   € ô ŒtÐ&Ô'Ü×+Ñ+Ó-‰ô $›¤{£}Ð5ˆÙ/;Ó<©| tŒB�G‰G×Ñ˜TÕ"¨|Ñ<Ð<ùÒ<s   ¾&A'c                  ó,   — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚBuildEnvironmentInstallerz]
    Interface for installing build dependencies into an isolated build
    environment.
    c                ó   — y r3   r.   )rC   Úrequirementsr;   ÚkindÚfor_reqs        r0   Úinstallz!BuildEnvironmentInstaller.installj   s   € ð r/   N©
r^   úIterable[str]r;   r8   r_   rF   r`   úInstallRequirement | NonerG   rH   )r*   r+   r,   Ú__doc__ra   r.   r/   r0   r\   r\   d   s<   „ ñð
à#ðð ðð
 ðð +ðð 
ôr/   r\   c                  óP   — e Zd ZdZ	 	 d	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 	 	 d	d„Zy)
Ú#SubprocessBuildEnvironmentInstallerzD
    Install build dependencies by calling pip in a subprocess.
    Nc                ó6   — || _         |xs g | _        || _        y r3   )ÚfinderÚ_build_constraintsÚ!_build_constraint_feature_enabled)rC   ri   Úbuild_constraintsÚ build_constraint_feature_enableds       r0   rE   z,SubprocessBuildEnvironmentInstaller.__init__y   s    € ð ˆŒØ"3Ò"9°rˆÔØ1QˆÕ.r/   c                ó¸   — | j                   s| j                  ryt        j                  j	                  d«      }|r|j                  «       syt        dddd¬«       y)zÇ
        Check for deprecation warning: PIP_CONSTRAINT affecting build environments.

        This warns when build-constraint feature is NOT enabled and PIP_CONSTRAINT
        is not empty.
        NÚPIP_CONSTRAINTzGSetting PIP_CONSTRAINT will not affect build constraints in the future,zÍto specify build constraints using --build-constraint or PIP_BUILD_CONSTRAINT. To disable this warning without any build constraints set --use-feature=build-constraint or PIP_USE_FEATURE="build-constraint"z26.2)ÚreasonÚreplacementÚgone_inÚissue)rk   rj   rP   ÚenvironÚgetÚstripr   )rC   Úpip_constraints     r0   Ú_deprecation_constraint_checkzASubprocessBuildEnvironmentInstaller._deprecation_constraint_checkƒ   sV   € ð ×1Ò1°T×5LÒ5LØäŸ™Ÿ™Ð(8Ó9ˆÙ ^×%9Ñ%9Ô%;Øäð3ð5ð
 Øö	
r/   c               óŽ  — | j                  «        | j                  }t        j                  t	        «       dddd|j
                  ddddd	g}t        j                  «       t        j                  k  r|j                  d
«       n,t        j                  «       t        k  r|j                  d«       dD ][  }t        |j                  |«      }|j                  d|j                  dd«      z   dj!                  t#        |xs dh«      «      f«       Œ] |j$                  �H|j$                  j'                  «       D ]+  \  }	}
|j                  d|	j                  dd«      z   |
f«       Œ- |j(                  }|r4|j                  d|d   g«       |dd  D ]  }|j                  d|g«       Œ n|j                  d«       |j*                  D ]  }|j                  d|g«       Œ |j,                  r|j                  d|j,                  g«       |j.                  D ]  }|j                  d|g«       Œ |j0                  r|j                  d|j0                  g«       |j2                  r|j                  d|j2                  g«       |j4                  r|j                  d«       | j6                  r|j                  ddg«       | j8                  r7| j8                  D ](  }|j                  d|g«       |j                  d |g«       Œ* i }| j6                  r| j8                  sd!d"d#ii}|j:                  r+|j                  d$|j:                  j=                  «       g«       |j                  d«       |j                  |«       |r|j>                  rd%|j>                  › �nd	}tA        d&|› �«      5 }tC        |fd'|› |› �|d(œ|¤Ž d d d «       y # 1 sw Y   y xY w))Nra   z--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--prefer-binaryz--use-featurezbuild-constraintz--constraintz--build-constraintr)   Ú _PIP_IN_BUILD_IGNORE_CONSTRAINTSÚ1z--uploaded-prior-toz for úInstalling zinstalling )Úcommand_descÚspinner)"rx   ri   ÚsysÚ
executablerS   r<   ÚloggerÚgetEffectiveLevelÚloggingÚDEBUGÚappendr   ÚgetattrÚformat_controlÚextendÚreplaceÚjoinÚsortedÚrelease_controlÚget_ordered_argsÚ
index_urlsÚ
find_linksÚproxyÚtrusted_hostsÚcustom_certÚclient_certÚprefer_binaryrk   rj   Úuploaded_prior_toÚ	isoformatÚnamer   r   )rC   r^   r;   r_   r`   ri   Úargsr�   ÚformatsÚ	attr_nameÚvaluer”   Úextra_indexÚlinkÚhostÚconstraint_filer)   Úidentify_requirementr„   s                      r0   ra   z+SubprocessBuildEnvironmentInstaller.install    s~  € ð 	×*Ñ*Ô,à—‘ˆä�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Ö$MÑ �	˜5Ø—‘˜T I×$5Ñ$5°c¸3Ó$?Ñ?ÀÐGÕHð %Nð ×&Ñ&ˆ
ÙØ�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Ð)Ô*ð ×1Ò1Ø�K‰K˜Ð*<Ð=Ô>à×"Ò"ð $(×#:Ô#:�Ø—‘˜^¨_Ð=Ô>Ø—‘Ð1°?ÐCÕDð $;ð ')ˆØ×1Ò1¸$×:QÒ:Qð -Ð/QÐSVÐ.WÐXˆMà×#Ò#Ø�K‰KÐ.°×0HÑ0H×0RÑ0RÓ0TÐUÔVØ�‰�DÔØ�‰�LÔ!ñ '.°'·,²,ˆe�G—L‘L�>Ñ"ÀBð 	ô ˜K¨ vÐ.Ô/°7ÜØðà*¨4¨&Ð1EÐ0FÐGØñð  ò	÷ 0×/Ñ/ús   ÎN;Î;O)NF)ri   r#   rl   zlist[str] | Nonerm   ÚboolrG   rH   ©rG   rH   rb   )r*   r+   r,   re   rE   rx   ra   r.   r/   r0   rg   rg   t   s   „ ñð /3Ø16ð	RàðRð ,ðRð +/ð	Rð
 
óRó
ð:gà#ðgð ðgð
 ðgð +ðgð 
ôgr/   rg   c                  ób   — e Zd ZdZdddœ	 	 	 	 	 	 	 	 	 	 	 d
d„Z	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zy	)Ú"InprocessBuildEnvironmentInstallera  
    Build dependency installer that runs in the same 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).
    r.   r   )rl   Ú	verbosityc               óÖ   — ddl m} || _        || _        || _        d| _        t        dd¬«      } || ||j                  j                  |j                  ||dd ddddddd¬	«      | _
        y )
Nr   )ÚRequirementPreparerzbuild-env-installT©r_   Úglobally_managedr:   FÚoff)Úbuild_isolation_installerri   ÚsessionÚ	build_dirÚbuild_trackerr«   Úsrc_dirÚdownload_dirÚbuild_isolationÚcheck_build_depsÚprogress_barÚrequire_hashesÚuse_user_siteÚ
lazy_wheelÚlegacy_resolver)Ú pip._internal.operations.preparer­   Ú_finderrj   Ú_wheel_cacheÚ_levelr    Ú_link_collectorr²   r<   Ú	_preparer)rC   ri   r´   Úwheel_cacherl   r«   r­   r³   s           r0   rE   z+InprocessBuildEnvironmentInstaller.__init__  s~   € õ 	IàˆŒØ"3ˆÔØ'ˆÔØˆŒä!Ð':ÈTÔRˆ	Ù,Ø&*àØ×*Ñ*×2Ñ2Ø—n‘nØ'ØààØ Ø"Øð !ØØØ!ô)
ˆ�r/   c               ó"  — t         j                  t        «       xr | j                  dk(  }|rt	        «       }t        d|› �«      }n3t        t        «       «      t        «       }}t         j                  d|«       	 | xj                  dz  c_        |5  |5 }| j                  ||«       ddd«       ddd«       | xj                  dz  c_        y# 1 sw Y   Œ'xY w# 1 sw Y   Œ+xY w# t        $ ry}	t         j                  t        j                  j                  «       «      «       t         j                  d|	ddi¬	«       t         j                  d
«       t        |||	d¬«      ‚d}	~	wt         $ r…}	t        j                  j                  «       «      j#                  «       }
|s>d}
t%        |	t&        «      rt         j                  d|	«       nt         j)                  d«       t        |||	|
¬«      ‚d}	~	ww xY w# | xj                  dz  c_        w xY w)z@Install entrypoint. Manages output capturing and error handling.r   r‚   zInstalling %s ...r   Nz%sÚrichT)Úextrar:   )ÚcauseÚ	log_lineszpip crashed unexpectedly)r‡   ÚisEnabledForr   rÁ   r   r   r   r	   ÚinfoÚ_install_implr   ÚtextwrapÚdedentÚgetvalueÚerrorr   Ú	ExceptionÚ
splitlinesÚ
isinstancer   Ú	exception)rC   r^   r;   r_   r`   Úcapture_logsÚcapture_ctxr„   ÚstreamÚexcÚlogss              r0   ra   z*InprocessBuildEnvironmentInstaller.install@  sœ  € ô "×.Ñ.¬wÓ7Ð7ÒL¸D¿K¹KÈ1Ñ<LˆÙô 5DÓ4EˆKÜ,=ÀÈDÈ6Ð>RÓ,S‰Gô $/¬x«zÓ#:¼K»M˜ˆKÜ�K‰KÐ+¨TÔ2ð	Ø�KŠK˜1Ñ�KÚ™+¨Ø×"Ñ" <°Ô8÷ &—ð8 �KŠK˜1ÑŽK÷9 &˜+ú—�ûô "ò 	ô �K‰KœŸ™¨¯©Ó(9Ó:Ô;Ü�L‰L˜˜s¨6°4¨.ˆLÔ9Ü�K‰K˜ŒOÜ-Ø˜¨S¸Dôð ûô ò 	Ü%-§_¡_°V·_±_Ó5FÓ%G×%RÑ%RÓ%TˆDÙð �Ü˜c¤8Ô,Ü—L‘L  sÕ+ä×$Ñ$Ð%?Ô@Ü-Ø˜¨S¸Dôð ûð	ûð �KŠK˜1ÑŽKúsb   Á;C& ÂCÂCÂ(CÂ0C& ÃC	ÃCÃC#ÃC& Ã&	G4Ã/A4E#Å#G4Å/B G/Ç/G4Ç4G7 Ç7Hc           
     ó¾  — ddl m} ddlm} ddlm} ddlm} |D �cg c]  } ||d¬«      ‘Œ }}|j                  | j                  «       | j                  «       }	|	j                  |d¬«      }
| j                  j                  |
j                  j                  «       «       |
j                   D �cg c]  }|j"                  rŒ|‘Œ }} ||| j$                  d¬	«      \  }}|rt'        |«      ‚ ||	j)                  |
«      |j*                  d
d
dddd¬«      }t-        t/        |j0                  «      «      } |||«      x}rt2        j5                  |«       y
y
c c}w c c}w )z$Core build dependency install logic.r   )Úinstalled_packages_summary)Úinstall_given_reqs)Úinstall_req_from_line)ÚbuildT)Úuser_supplied)Úcheck_supported_wheels)ÚverifyNFr°   )r;   ÚrootÚhomeÚwarn_script_locationr»   Ú	pycompiler¹   )Úpip._internal.commands.installrÛ   Úpip._internal.reqrÜ   Úpip._internal.req.constructorsrÝ   Úpip._internal.wheel_builderrÞ   rŽ   rj   Ú_make_resolverrM   rÃ   Ú prepare_linked_requirements_morer^   ÚvaluesÚrequirements_to_installÚis_wheelrÀ   r   Úget_installation_orderr<   r   ÚlistrB   r‡   rË   )rC   r^   r;   rÛ   rÜ   rÝ   rÞ   ÚreqÚireqsÚresolverÚresolved_setÚrÚreqs_to_buildr|   Úbuild_failuresÚ	installedÚenvÚsummarys                     r0   rÌ   z0InprocessBuildEnvironmentInstaller._install_implt  sN  € åMÝ8ÝHÝ5áKWÓXÉ<ÀCÑ& s¸$Ö?È<ˆÐXØ�‰�T×,Ñ,Ô-à×&Ñ&Ó(ˆØ×'Ñ'¨ÀdÐ'ÓKˆØ�‰×7Ñ7Ø×%Ñ%×,Ñ,Ó.ô	
ð
 $×;Ò;ó
Ù;�!À1Ç:Ã:ŠAÐ;ð 	ð 
ñ " -°×1BÑ1BÈ4ÔPÑˆˆ>ÙÜ(¨Ó8Ð8á&Ø×+Ñ+¨LÓ9Ø—;‘;àØØ!&Øð Øô
ˆ	ô œd 6§?¡?Ó3Ó4ˆÙ0°¸CÓ@Ð@ˆ7Ð@Ü�K‰K˜Õ ð Aùò? Yùò
s   �EÂ/EÃEc                ó|   — ddl m} ddlm}  ||| j                  | j
                  | j                  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Úpreparerri   rÄ   Úignore_requires_pythonr»   Úignore_dependenciesÚignore_installedÚforce_reinstallÚupgrade_strategyÚpy_version_info)rè   rü   Ú,pip._internal.resolution.resolvelib.resolverrý   rÃ   r¿   rÀ   )rC   rü   rý   s      r0   rê   z1InprocessBuildEnvironmentInstaller._make_resolver�  sG   € õ 	OÝIáØ8à—^‘^Ø—<‘<Ø×)Ñ)à#(ØØ %Ø!Ø!Ø.Ø ô
ð 	
r/   N)ri   r#   r´   r$   rÄ   r"   rl   zSequence[InstallRequirement]r«   ÚintrG   rH   rb   )r^   rc   r;   r8   rG   rH   )rG   r&   )r*   r+   r,   re   rE   ra   rÌ   rê   r.   r/   r0   rª   rª   
  s’   „ ñð& ;=Øñ&
ð ð&
ð $ð	&
ð
  ð&
ð 8ð&
ð ð&
ð 
ó&
ðP2à#ð2ð ð2ð
 ð2ð +ð2ð 
ó2óh'!ôR
r/   rª   c                  óh   — e Zd ZdZd	d„Zd
d„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 dd„Zddœ	 	 	 	 	 	 	 	 	 dd„Zy)ÚBuildEnvironmentzACreates and manages an isolated environment to install build depsc                ó¤  ‡— || _         t        t        j                  d¬«      Št	        ˆfd„dD «       «      | _        g | _        g | _        t        t        | j
                  j                  «       «      «      D ]L  }| j                  j                  |j                  «       | j                  j                  |j                  «       ŒN t        «       }t         j"                  j%                  ‰j"                  d«      | _        t         j"                  j)                  | j&                  «      st!        j*                  | j&                  «       t-        t         j"                  j%                  | j&                  d«      dd¬	«      5 }|j/                  t1        j2                  d
«      j5                  || j                  ¬«      «       d d d «       y # 1 sw Y   y xY w)NTr®   c              3  óˆ   •K  — | ]9  }|t        t        j                  j                  ‰j                  |«      «      f–— Œ; y ­wr3   )r8   rP   r<   r�   )Ú.0r�   Útemp_dirs     €r0   Ú	<genexpr>z,BuildEnvironment.__init__.<locals>.<genexpr>¼  s6   øè ø€ ð %
á-�ð ”7œ2Ÿ7™7Ÿ<™<¨¯©°tÓ<Ó=Ô>Ù-ùs   ƒ?A)ÚnormalÚoverlayrW   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)
                )rY   rB   )Ú	installerr    r!   Ú	BUILD_ENVr   Ú	_prefixesÚ	_bin_dirsÚ	_lib_dirsÚreversedrð   rì   r‹   r?   rŽ   rB   rZ   rP   r<   r�   Ú	_site_dirÚexistsÚmkdirÚopenÚwriterÍ   rÎ   Úformat)rC   r  r;   rY   Úfpr  s        @r0   rE   zBuildEnvironment.__init__¸  sB  ø€ Ø"ˆŒÜ ¤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¸T¿^¹^�&ÓLô5÷
÷ 
ñ 
ús   Å=A GÇGc                óæ  — dD �ci c]#  }|t         j                  j                  |d «      “Œ% c}| _        | j                  d d  }| j                  d   }|r.|j                  |j                  t         j                  «      «       | j                  g}t         j                  j                  t         j                  j                  |«      dt         j                  j                  |«      dœ«       y c c}w )N)ÚPATHÚPYTHONNOUSERSITEÚ
PYTHONPATHr!  r�   )rP   rt   ru   Ú	_save_envr  rŽ   ÚsplitÚpathsepr  Úupdater�   )rC   r�   r<   Úold_pathÚ
pythonpaths        r0   Ú	__enter__zBuildEnvironment.__enter__ï  s½   € ñ Có
áB�ð ”"—*‘*—.‘.  tÓ,Ñ,ØBñ
ˆŒð
 �~‰~™aÐ ˆØ—>‘> &Ñ)ˆÙØ�K‰K˜Ÿ™¤r§z¡zÓ2Ô3à—n‘nÐ%ˆ
ä
�
‰
×ÑäŸ
™
Ÿ™¨Ó-Ø$'Ü Ÿj™jŸo™o¨jÓ9ñõ	
ùò
s   …(C.c                ó´   — | j                   j                  «       D ];  \  }}|€!t        j                  j	                  |d «       Œ)|t        j                  |<   Œ= y r3   )r$  ÚitemsrP   rt   Úpop)rC   Úexc_typeÚexc_valÚexc_tbÚvarnameÚ	old_values         r0   Ú__exit__zBuildEnvironment.__exit__  sF   € ð #'§.¡.×"6Ñ"6Ö"8ÑˆG�YØÐ Ü—
‘
—‘˜w¨Õ-à&/”—
‘
˜7Ò#ñ	 #9r/   c                ó|  — t        «       }t        «       }|�r"t        | d«      rt        | j                  «      n	t	        «       }|D ]ò  }t        |«      }|j                  �|j                  j                  ddi«      sŒ8|j                  |j                  «      }|s|j                  |«       Œgt        |j                  t        «      r|j                  › d|j                  › �}n|j                  › d|j                  › �}|j                  j                  |j                  d¬«      rŒà|j                  ||f«       Œô ||fS )zŽReturn 2 sets:
        - conflicting requirements: set of (installed, wanted) reqs tuples
        - missing requirements: set of reqs
        r  rÇ   r:   z==z===T)Úprereleases)ÚsetrV   r   r  r   r   ÚmarkerÚevaluateÚget_distributionr�   ÚaddrÓ   Úversionr   Ú	specifierÚcontains)	rC   ÚreqsÚmissingÚconflictingrù   Úreq_strrñ   ÚdistÚinstalled_req_strs	            r0   Úcheck_requirementsz#BuildEnvironment.check_requirements  s  € ô “%ˆÜ“eˆÚô ˜4 Ô-ô   §¡Ô/ä,Ó.ð ó
  �Ü% gÓ.�ð —:‘:Ð)°#·*±*×2EÑ2EÀwÐPRÀmÔ2TØØ×+Ñ+¨C¯H©HÓ5�ÙØ—K‘K Ô(ØÜ˜dŸl™l¬GÔ4Ø+.¯8©8¨*°B°t·|±|°nÐ(EÑ%à+.¯8©8¨*°C¸¿¹°~Ð(FÐ%Ø—}‘}×-Ñ-¨d¯l©lÈÐ-ÕMØ—O‘OÐ%6¸Ð$@ÕAð  ð" ˜GÐ#Ð#r/   N©r`   c               ó�   — | j                   |   }|j                  rJ ‚d|_        |sy | j                  j                  ||||¬«       y )NT)r_   r`   )r  r=   r  ra   )rC   r^   Úprefix_as_stringr_   r`   r;   s         r0   Úinstall_requirementsz%BuildEnvironment.install_requirements2  sH   € ð —‘Ð 0Ñ1ˆØ—<’<ÐÐØˆŒÙØØ�‰×Ñ˜|¨V¸$ÈÐÕPr/   )r  r\   rG   rH   r¨   ©r.  ztype[BaseException] | Noner/  zBaseException | Noner0  zTracebackType | NonerG   rH   )r>  rc   rG   z%tuple[set[tuple[str, str]], set[str]]©
r^   rc   rG  rF   r_   rF   r`   rd   rG   rH   )	r*   r+   r,   re   rE   r*  r3  rD  rH  r.   r/   r0   r	  r	  µ  s‘   „ ÙKó5ón
ð*
0à,ð
0ð &ð
0ð %ð	
0ð
 
ó
0ð $Ø!ð $à	.ó $ðP .2ñQà#ðQð ðQð
 ðQð +ðQð 
ôQr/   r	  c                  ó`   — e Zd ZdZd	d„Zd	d„Z	 	 	 	 	 	 	 	 d
d„Zd	d„Zddœ	 	 	 	 	 	 	 	 	 dd„Zy)ÚNoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentc                 ó   — y r3   r.   ©rC   s    r0   rE   zNoOpBuildEnvironment.__init__E  ó   € Ør/   c                 ó   — y r3   r.   rN  s    r0   r*  zNoOpBuildEnvironment.__enter__H  rO  r/   c                 ó   — y r3   r.   )rC   r.  r/  r0  s       r0   r3  zNoOpBuildEnvironment.__exit__K  s   € ð 	r/   c                 ó   — y r3   r.   rN  s    r0   ÚcleanupzNoOpBuildEnvironment.cleanupS  rO  r/   NrE  c               ó   — t        «       ‚r3   )ÚNotImplementedError)rC   r^   rG  r_   r`   s        r0   rH  z)NoOpBuildEnvironment.install_requirementsV  s   € ô "Ó#Ð#r/   r¨   rI  rJ  )	r*   r+   r,   re   rE   r*  r3  rS  rH  r.   r/   r0   rL  rL  B  sy   „ Ù:óóðà,ðð &ðð %ð	ð
 
óóð .2ñ$à#ð$ð ð$ð
 ð$ð +ð$ð 
ô$r/   rL  )r4   rF   r5   rF   rG   ztuple[str] | tuple[str, str])rG   rF   )rG   zset[str])Qre   Ú
__future__r   r‰   rP   rJ   rW   r…   rÍ   Úcollectionsr   Úcollections.abcr   r   Ú
contextlibr   ÚContextManagerr   Úior	   Útypesr
   Útypingr   r   r   Úpip._vendor.packaging.versionr   Úpipr   rL   Úpip._internal.cli.spinnersr   r   Úpip._internal.exceptionsr   r   r   r   Úpip._internal.locationsr   r   r   Úpip._internal.metadatar   r   Úpip._internal.utils.deprecationr   Úpip._internal.utils.loggingr   r   Úpip._internal.utils.packagingr   Úpip._internal.utils.subprocessr   Úpip._internal.utils.temp_dirr    r!   Úpip._internal.cacher"   Ú"pip._internal.index.package_finderr#   Ú,pip._internal.operations.build.build_trackerr$   Úpip._internal.req.req_installr%   Úpip._internal.resolution.baser&   r(   Ú	getLoggerr*   r‡   r6   r8   rS   rZ   r\   rg   rª   r	  rL  r.   r/   r0   Ú<module>ro     sò   ðÙ @å "ã Û 	Û Û Û 
Û Ý #ß .Ý ?Ý "Ý Ý ß 5Ñ 5å 1å (ß F÷ó ÷ IÑ Hß KÝ 6ß @Ý 9Ý :ß EáÝ.Ý@ÝIÝ@Ý:ô&�y¨õ &ð 
ˆ×	Ñ	˜8Ó	$€ó&÷?ñ ?ó5ó =ô( ô ÷ Sñ S÷lh
ñ h
÷VJQñ JQôZ$Ð+õ $r/   