+
    …WÝjd  ã                  ó  a € 0 t $ R t^ RIHt ^ RIt^ RIHtHtHt ^ RI	H
t
 ^ RIHtHt ^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHtH t  RRRRR8RRR/t!R]"R&   R9t#R:t$Rt%R;t&Rt'Rt(]#](3,           t) ! R R]4      t* ! R R]4      t+R R lt,R R lt-R R  lt.R! R" lt/R# R$ lt0R% R& lt1R<R' R( llt2R)RRRR*RR+R,R-R,R.RR/R0/R1 R2 llt3]
RR/R3 R4 ll4       t4]! R0R0R57       ! R6 R74      4       t5R# )=zèPM's private Python engine: tool routing, isolation and command execution.

Operations own source, destination and publication. Bootstrap may inject its
staged toolchain directly without recursing through the worker it is building.
)ÚannotationsN)ÚIteratorÚMappingÚSequence)Úcontextmanager)Ú	dataclassÚreplace)ÚPath)ÚTextIO)Únative)ÚInstallError)ÚLiveTailÚTextSinkÚverbose_outputÚsynczInstalling Python dependenciesÚlockzResolving Python dependencieszInstalling Python packagesÚcachezPruning the uv cachezdict[object, str]Ú
_UV_LABELSzhas no publish timezëthe package index did not report upload times, which locking Hermes's dependencies needs for its 3-day release-age check. Use https://pypi.org/simple or a mirror that serves upload times (pip.conf index-url / UV_INDEX_URL), then retry.zfailed to bytecode-compilec                  ó   € ] tR t^ItRtRtR# )ÚResolutionConflictz5uv's resolver proved the union has no valid solution.© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚBC:\Users\johnn\AppData\Local\hermes\hermes-agent\pm\environment.pyr   r   I   s   † Ý?r   r   c                  ó   € ] tR t^MtRtRtR# )ÚBuildFailurez)A package's build backend ran and failed.r   Nr   r   r   r   r!   r!   M   s   † Ý3r   r!   c               ó    € V ^8„  d   QhRRRR/# )é   Úresultúsubprocess.CompletedProcessÚreturnÚboolr   )Úformats   "r   Ú__annotate__r)   Q   s   € ÷ ,ñ ,Ð)Dð ,Èñ ,r   c                ó¶   € V P                   '       g   R# V P                  ;'       g    R RV P                  ;'       g    R 2P                  4       p\        V9   # )a[  True when uv failed in the optional bytecode-compile step, not the install.

``--compile-bytecode`` exists so the first user-facing import does not pay
compile cost (#100461). It is not required for a usable environment. Windows
real-time AV can lock uv's temporary compile script (os error 1224) after
the packages are already on disk (#124268).
FÚ Ú
)Ú
returncodeÚstderrÚstdoutÚlowerÚ_BYTECODE_COMPILE_MARKER)r$   Útexts   & r   Ú_is_bytecode_compile_failurer3   Q   sQ   € ð ××ÐÙØ�m‰m×!Ð!˜rÐ" " V§]¡]×%8Ð%8°bÐ$9Ð:×@Ñ@ÓB€DÜ# tÑ+Ð+r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   ÚstageÚstrr-   ÚintÚoutputr&   r   r   )r(   s   "r   r)   r)   _   s(   € ÷ 'ñ '˜sð '°ð '¸Sð 'À\ñ 'r   c                óŒ  a€ RV  RV RVP                  4       RR  2pVP                  4       o\        S9   gI   \        ;QJ d#    V3R l\         4       F  '       d   K   RM	  RM! V3R l\         4       4      '       d   \        RV\        4      # \        ;QJ d#    V3R	 l\         4       F  '       g   K   RM	  RM! V3R	 l\         4       4      '       d   \        RV4      # \        ;QJ d#    V3R
 l\         4       F  '       g   K   RM	  RM! V3R
 l\         4       4      '       d   \        RV4      # \        RV4      # )u÷   Turn a failed `uv <stage>` into the right classified error.

Resolver-conflict output â†’ ResolutionConflict; a build backend that ran and
failed â†’ BuildFailure; anything else (fetch, tooling) â†’ plain InstallError
with the tail of the output.
úuv z exited z: Nc              3  ó,   <"  € T F	  qS9   x € K  	  R # 5i©Nr   ©Ú.0ÚmarkerÚlowereds   & €r   Ú	<genexpr>Ú&classify_uv_failure.<locals>.<genexpr>h   s   øé € Ð%TÁm¸F°Ö&7Ãmùó   ƒFTÚvenvc              3  ó,   <"  € T F	  qS9   x € K  	  R # 5ir<   r   r=   s   & €r   rA   rB   j   s   øé € Ð
=Ñ+< �WÖÓ+<ùrC   c              3  ó,   <"  € T F	  qS9   x € K  	  R # 5ir<   r   r=   s   & €r   rA   rB   l   s   øé € Ð
:©> �WÖ«>ùrC   é¨ýÿÿ)Ústripr0   Ú_UNDATED_PINÚallÚ_UNDATED_FILEr   ÚUNDATED_INDEX_HINTÚanyÚ_RESOLVER_MARKERSr   Ú_BUILD_MARKERSr!   )r5   r-   r8   Úcauser@   s   &&& @r   Úclassify_uv_failurerQ   _   sÙ   ø€ ð �%�˜  ¨B¨v¯|©|«~¸d¸eÐ/DÐ.EÐF€EØ�l‰l‹n€GÜ�wÔ§#£#Ô%TÅmÓ%T§#§#¢#Ô%TÅmÓ%T×"TÒ"TÜ˜F EÔ+=Ó>Ð>ß
ƒsÔ
=Õ+<Ó
=‡s‡s‚sÔ
=Õ+<Ó
=×=Ò=Ü! &¨%Ó0Ð0ß
ƒsÔ
:­>Ó
:‡s‡s‚sÔ
:­>Ó
:×:Ò:Ü˜F EÓ*Ð*Ü˜ Ó&Ð&r   c               ó    € V ^8„  d   QhRRRR/# )r#   Úsourcer	   r&   r6   r   )r(   s   "r   r)   r)   q   s   € ÷ 2ñ 2˜$ð 2 3ñ 2r   c                óŒ  € V R,          P                  RR7      p ^ RIpTP                  T4      R
,          R,          #   \         d{    ^ RIpTP	                  RTR,           4      pT;'       d"    TP	                  RTP                  ^4      4      pT'       g   \        RT R,           R	24      hTP                  ^4      u # i ; i)a1  ``[project].name`` of *source*'s pyproject, on any Python that can run the bootstrap.

