ó
    T=Œjº#  ã                  ó
  • S r SSKJ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  SSKJrJr  SSKJr  SS	K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   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+  \RX                  " \-5      r.\R^                  " S\R`                  5      r1\2\3\"   \3\"   4   r4SS jr5    SS jr6      SS jr7SS jr8          S S jr9        S!S jr:          S"S jr;g)#z:Orchestrator for building wheels from InstallRequirements.é    )ÚannotationsN)ÚIterable)ÚTemporaryDirectory)Úcanonicalize_nameÚcanonicalize_version)ÚInvalidVersionÚVersion)Ú
WheelCache)ÚInvalidWheelFilenameÚUnsupportedWheel)ÚFilesystemWheelÚget_wheel_distribution)ÚLink)ÚWheel)Úbuild_wheel_pep517)Úbuild_wheel_editable)ÚInstallRequirement)Ú
indent_log)Ú
ensure_dirÚ	hash_file)Úpath_to_url)Úvcsz([a-z0-9_.]+)-([a-z0-9_.!+-]+)c                ó>   • [        [        R                  U 5      5      $ )zbDetermine whether the string looks like an egg_info.

:param s: The string to parse. E.g. foo-2.1
)ÚboolÚ_egg_info_reÚsearch)Úss    Ú_/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/wheel_builder.pyÚ_contains_egg_infor   "   s   € ô
 ”×#Ñ# AÓ&Ó'Ð'ó    c                ó¤  • U R                   (       d  U R                  (       d  gU R                  (       a   U R                  R                  5       (       a  gU R                  (       a«  U R                  R                  (       a�  U R                   (       a   eU R                  (       d   e[
        R                  " U R                  R                  5      nU(       d   eUR                  U R                  R                  U R                  5      (       a  ggU R                  (       d   eU R                  R                  5       u  p#[        U5      (       a  gg)z
Return whether a built InstallRequirement can be stored in the persistent
wheel cache, assuming the wheel cache is available.
FT)ÚeditableÚ
source_dirÚlinkÚis_existing_dirÚis_vcsr   Úget_backend_for_schemeÚschemeÚis_immutable_rev_checkoutÚurlÚsplitextr   )ÚreqÚvcs_backendÚbaseÚexts       r   Ú_should_cacher0   *   sÓ   € ð ‡|‡|˜3Ÿ>Ÿ>àØ
‡x‡x�C—H‘H×,Ñ,×.Ñ.àà
‡x‡x�C—H‘H—O—Oð —<—<ÐÐØ�~�~Ðˆ~Ü×0Ò0°·±·±ÓAˆÞÐˆ{Ø×0Ñ0°·±·±¸s¿~¹~×NÑNØØà�8�8€Oˆ8Ø—‘×!Ñ!Ó#�I€DÜ˜$×ÑØð r    c                óô   • [        UR                  5      nU R                  (       d   eU(       a-  [        U 5      (       a  UR	                  U R                  5      nU$ UR                  U R                  5      nU$ )z\Return the persistent or temporary cache directory where the built
wheel need to be stored.
)r   Ú	cache_dirr$   r0   Úget_path_for_linkÚget_ephem_path_for_link)r,   Úwheel_cacheÚcache_availabler2   s       r   Ú_get_cache_dirr7   L   sd   € ô ˜;×0Ñ0Ó1€OØ�8�8€Oˆ8Þœ=¨×-Ñ-Ø×1Ñ1°#·(±(Ó;ˆ	ð Ðð  ×7Ñ7¸¿¹ÓAˆ	ØÐr    c                óÂ  • [        U R                  =(       d    S5      n[        [        R                  R                  U5      5      nUR                  U:w  a  [        SU< SUR                  < 35      e[        [        U5      U5      n[        UR                  5      n[        U5      [        UR                  5      :w  a  [        SU< SUR                  < 35      eUR                  nUc  [        S5      e [        U5      nU[        S5      :¼  a0  [!        UR                  [        5      (       d  [        SU< S35      eg g ! [         a    SU 3n[        U5      ef = f)	NÚ z)Wheel has unexpected file name: expected z, got zMissing Metadata-VersionzInvalid Metadata-Version: z1.2z+Metadata 1.2 mandates PEP 440 version, but z is not)r   Únamer   ÚosÚpathÚbasenamer   r   r   ÚstrÚversionr   Úmetadata_versionr   r	   r   Ú
isinstance)	r,   Ú
wheel_pathÚcanonical_nameÚwÚdistÚdist_verstrÚmetadata_version_valuer@   Úmsgs	            r   Ú_verify_onerI   \   s]  € Ü& s§x¡x§~°2Ó6€NÜŒb�g‰g×Ñ˜zÓ*Ó+€AØ‡v�v�ÓÜ"Ø7¸Ñ7Ið JØ—6‘6‘*ðó
ð 	
ô "¤/°*Ó"=¸~ÓN€DÜ�d—l‘lÓ#€KÜ˜KÓ(Ô,@ÀÇÁÓ,KÓKÜ"Ø7¸±ð GØ—9‘9‘-ð!ó
ð 	
ð "×2Ñ2ÐØÑ%ÜÐ9Ó:Ð:ð$Ü"Ð#9Ó:Ðð œ7 5›>Ó)´*¸T¿\¹\Ì7×2SÑ2SÜØ9¸+¹ÈÐPó
ð 	
ð 3TÐ)øô ó $Ø*Ð+AÐ*BÐCˆÜ˜sÓ#Ð#ð$ús   Ã8E ÅEc                ó¾  • U(       a  SOSn [        U5        U R
                     [        XU5      nSSS5        W(       a  U(       a   [        X5        U$ U$ ! [         a,  n[        R                  SUU R                  U5         SnAgSnAff = f! , (       d  f       Ne= f! [        [        4 a+  n[        R                  SX@R                  U5         SnAgSnAff = f)zYBuild one wheel.

:return: The filename of the built wheel, or None if the build failed.
r"   ÚwheelzBuilding %s for %s failed: %sNzBuilt %s for %s is invalid: %s)
r   ÚOSErrorÚloggerÚwarningr:   Ú	build_envÚ_build_one_inside_envrI   r   r   )r,   Ú
output_dirÚverifyr"   ÚartifactÚerB   s          r   Ú
_build_onerU   y   s¾   € ö &‰z¨7€Hð	Ü�:Ôð 
�‹Ü*¨3¸HÓEˆ
÷ 
æ–fð	Ü˜Ô(ð Ðˆ:Ðøô% ó Ü�‰Ø+ØØ�H‰HØô		
ô ûðú÷ 
�ûô
 %Ô&6Ð7ó 	Ü�N‰NÐ;¸XÇxÁxÐQRÔSÜûð	ús:   �A ¤BÁB! Á
BÁ!"BÂBÂ
BÂ!CÂ1!CÃCc           	     óT  • [        US9 nU R                  (       d   eU R                  (       d   eU R                  (       d   eU(       a+  [	        U R                  U R                  U R                  US9nO*[        U R                  U R                  U R                  US9nUb´  [        R                  R                  U5      n[        R                  R                  X5      n [        U5      u  px[        R                  " XF5        [        R                  SU R                  UUUR                  5       5        [        R                  SU5        UsS S S 5        $  S S S 5        g ! [         a+  n	[        R!                  SU R                  U	5         S n	A	N:S n	A	ff = f! , (       d  f       g = f)N)Údir)r:   ÚbackendÚmetadata_directoryÚwheel_directoryz3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %sz Building wheel for %s failed: %s)r   r:   rY   Úpep517_backendr   r   r;   r<   r=   Újoinr   ÚreplacerM   ÚinfoÚ	hexdigestÚ	ExceptionrN   )
r,   rQ   r"   rZ   rB   Ú
wheel_nameÚ	dest_pathÚ
wheel_hashÚlengthrT   s
             r   rP   rP   ›   se  € ô
 
 
Ò	+¨Ø�x�xˆˆxØ×%×%Ð%Ð%Ø×!×!Ð!Ð!ÞÜ-Ø—X‘XØ×*Ñ*Ø#&×#9Ñ#9Ø /ñ	‰Jô ,Ø—X‘XØ×*Ñ*Ø#&×#9Ñ#9Ø /ñ	ˆJð Ñ!ÜŸ™×)Ñ)¨*Ó5ˆJÜŸ™Ÿ™ ZÓ<ˆIðÜ%.¨zÓ%:Ñ"�
ô
 —
’
˜:Ô1Ü—‘ØIØ—H‘HØØØ×(Ñ(Ó*ôô —‘Ð5°zÔBØ ÷K 
,Ñ	+ðX ÷Y 
,Ð	+øôL ó Ü—‘Ø6Ø—H‘HØ÷ñ ûðú÷M 
,Õ	+ús7   ŠCFÃ"A+E!ÅFÅ!
FÅ+!FÆFÆFÆFÆ
F'c           	     óÈ  • U (       d  / / 4$ [         R                  SSR                  S U  5       5      5        [        5          / / pTU  Hæ  nUR                  (       d   e[        Xa5      n[        UUUUR                  =(       a    U5      nU(       aŒ  UR                  b  UR                  XvR                  5        [        [        U5      5      Ul        UR                  R                  Ul        UR                  R                  (       d   eUR!                  U5        MÕ  UR!                  U5        Mè     SSS5        W(       a?  [         R                  SSR                  U Vs/ s H  ofR                  PM     sn5      5        W(       a?  [         R                  SSR                  U Vs/ s H  ofR                  PM     sn5      5        XE4$ ! , (       d  f       N�= fs  snf s  snf )zŒBuild wheels.

:return: The list of InstallRequirement that succeeded to build and
    the list of InstallRequirement that failed to build.
z*Building wheels for collected packages: %sz, c              3  ó8   #   • U  H  oR                   v •  M     g 7f)N)r:   )Ú.0r,   s     r   Ú	<genexpr>Úbuild.<locals>.<genexpr>à   s   é € Ð3¢l˜s—(–(¢lùs   ‚NzSuccessfully built %sÚ zFailed to build %s)rM   r^   r\   r   r:   r7   rU   r"   Údownload_infoÚrecord_download_originr   r   r$   Ú	file_pathÚlocal_file_pathÚis_wheelÚappend)	Úrequirementsr5   rR   Úallow_editablesÚbuild_successesÚbuild_failuresr,   r2   Ú
wheel_files	            r   Úbuildrv   Ï   s|  € ö Ø�2ˆvˆô ‡K�KØ4Ø�	‰	Ñ3¡lÓ3Ó3ôô
 
�Ø*,¨b˜ÛˆCØ—8—8ˆO�8Ü& sÓ8ˆIÜ#ØØØØ—‘×0 ó	ˆJö à×$Ñ$Ñ0ð  ×6Ñ6°y×BSÑBSÔTä¤¨JÓ 7Ó8�”Ø&)§h¡h×&8Ñ&8�Ô#Ø—x‘x×(×(Ð(Ð(Ø×&Ñ& sÖ+à×%Ñ% cÖ*ñ-  ÷ 
ö6 Ü�‰Ø#Ø�H‰H©/Ó:ª/ 3—h”h©/Ñ:Ó;ô	
ö Ü�‰Ø Ø�H‰H©.Ó9ª. 3—h”h©.Ñ9Ó:ô	
ð
 Ð*Ð*÷M 
�üò< ;ùò
 :s   ÁC0G	Å GÆ&GÇ	
G)r   r>   Úreturnr   )r,   r   rw   zbool | None)r,   r   r5   r
   rw   r>   )r,   r   rB   r>   rw   ÚNone)
r,   r   rQ   r>   rR   r   r"   r   rw   ú
str | None)r,   r   rQ   r>   r"   r   rw   ry   )
rq   zIterable[InstallRequirement]r5   r
   rR   r   rr   r   rw   ÚBuildResult)<Ú__doc__Ú
__future__r   ÚloggingÚos.pathr;   ÚreÚcollections.abcr   Útempfiler   Úpip._vendor.packaging.utilsr   r   Úpip._vendor.packaging.versionr   r	   Úpip._internal.cacher
   Úpip._internal.exceptionsr   r   Úpip._internal.metadatar   r   Úpip._internal.models.linkr   Úpip._internal.models.wheelr   Ú$pip._internal.operations.build.wheelr   Ú-pip._internal.operations.build.wheel_editabler   Úpip._internal.req.req_installr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Úpip._internal.utils.urlsr   Úpip._internal.vcsr   Ú	getLoggerÚ__name__rM   ÚcompileÚ
IGNORECASEr   ÚtupleÚlistrz   r   r0   r7   rI   rU   rP   rv   © r    r   Ú<module>r—      sT  ðÙ @å "ã Û Û 	Ý $Ý 'ç Oß Aå *ß Kß JÝ *Ý ,Ý CÝ NÝ <Ý 2ß :Ý 0Ý !à	×	Ò	˜8Ó	$€à�zŠzÐ;¸R¿]¹]ÓK€à�DÐ+Ñ,¨dÐ3EÑ.FÐFÑG€ô(ðØ	ðàôðDØ	ðàðð 	ôô 
ð:Ø	ðàðð ðð ð	ð
 ôðD1Ø	ð1àð1ð ð1ð ô	1ðh:+Ø.ð:+àð:+ð ð:+ð ð	:+ð
 õ:+r    