tomllib is 3.11+; the bootstrap runner stages PM's runtime from a system python that may
be older, so the one field this module reads is parsed with the stdlib parser when it
exists and a table-scoped regex otherwise.
zpyproject.tomlz	utf-8-sig©ÚencodingNz!(?ms)^\[project\]\s*$(.*?)(?=^\[)z
[z(?m)^name\s*=\s*"([^"]+)"rD   z has no [project].nameÚprojectÚname)Ú	read_textÚtomllibÚModuleNotFoundErrorÚreÚsearchÚgroupr   Úloads)rS   r2   rZ   r\   ÚtableÚmatchs   &     r   Ú_project_namerb   q   s·   € ð Ð%Õ%×0Ñ0¸+Ð0ÓF€DðÛð �=‰=˜Ó˜yÕ)¨&Õ1Ð1øô ô ÛØ—	‘	Ð>ÀÀuÅÓMˆØ×QÐQ˜"Ÿ)™)Ð$@À%Ç+Á+ÈaÃ.ÓQˆßÜ˜v¨&Ð3CÕ*CÐ)DÐDZÐ'[Ó\Ð\Ø�{‰{˜1‹~Òðús   ›> ¾0CÁ/)CÂ'CÃCc               ó    € V ^8„  d   QhRRRR/# )r#   Úvenv_dirr	   r&   ÚNoner   )r(   s   "r   r)   r)   …   s   € ÷ ñ ˜Tð  dñ r   c                óú  € V R,          P                  4       '       d   V R,          R,          .pM;V R,          pVP                  4       '       d   \        VP                  R4      4      M. pV Fx  pVP                  4       '       g   K  VP                  R4       FH  pVP                  R8X  g$   VP                  P	                  R4      '       g   K7   VP                  4        KJ  	  Kz  	  R	#   \         d     K`  i ; i)
u(  Drop .pth files that must never execute inside a shipped payload.

``uv sync`` leaves two behind: ``_virtualenv.pth`` (repoints
``sys.prefix`` at the venv) and the project's ``__editable__`` pointer
(names the BUILD machine â€” the payload wires the repo snapshot itself,
see scripts/build/launcher_wrapper.py). Bundled launchers process every
other .pth with ``site.addsitedir()``; pywin32.pth is load-bearing on
Windows (win32\lib on sys.path is what makes ``import pywintypes``
resolve, which portalocker/concurrent-log-handler need to write logs).
ÚScriptsÚLibzsite-packagesÚlibzpython*/site-packagesz*.pthz_virtualenv.pthÚ__editable__N)Úis_dirÚsortedÚglobrX   Ú
startswithÚunlinkÚOSError)rd   Úsitesri   Úsite_dirÚpths   &    r   Úprune_site_pthrt   …   sÄ   € ð 	�9Õ×$Ñ$×&Ò&Ø˜EÕ! OÕ3Ð4‰à˜ÕˆØ=@¿Z¹Z¿\º\”�s—x‘xÐ 7Ó8Ô9ÈrˆÛˆØ�‰× Ò ÙØ—=‘= Ö)ˆCØ�x‰xÐ,Ô,°·±×0CÑ0CÀN×0SÔ0SðØ—J‘J–Ló *ó øô ô Úðús   ÃC+Ã+C:Ã9C:c               ó    € V ^8„  d   QhRRRR/# )r#   Úfdr7   r&   Úbytesr   )r(   s   "r   r)   r)       s   € ÷ ñ �3ð ˜5ñ r   c                ó
  € R p\         P                  R8X  dF   ^ RIp^ RIp VP	                  VP                  V 4      ^ 4      w  rET'       g   \        h\        Y4      p\        P                  ! W4      #   \         d     R# i ; i)i   Úwin32Nr   )ÚsysÚplatformÚ_winapiÚmsvcrtÚPeekNamedPipeÚget_osfhandleÚBrokenPipeErrorÚBlockingIOErrorÚminÚosÚread)rv   Úsizer|   r}   Ú	availableÚ_s   &     r   Ú
_read_piperˆ       su   € Ø€DÜ
‡|�|�wÔÛÛð	Ø"×0Ñ0°×1EÑ1EÀbÓ1IÈ1ÓM‰LˆI÷ Ü!Ð!Ü�4Ó#ˆÜ�7Š7�2ÓÐøô ô 	Úð	ús   ¡#A3 Á3BÂBc               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r#   Úcommandú	list[str]Úcwdr	   Úenvúdict[str, str]Útimeoutr7   r8   r   r&   r%   r   )r(   s   "r   r)   r)   ²   sA   € ÷ 4@ñ 4@˜Ið 4@¨tð 4@¸.ð 4@Øð4@Ø)1ð4@Ø6Qñ4@r   c               ó†  a€ \         P                  ! 4       V,           p\        P                  ! V \	        V4      V\        P
                  \        P                  RRR^ R7	      pVP                  p\        V\        P                  4      '       g   Q hRpRp	 \        P                  R8w  d&   \        P                  ! VP                  4       R4       \        P                   ! \"        P$                  ! VP&                  4      ! RR7      RR	7      p
 V\         P                  ! 4       ,
          pV^ 8:  d   \        P(                  ! WVR
7      h \+        VP                  4       4      pT
P3                  YÌ'       * R7      pT'       de   T	'       g1   Y�,           P5                  4       o\7        T3R l\8         4       R4      p	Y�,           RR pTP;                  T4       TP=                  4        T'       d   Kã    TP?                  \A        ^ T\         P                  ! 4       ,
          4      R7      p TPG                  4        T	'       d@   Y˜P5                  4       9  d,   T	R,           TR\I        T	4      ,
          ^,
          ) R ,           p\        PJ                  ! YRT4      #   \,         d&    \         P.                  ! \1        RT4      4        EKº  i ; i  \        P(                   d    \        P(                  ! YTR
7      Rhi ; i  \B         d%    TPE                  4        TP?                  ^R7       h i ; i  TPG                  4        i ; i)zKKeep CI progress live, a bounded diagnostic tail, and a wall-clock timeout.Túutf-8r   )rŒ   r�   r/   r.   r2   rV   ÚerrorsÚbufsizer+   ry   F)r’   )Ú	translate)r.   gš™™™™™©?)Úfinalc              3  ó8   <"  € T F  qS9   g   K  Vx € K  	  R # 5ir<   r   r=   s   & €r   rA   Ú!_run_streaming.<locals>.<genexpr>Ó   s   øé € Ð$dÑ:N°Ð\cÑRc§V¢VÓ:Nùs   ƒ�
iÐ  N©r�   r,   i0øÿÿ)&ÚtimeÚ	monotonicÚ
subprocessÚPopenr   ÚPIPEÚSTDOUTr/   Ú
isinstanceÚioÚTextIOWrapperrz   r{   rƒ   Úset_blockingÚfilenoÚIncrementalNewlineDecoderÚcodecsÚgetincrementaldecoderrV   ÚTimeoutExpiredrˆ   r�   Úsleepr‚   Údecoder0   ÚnextÚ_STREAM_TAIL_MARKERSÚwriteÚflushÚwaitÚmaxÚBaseExceptionÚkillÚcloseÚlenÚCompletedProcess)rŠ   rŒ   r�   r�   r8   ÚdeadlineÚprocÚpipeÚtailÚconflictÚdecoderÚ	remainingÚdatar2   Úcoder@   s   &$$$$          @r   Ú_run_streamingr¾   ²   s~  ø€ ô �~Š~Ó 'Õ)€HÜ×Ò˜G¬°«¸#ÄjÇoÁoÜ#-×#4Ñ#4¸4È'ÐZcÐmnôp€Dà�;‰;€DÜ�dœB×,Ñ,×-Ò-Ð-Ð-Ø€DØ€Hð'ô �<‰<˜7Ô"Ü�OŠO˜DŸK™K›M¨5Ô1Ü×.Ò.Ü×(Ò(¨¯©Ô7¸yÔIÐUYô
ˆð Ø ¤4§>¢>Ó#3Õ3ˆIØ˜AŒ~Ü ×/Ò/°ÈÔNÐNðÜ! $§+¡+£-Ó0�ð —>‘> $¬h�>Ó7ˆDß÷  Ø#�{×1Ñ1Ó3�GÜ#Ô$dÕ:NÓ$dÐfhÓi�HØ� U VÐ,�Ø—‘˜TÔ"Ø—‘”ß‘4Øð	UØ—9‘9¤S¨¨H´t·~²~Ó7GÕ,GÓ%H�9ÓI‰Dð 	�
‰
Œß�H§J¡J£LÔ0Ø˜$� ¨¬s°8«}Õ(<¸qÕ(@Ð&AÐ&BÐ!CÕCˆÜ×&Ò& w°b¸$Ó?Ð?øô9 #ô Ü—
’
œ3˜s IÓ.Ô/Ûðûô$ ×(Ñ(ô 	UÜ×+Ò+¨GÀTÔJÐPTÐTð	Uûäô Ø�	‰	ŒØ�	‰	˜!ˆ	ÔØðûð
 	�
‰
�ús\   ÂB3K< Å	J Å"&K< Æ	A!K< Ç/K< Ç16K
 Ê+KËK< ËKËK< Ë
/K9Ë9K< Ë</L+Ì+L. Ì.M c               ó    € V ^8„  d   QhRRRR/# )r#   r�   úMapping[str, str] | Noner&   rŽ   r   )r(   s   "r   r)   r)   é   s   € ÷ ñ Ð3ð ¸~ñ r   c                óx  € ^ RI HpHp V f   \        P                  MT pVP                  4        UUu/ uFP  w  rEVP                  R4      '       d   K  VR8w  g   K'  VP                  R4      '       d   V! V4      '       g   KN  WEbKR  	  pppV f&   VP                  V! \        P                  4      4       V# u uppi )zÎAmbient UV settings never select the project, interpreter or cache.

Index and transport settings are the exception (pm.index_config): without
them mirrored and air-gapped networks cannot resolve anything.
)Úbridged_index_settingsÚis_forwardedÚPYTHONÚVIRTUAL_ENVÚUV_)Úpm.index_configrÂ   rÃ   rƒ   ÚenvironÚitemsrn   Úupdate)r�   rÂ   rÃ   rS   ÚkeyÚvalueÚbases   &      r   Ú_base_environmentrÎ   é   sœ   € ÷ Eàš;ŒR�ZŠZ¨C€FØ)/¯©¬ô B©™:˜3Ø—>‘> (×+ô Ø03°}Ñ0Dô à—^‘^ E×*Ò*©l¸3×.?ô ˆCŠJ©€Dñ Bð ‚{Ø�‰Ñ*¬2¯:©:Ó6Ô7Ø€KùóBs   ²B6ÁB6ÁB6Á2B6ÂB6Úpythonr�   ÚofflineFÚexplicitr8   ÚrealizeTc               ó<   € V ^8„  d   QhRRRRRRRRRR	R
R	RRRR	RR/	# )r#   Údestinationr	   rÏ   úPath | Noner   r�   rÀ   rÐ   r'   rÑ   r8   úTextIO | NonerÒ   r&   ÚPythonEnvironmentr   )r(   s   "r   r)   r)   ú   s\   € ÷ ñ  Tð °kð Ø*ðØ8Pðà!%ðà9=ðð !.ðð @Dðð Pañr   c          
     ó˜  € ^ RI Hp ^ RIHp	 V! WWR7      p
V
f   \	        RR4      hV
w  r¼Vf   TMVP                  4       p\        V4      p\        P                  R8X  d6   VP                  4       VP                  4       8X  d   VP                  RR4       \        Y±V P                  4       Vf   V	! 4       MVP                  4       WÔVR	7      # )
é    )Ú
_toolchain)Úuv_cache_dir)rÑ   rÒ   rD   z$PM's pinned toolchain is unavailableÚdarwinÚARz/usr/bin/ar)ÚuvrÏ   rÔ   r   r�   rÐ   r8   )Úpm._uvrÚ   Úpm.packagesrÛ   r   ÚabsoluterÎ   rz   r{   ÚresolveÚ
setdefaultr×   )rÔ   rÏ   r   r�   rÐ   rÑ   r8   rÒ   rÚ   rÛ   ÚtoolsrÞ   Úpinned_pythonÚ	build_envs   &$$$$$$$      r   Úmanaged_environmentrç   ú   sµ   € õ "Ý(á Ô:€EØ‚}Ü˜6Ð#IÓJÐJØÑ€BØ$šn‰]°&·/±/Ó2C€FÜ! #Ó&€IÜ
‡|�|�xÔ F§N¡NÓ$4¸×8MÑ8MÓ8OÔ$Oð 	×Ñ˜T =Ô1ÜØØ×(Ñ(Ó*ÀEÂM±,´.ÐW\×WeÑWeÓWgØ¨vôð r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   Úenvironmentr×   Úsealedr'   r   rÕ   r&   zIterator[None]r   )r(   s   "r   r)   r)     s*   € ÷ ñ Ð/ð ¸Dð Èð Ð_mñ r   c             #  ó  "  € V P                   pVP                  RR7        V P                  4        Rx € V P                  V4       V'       d   \	        V4       R# R#   \
         d    \        P                  ! TRR7       h i ; i5i)zGOwn only the output claimed by this build, including failed validation.T)ÚparentsN)Úignore_errors)rÔ   ÚmkdirÚcreateÚcheckrt   r°   ÚshutilÚrmtree)ré   rê   r   Úouts   &$$ r   Ú_fresh_buildrô     sq   é € ð ×
!Ñ
!€Cà‡I�I�d€IÔðØ×ÑÔÛØ×Ñ˜$ÔßÜ˜3Öñ øäô Ü�Š�c¨Õ.Øðüs   ‚B¢8A ÁBÁ%BÂB)ÚfrozenÚkw_onlyc                  óz  € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R&   R	tR
]R&   RtR]R&   R	tR
]R&   ]R R l4       t	R R lt
R R ltRR	RR/R R lltR R ltRR6RR6RRRR R!R	R"R	R#R	R$R	/R% R& lltRR6RR/R' R( lltR)RR*R/R+ R, lltR)RR*RRR/R- R. lltRR/R/ R0 lltR1R	/R2 R3 lltR7R4 R5 lltR6tR# )8r×   i#  r	   rÞ   rÏ   rÔ   r   zMapping[str, str]r�   Fr'   rÐ   NrÖ   r8   Ú	no_configc               ó   € V ^8„  d   QhRR/# )r#   r&   r	   r   )r(   s   "r   r)   ÚPythonEnvironment.__annotate__/  s   € ÷ -ñ -˜Dñ -r   c                	ó2   € ^ RI Hp V! V P                  4      # )rÙ   )Úvenv_python)Úpm.environmentsrü   rÔ   )Úselfrü   s   & r   Ú
executableÚPythonEnvironment.executable.  s   € å/á˜4×+Ñ+Ó,Ð,r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   Úargsr‹   rŒ   r	   r�   r7   r&   r%   r   )r(   s   "r   r)   rú   4  s/   € ÷ <nñ <n˜ð <n¨Dð <n¸3ð <nÐC^ñ <nr   c               	óT  € \        V P                  4      pV P                  '       d:   ^ RIHp VP                  4        UUu/ uF  w  rgV! V4      '       d   K  WgbK  	  pppVP                  \        V P                  4      \        V P                  4      \        V P                  4      RR7       \        P                  ! RR7      ;_uu_ 4       pVP                  WˆR7       \        V P                  4      .\        \        V4      Op	V P                  '       d   RV	9  d   V	P                  R4       V P                   '       d   V	P                  R4        V P"                  eV   \%        4       '       dF   V	P                  R
4       VP'                  RR4       \)        W’WCV P"                  R7      uuR	R	R	4       # V P"                  e¹   \+        \,        P/                  \1        VR,          4      \,        P/                  V^ ,          4      4      V P"                  RR7      p
 \)        W’WCV
R7      pRT9   d#   \7        T4      '       d   T
P9                  4        MT
P5                  TP:                  ^ 8H  4       TuuR	R	R	4       # \<        P>                  ! V	\        V4      VRRRRVRR7	      uuR	R	R	4       # u uppi   \2         d    T
P5                  R4       h i ; i  \<        P@                   d(   p^ RIH!p \E        RRT^ ,           RT R2T4      ThR	p?ii ; i  + '       g   i     R	# ; i)rÙ   )Úis_index_redirectÚnever)Ú	UV_PYTHONÚUV_PROJECT_ENVIRONMENTÚUV_CACHE_DIRÚUV_PYTHON_DOWNLOADSzpm-uv-config-©Úprefix)ÚXDG_CONFIG_HOMEÚXDG_CONFIG_DIRSú--no-configz	--offlineNz	--verboseÚRUST_LOGzuv_build_frontend=debug)rŒ   r�   r�   r8   :Nr#   Nz  )ÚindentFú--compile-bytecodeTr‘   r   )rŒ   r�   Úcapture_outputr2   rV   r’   r�   rð   )ÚTIMEOUT_HINTrD   r:   z timed out after Ús)#rÎ   r�   rø   rÇ   r  rÉ   rÊ   r   rÏ   rÔ   r   ÚtempfileÚTemporaryDirectoryrÞ   ÚmapÚappendrÐ   r8   r   rã   r¾   r   r   ÚgetÚtupler°   r²   r3   Údiscardr-   r›   Úrunr§   r  r   )rþ   r  rŒ   r�   r�   r  rË   rÌ   ÚconfigrŠ   r¸   r$   Úexcr  s   &&$$          r   Ú_runÚPythonEnvironment._run4  s�  € ô   §¡Ó)ˆØ�>�>ˆ>õ :à03·	±	´ÔZ±¡* #ÑCTÐUX×CY”:�3’:±ˆCÑZð 	�
‰
œV D§K¡KÓ0ÌÐPT×P`ÑP`ÓIaÜ & t§z¡zÓ 2Èð 	ô 	Qä×(Ò(°×@Õ@ÀFØ�J‰J vˆJÔFÜ˜dŸg™g“Ð;¬¬V°TÓ):Ð;ˆGØ�~�~ˆ~ -°wÔ">Ø—‘˜}Ô-Ø�|�|ˆ|Ø—‘˜{Ô+ð!nØ—;‘;Ò*¬~×/?Ò/?ð
 —N‘N ;Ô/Ø—N‘N :Ð/HÔIÜ)¨'ÀÐ]a×]hÑ]hÔi÷ AÒ@ð  —;‘;Ò*ô $¤J§N¡N´5¸¸b½³?ÄJÇNÁNÐSWÐXYÕSZÓD[Ó$\Ø$(§K¡K¸ô>�DðÜ!/°ÀcÐcgÔ!h˜ð ,¨tÔ3Ô8TÐU[×8\Ò8\ð Ÿ™�àŸ
™
 6×#4Ñ#4¸Ñ#9Ô:Ø!÷A AÒ@ôB "—~’~ g´6¸#³;ÀCÐX\Ø+/¸'È)Ð]dÐlqôs÷C AÒ@ùó [øô8 )ô ØŸ
™
 5Ô)Øðûô ×,Ñ,ô nÝ8ô # 6¨S°°aµ°	Ð9JÈ7È)ÐSTÐ+UÐWcÓdÐjmÐmûðnú÷G A×@Ð@úsd   ÁJ0ÁJ0ÃA4LÅLÅAKÆ8A$KÈJ6È+AKÉ>'KÊ6KËKËLË,"LÌLÌLÌL'	c               ó   € V ^8„  d   QhRR/# )r#   r&   re   r   )r(   s   "r   r)   rú   r  s   € ÷ 	Rñ 	R˜ñ 	Rr   c                óZ  € V P                   P                  P                  RRR7       V P                  RRRRR\	        V P
                  4      \	        V P                   4      .V P                   P                  ^xR7      pVP                  '       d   \        RR	VP                  RR
  24      hR
# )zCCreate at the final destination; callers must not move a live venv.T)rì   Úexist_okrD   z--relocatablez--no-projectr  ú--python©rŒ   r�   zuv venv failed: NrG   )	rÔ   Úparentrî   r  r6   rÏ   r-   r   r.   )rþ   r$   s   & r   rï   ÚPythonEnvironment.creater  s£   € à×Ñ×Ñ×%Ñ%¨d¸TÐ%ÔBØ—‘Ø�_ n°mØœ˜TŸ[™[Ó)¬3¨t×/?Ñ/?Ó+@ðBà× Ñ ×'Ñ'°ð ó 
ˆð
 ××ÐÜ˜vÐ)9¸&¿-¹-ÈÈÐ:NÐ9OÐ'PÓQÐQñ r   Úupgrader�   é  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   rS   r	   r(  r'   r�   r7   r&   re   r   )r(   s   "r   r)   rú   }  s/   € ÷ añ a˜4ð a¨Tð aÀCð aÐSWñ ar   c               	ó  € R R\        V P                  4      .pV'       d   VP                  R4       V P                  WAVR7      pVP                  '       d6   \        R VP                  VP                  ;'       g    VP                  4      hR# )r   r$  z	--upgrader%  N)r6   rÏ   r  r  r-   rQ   r.   r/   )rþ   rS   r(  r�   rŠ   r$   s   &&$$  r   r   ÚPythonEnvironment.lock}  sq   € Ø˜:¤s¨4¯;©;Ó'7Ð8ˆßØ�N‰N˜;Ô'Ø—‘˜7¸�Ó@ˆØ××ÐÜ% f¨f×.?Ñ.?ÀÇÁ×A_ÐA_ÐRX×R_ÑR_Ó`Ð`ñ r   c               ó    € V ^8„  d   QhRRRR/# )r#   rS   r	   r&   re   r   )r(   s   "r   r)   rú   …  s   € ÷ añ a ð a¨$ñ ar   c                	óê   € V P                  R RR\        V P                  4      .VRR7      pVP                  '       d6   \	        R VP                  VP
                  ;'       g    VP                  4      hR# )r   z--checkr$  r)  r%  N)r  r6   rÏ   r-   rQ   r.   r/   )rþ   rS   r$   s   && r   Ú
check_lockÚPythonEnvironment.check_lock…  sg   € Ø—‘˜F I¨z¼3¸t¿{¹{Ó;KÐLØ%¨tð ó 5ˆà××ÐÜ% f¨f×.?Ñ.?ÀÇÁ×A_ÐA_ÐRX×R_ÑR_Ó`Ð`ñ r   ÚextrasÚgroupsrõ   TÚ
all_extrasÚno_install_projectÚlockedÚno_default_groupsc               ó@   € V ^8„  d   QhRRRRRRRRRR	R
R	RR	RR	RR	RR/
# )r#   rS   r	   r1  úSequence[str]r2  r�   r7   rõ   r'   r3  r4  r5  r6  r&   re   r   )r(   s   "r   r)   rú   ‹  si   € ÷ .añ .a˜4ð .a¨Mð .aÈð .aØð.aØ*.ð.aØCGð.aà!%ð.aà7;ð.að !%ð.að 26ñ.ar   c               ó„  € V'       g   V P                  WR7       RV'       d   RMRRR\        V P                  4      R.p
V	'       d   V
P                  R4       V'       d2   ^ R	IHp V
P                  R
4       V! V4       F  pV
RV.,          p
K  	  V'       d   V
RR\        V4      .,          p
\        \        V4      4       F  pV
RV.,          p
K  	  \        \        V4      4       F  pV
RV.,          p
K  	  V P                  W¡VR7      p\        V4      '       dV   V P                  e   V P                  P                  R4       V
 Uu. uF  qÿR8w  g   K  VNK  	  ppV P                  VWR7      pVP                  '       d6   \        RVP                  VP                  ;'       g    VP                   4      hR# u upi )zÖInstall the root and every member; resolve only in a writable workspace.

``frozen=False`` is reserved for the caller-owned generated workspace,
never the original project's lock. Seed/replay policy belongs to PM.
r˜   r   z--lockedú--frozenz--all-packagesr$  r  ú--no-default-groups)Úopt_in_extrasz--all-extrasz
--no-extraz--no-install-projectz--no-install-packageú--extraz--groupr%  Nz`Bytecode compile failed; retrying the install without it. Modules will compile on first import.
)r   r6   rÏ   r  Úpm.featuresr<  rb   rl   Úsetr  r3   r8   r¬   r-   rQ   r.   r/   )rþ   rS   r1  r2  r�   rõ   r3  r4  r5  r6  rŠ   r<  Úextrar^   r$   ÚargÚfallbacks   &&$$$$$$$$       r   r   ÚPythonEnvironment.sync‹  s�  € ÷ Ø�I‰I�fˆIÔ.ð ¯™:°ZÐAQØœs 4§;¡;Ó/Ð1EðGˆçØ�N‰NÐ0Ô1ßÝ1à�N‰N˜>Ô*Ù& vÖ.�Ø˜L¨%Ð0Õ0’ñ /çð Ð.Ð0FÌÐV\ÓH]Ð^Õ^ˆGÜœC ›KÖ(ˆEØ˜	 5Ð)Õ)ŠGñ )äœC ›KÖ(ˆEØ˜	 5Ð)Õ)ŠGñ )à—‘˜7¸�Ó@ˆÜ'¨×/Ò/ð �{‰{Ò&Ø—‘×!Ñ!ð>ôñ (/ÓN¡w Ð9MÑ2MŸ˜¡wˆHÐNØ—Y‘Y˜x¨V�YÓEˆFØ××ÐÜ% f¨f×.?Ñ.?ÀÇÁ×A_ÐA_ÐRX×R_ÑR_Ó`Ð`ñ ùò Os   ÅF=ÅF=c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r#   rS   r	   ró   r1  r8  r�   r7   r&   re   r   )r(   s   "r   r)   rú   »  s8   € ÷ 	cñ 	c¨$ð 	c°Tð 	cÀmð 	cØ%(ð	cØ48ñ	cr   c               	ó\  € R RR\        V P                  4      RRRRRRR	R
\        V4      .p\        \        V4      4       F  pVRV.,          pK  	  V P	                  WQVR7      pVP
                  '       d6   \        R VP
                  VP                  ;'       g    VP                  4      hR# )Úexportr:  r$  r;  z--no-emit-projectz--no-hashesz--no-annotatez--no-headerz--formatzrequirements-txtz--output-filer=  r%  N)	r6   rÏ   rl   r?  r  r-   rQ   r.   r/   )rþ   rS   ró   r1  r�   rŠ   r@  r$   s   &&&$$   r   Úexport_requirementsÚ%PythonEnvironment.export_requirements»  s¥   € à˜Z¨´S¸¿¹Ó5EÐG\Ø&¨°ÈØÐ1°?ÄCÈÃHðNˆô œC ›KÖ(ˆEØ˜	 5Ð)Õ)ŠGñ )à—‘˜7¸�Ó@ˆØ××ÐÜ% h°×0AÑ0AÀ6Ç=Á=×CaÐCaÐTZ×TaÑTaÓbÐbñ r   Ú
wheelhouser   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   Úrequirementsr8  rI  rÕ   r   r&   re   r   )r(   s   "r   r)   rú   Æ  s0   € ÷ añ a°ð aÈ{ð aØ#.ðaØ:>ñar   c               	ó.  € V'       g   R # \         P                  ! RR7      ;_uu_ 4       p\        V4      R,          pVP                  RP	                  V4      R,           RR7       V P                  WRVR7       R R R 4       R #   + '       g   i     R # ; i)Nzpm-requirements-r
  úrequirements.txtr,   r‘   rU   )rI  r   )r  r  r	   Ú
write_textÚjoinÚ_install_requirements_file)rþ   rK  rI  r   Ú	temporaryÚrequirements_files   &&$$  r   Úinstall_requirementsÚ&PythonEnvironment.install_requirementsÆ  ss   € çÙä×(Ò(Ð0B×CÕCÀyÜ $ Y£Ð2DÕ DÐØ×(Ñ(¨¯©°<Ó)@À4Õ)GÐRYÐ(ÔZØ×+Ñ+Ð,=Ð[_Ð+Ô`÷ D×C×CÒCús   ªABÂB	c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r#   rK  r	   rI  rÕ   r   r�   r7   r&   re   r   )r(   s   "r   r)   rú   Ð  s9   € ÷ `ñ `°tð `ÈKð `Ø)4ð`ØFIð`ØUYñ`r   c          	     ó:  € RRRR\        V P                  4      R\        V4      .pVee   ^ RIHp V! V4      pV'       dO   VP	                  R4      pVP                  R	P                  V4      R	,           R
R7       VR\        V4      .,          pVe&   VRRRR\        VP                  4       4      .,          pV P                  WQP                  VR7      p	V	P                  '       d6   \        RV	P                  V	P                  ;'       g    V	P                  4      hR# )zÞInstall *requirements*; *lock* is the uv.lock they were exported from.

`uv pip install` re-resolves the export, so the lock's manifest overrides
must come back as `--overrides` or the graph the lock resolved is rejected.
ÚpipÚinstallr  r$  z--requirementsN)Úoverride_requirementszoverrides.txtr,   r‘   rU   z--overridesz
--no-indexz--only-binaryz:all:z--find-linksr%  )r6   rÿ   Úpm.pip_checkrY  Ú	with_namerN  rO  rá   r  r&  r-   rQ   r.   r/   )
rþ   rK  rI  r   r�   rŠ   rY  Ú	overridesÚoverrides_filer$   s
   &&$$$     r   rP  Ú,PythonEnvironment._install_requirements_fileÐ  s  € ð ˜) ]°JÄÀDÇOÁOÓ@TØ#¤S¨Ó%6ð8ˆàÒÝ:á-¨dÓ3ˆIßØ!-×!7Ñ!7¸Ó!H�Ø×)Ñ)¨$¯)©)°IÓ*>ÀÕ*EÐPWÐ)ÔXØ˜M¬3¨~Ó+>Ð?Õ?�ØÒ!Ø˜ o°wØ&¬¨J×,?Ñ,?Ó,AÓ(BðDõ DˆGà—‘˜7×(;Ñ(;ÀW�ÓMˆØ××ÐÜ% e¨V×->Ñ->ÀÇÁ×@^Ð@^ÐQW×Q^ÑQ^Ó_Ð_ñ r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   rS   r	   rI  r�   r7   r&   re   r   )r(   s   "r   r)   rú   è  s)   € ÷ 'ñ '¨ð '¸4ð 'ÈSð 'Ð\`ñ 'r   c               ó¤   € VR,          pV P                  WVR7       V P                  WBVR,          VR7       V P                  VR,          4       R# )zJInstall rebuilt wheels whose hashes the bundle manifest owns, not uv.lock.rM  r˜   zuv.lock)rI  r   r�   N)rG  rP  rð   )rþ   rS   rI  r�   rK  s   &&&$ r   Úinstall_wheelhouseÚ$PythonEnvironment.install_wheelhouseè  sR   € àÐ 2Õ2ˆØ× Ñ  ¸wÐ ÔGØ×'Ñ'¨ÐRXÐ[dÕRdØ07ð 	(ô 	9à�
‰
�6˜IÕ%Ö&r   Úcic               ó    € V ^8„  d   QhRRRR/# )r#   rc  r'   r&   re   r   )r(   s   "r   r)   rú   ð  s   € ÷ Vñ V ð V°$ñ Vr   c               	óÞ   € . ROpV'       d   VRR.,          pV P                  V\        P                  ! 4       RR7      pVP                  '       d   \	        RRVP
                  R	R  24      hR# )
r   z--ciz--forcer)  r%  rÞ   zcache pruning failed: N)r   Úpruner  rG   )r  r	   rŒ   r-   r   r.   )rþ   rc  rŠ   r$   s   &$  r   Úprune_cacheÚPythonEnvironment.prune_cacheð  se   € Ú3ˆßØ˜ 	Ð*Õ*ˆGØ—‘˜7¬¯ª«
¸D�ÓAˆØ××ÐÜ˜tÐ'=¸f¿m¹mÈDÈEÐ>RÐ=SÐ%TÓUÐUñ r   c               ó    € V ^8„  d   QhRRRR/# )r#   r   rÕ   r&   re   r   )r(   s   "r   r)   rú   ø  s   € ÷ hñ h˜+ð h°ñ hr   c                óÚ  € \        V RR7      P                  RRRRRR\        V P                  4      .V P                  P
                  ^<R	7      pVP                  '       g   R# ^ R
IHp T! VP                  ;'       g    R RVP                  ;'       g    R 2V4      pVf   \        RRVP                  RR  24      hV'       d&   \        RRRP                  V4      RR ,           4      hR# )a@  `uv pip check` the environment; *lock* is the uv.lock it was installed from.

Mismatches the lock's manifest overrides account for are expected (pm.pip_check).
The check is a quiet step, so it runs captured even for a streaming environment:
a streamed run keeps only the output's tail, which can drop the report's head.
N)r8   rW  rð   r  z--colorr  r$  r%  )Úunexpected_incompatibilitiesr+   r,   rD   zdependency validation failed: rG   )r   r  r6   rÿ   rÔ   r&  r-   rZ  rk  r/   r.   r   rO  )rþ   r   r$   rk  Ú
unexpecteds   &&   r   rð   ÚPythonEnvironment.checkø  sí   € ô ˜ dÔ+×0Ñ0à�G˜]¨I°wÀ
ÌCÐPT×P_ÑP_ÓL`ÐaØ× Ñ ×'Ñ'°ð 1ó 
ˆð
 × × Ð ÙÝ=Ù1°V·]±]×5HÐ5HÀbÐ4IÈÈFÏMÉM×L_ÐL_Ð]_ÐK`Ð2aÐcgÓhˆ
ØÒÜ˜vÐ)GÈÏÉÐVZÐV[ÐH\ÐG]Ð'^Ó_Ð_ßÜ˜vÐ'GÈ$Ï)É)ÐT^ÓJ_Ð`dÐ`eÐJfÕ'fÓgÐgñ r   r   r<   )r   r   r   r   Ú__annotations__rÐ   r8   rø   Úpropertyrÿ   r  rï   r   r/  r   rG  rS  rP  ra  rg  rð   r   r   r   r   r×   r×   #  s>  ‡ àƒHØƒLØÓØƒKØ	ÓØ€GˆTÓØ €FˆMÓ Ø€IˆtÓàô-ó ð-õ
<nõ|	Rða°Eð aÈ$÷ aõað.a¸Bð .aÐXZð .aØ ð.aØ15ð.aØJOð.aà(-ð.aà>Cð.að (-÷.að`	cÐVXð 	cØ+/÷	cðaÐ]að aØ15÷að`ÐZ^ð `Ø7;ð`ØLP÷`ð0'ÐSW÷ 'ðV¨÷ V÷hó hr   r×   )rW  rX  )zno solution foundzconflicting requirementszconflicting urlsz#because only the following versionszand your pyproject depends on)z#the build backend returned an error)zis missing an upload datezwas filtered by `exclude-newerr<   )6Ú__conditional_annotations__r   Ú
__future__r   r¥   Úcollections.abcr   r   r   Ú
contextlibr   Údataclassesr   r   r    rƒ   Úpathlibr	   rñ   r›   rz   r  r™   Útypingr
   Úpm.filesystemr   Ú
pm.packager   Úpm.progressr   r   r   r   rn  rN   rO   rI   rK   rL   r1   r«   r   r!   r3   rQ   rb   rt   rˆ   r¾   rÎ   rç   rô   r×   )rp  s   @r   Ú<module>rz     so  øðôõ
 #ã ß 7Ñ 7Ý %ß *Û 	Û 	Ý Û Û Û 
Û Û Ý å  Ý #ß :Ñ :ð
 Ð,Ø
Ð+ØÐ4ØÐ#ð	!€
Ðó ðÐ ð :€ð %€ØO€ðnÐ ð 8Ð ð )Ð,DÐ+FÕFÐ ô@˜ô @ô4�<ô 4õ,õ'õ$2õ(õ6õ$4@÷nð"ÀDð Ø-1ðØSWðà(-ðà@Eðð 15ðð GK÷ð0 ðÐVZö ó ðñ  �$ Ô%÷ghð ghó &òghr   