Ë
    ù—hÙ+  ã                  ód  — 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m	Z	 ddl
mZmZ ddlmZmZ ddlmZ ddlmZ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! ddl"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. ddl/m0Z0 ddl1m2Z2  ejf                  e4«      Z5 ejl                  dejn                  «      Z8e9e:e#   e:e#   f   Z;d"d„Z<	 	 	 	 d#d„Z=	 	 	 	 d#d„Z>	 	 	 	 d$d„Z?	 	 	 	 	 	 d%d„Z@d&d„ZA	 	 	 	 	 	 	 	 	 	 	 	 	 	 d'd„ZB	 	 	 	 	 	 	 	 	 	 	 	 d(d„ZCd)d „ZD	 	 	 	 	 	 	 	 	 	 	 	 d*d!„ZEy)+z:Orchestrator for building wheels from InstallRequirements.é    )ÚannotationsN)ÚIterable)Úcanonicalize_nameÚcanonicalize_version)ÚInvalidVersionÚVersion)Ú
WheelCache)ÚInvalidWheelFilenameÚUnsupportedWheel)ÚFilesystemWheelÚget_wheel_distribution)ÚLink)ÚWheel)Úbuild_wheel_pep517)Úbuild_wheel_editable)Úbuild_wheel_legacy)ÚInstallRequirement)Ú
indent_log)Ú
ensure_dirÚ	hash_file)Úmake_setuptools_clean_args)Úcall_subprocess)ÚTempDirectory)Úpath_to_url)Úvcsz([a-z0-9_.]+)-([a-z0-9_.!+-]+)c                ó>   — t        t        j                  | «      «      S )zjDetermine 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    ú]/var/www/html/w1hd.aprs.trek/venv/lib/python3.12/site-packages/pip/_internal/wheel_builder.pyÚ_contains_egg_infor"   &   s   € ô
 ”×#Ñ# AÓ&Ó'Ð'ó    c                ó†   — | j                   rJ ‚| j                  ry| j                  sJ ‚| j                  r| j                  S y)zBReturn whether an InstallRequirement should be built into a wheel.FT)Ú
constraintÚis_wheelÚ
source_dirÚeditableÚsupports_pyproject_editable©Úreqs    r!   Ú_should_buildr,   .   s=   € ð �~Š~ÐÐà
‡|‚|Øà�>Š>Ðˆ>à
‡|‚|à×.Ñ.Ð.àr#   c                ó   — t        | «      S ©N)r,   r*   s    r!   Ú should_build_for_install_commandr/   @   s   € ô ˜ÓÐr#   c                óÞ  — | j                   s| j                  sy| j                  r‘| j                  j                  r{| j                   rJ ‚| j                  sJ ‚t	        j
                  | j                  j                  «      }|sJ ‚|j                  | j                  j                  | j                  «      ryy| j                  sJ ‚| j                  j                  «       \  }}t        |«      ryy)zÍ
    Return whether a built InstallRequirement can be stored in the persistent
    wheel cache, assuming the wheel cache is available, and _should_build()
    has determined a wheel needs to be built.
    FT)r(   r'   ÚlinkÚis_vcsr   Úget_backend_for_schemeÚschemeÚis_immutable_rev_checkoutÚurlÚsplitextr"   )r+   Úvcs_backendÚbaseÚexts       r!   Ú_should_cacher;   F   s³   € ð ‡|‚|˜3Ÿ>š>àà
‡x‚x�C—H‘H—O’Oð —<’<ÐÐØ�~Š~Ðˆ~Ü×0Ñ0°·±·±ÓAˆÙÐˆ{Ø×0Ñ0°·±·±¸s¿~¹~ÔNØØà�8Š8€Oˆ8Ø—‘×!Ñ!Ó#�I€Dˆ#Ü˜$ÔØð r#   c                óÖ   — t        |j                  «      }| j                  sJ ‚|r(t        | «      r|j	                  | j                  «      }|S |j                  | j                  «      }|S )zdReturn the persistent or temporary cache directory where the built
    wheel need to be stored.
    )r   Ú	cache_dirr1   r;   Úget_path_for_linkÚget_ephem_path_for_link)r+   Úwheel_cacheÚcache_availabler=   s       r!   Ú_get_cache_dirrB   f   sa   € ô ˜;×0Ñ0Ó1€OØ�8Š8€Oˆ8Ùœ=¨Ô-Ø×1Ñ1°#·(±(Ó;ˆ	ð Ðð  ×7Ñ7¸¿¹ÓAˆ	ØÐr#   c                ó¬  — t        | j                  xs d«      }t        t        j                  j                  |«      «      }t        |j                  «      |k7  rt        d|›d|j                  ›�«      ‚t        t        |«      |«      }t        |j                  «      }t        |«      t        |j                  «      k7  rt        d|›d|j                  ›�«      ‚|j                  }|€t        d«      ‚	 t        |«      }|t        d«      k\  r*t!        |j                  t        «      st        d|›d�«      ‚y y # t        $ r d|› �}t        |«      ‚w xY w)	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_valuerK   Úmsgs	            r!   Ú_verify_onerT   v   s_  € Ü& s§x¡x¢~°2Ó6€NÜŒb�g‰g×Ñ˜zÓ*Ó+€AÜ˜Ÿ™Ó  NÒ2Ü"Ø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ÜØ9¸+¸ÈÐPó
ð 	
ð 3TÐ)øô ò $Ø*Ð+AÐ*BÐCˆÜ˜sÓ#Ð#ð$ús   Ã5D9 Ä9Ec                óœ  — |rdnd}	 t        |«       | j
                  5  t        | ||||«      }ddd«       r|r	 t        | |«       |S |S # t        $ r,}t        j                  d|| j                  |«       Y d}~yd}~ww xY w# 1 sw Y   ŒVxY w# t        t        f$ r,}t        j                  d|| j                  |«       Y d}~yd}~ww xY w)zaBuild 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ÚwarningrE   Ú	build_envÚ_build_one_inside_envrT   r
   r   )	r+   Ú
output_dirÚverifyÚbuild_optionsÚglobal_optionsr(   ÚartifactÚerM   s	            r!   Ú
_build_onerb   “   sÕ   € ñ &‰z¨7€Hð	Ü�:Ôð 
�‰ñ 
Ü*Ø�˜]¨N¸Hó
ˆ
÷
ñ ‘fð	Ü˜˜ZÔ(ð Ðˆ:Ðøô) ò Ü�‰Ø+ØØ�H‰HØô		
ô ûðú÷
ð 
ûô %Ô&6Ð7ò 	Ü�N‰NÐ;¸XÀsÇxÁxÐQRÔSÜûð	ús9   ˆA ŸB¼B Á	BÁ"A<Á<BÂBÂCÂ"CÃCc           	     ó   — t        d¬«      5 }| j                  sJ ‚| j                  rÒ| j                  sJ ‚| j                  sJ ‚|r t
        j                  d| j                  «       |r t
        j                  d| j                  «       |r8t        | j                  | j                  | j                  |j                  ¬«      }nqt        | j                  | j                  | j                  |j                  ¬«      }n9t        | j                  | j                  | j                  |||j                  ¬«      }|�¶t        j                  j                  |«      }t        j                  j                  ||«      }	 t!        |«      \  }	}
t#        j$                  ||«       t
        j'                  d| j                  ||
|	j)                  «       «       t
        j'                  d|«       |cd d d «       S | j                  st-        | |«       	 d d d «       y # t*        $ r+}t
        j                  d	| j                  |«       Y d }~ŒQd }~ww xY w# 1 sw Y   y xY w)
NrV   )Úkindz7Ignoring --global-option when building %s using PEP 517z6Ignoring --build-option when building %s using PEP 517)rE   ÚbackendÚmetadata_directoryÚtempd)rE   Úsetup_py_pathr'   r_   r^   rg   z3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %sz Building wheel for %s failed: %s)r   rE   Ú
use_pep517rf   Úpep517_backendrX   rY   r   rG   r   r   rh   Úunpacked_source_directoryrF   rH   Újoinr   ÚshutilÚmoveÚinfoÚ	hexdigestÚ	ExceptionÚ_clean_one_legacy)r+   r\   r^   r_   r(   Útemp_dirrM   Ú
wheel_nameÚ	dest_pathÚ
wheel_hashÚlengthra   s               r!   r[   r[   ¹   sú  € ô 
˜GÔ	$ð =¨Ø�xŠxˆˆxØ�>Š>Ø×)Ò)Ð)Ð)Ø×%Ò%Ð%Ð%ÙÜ—‘ØMÈsÏxÉxôñ Ü—‘ØLÈcÏhÉhôñ Ü1ØŸ™Ø×.Ñ.Ø'*×'=Ñ'=Ø"Ÿ-™-ô	‘
ô 0ØŸ™Ø×.Ñ.Ø'*×'=Ñ'=Ø"Ÿ-™-ô	‘
ô ,Ø—X‘XØ!×/Ñ/Ø×8Ñ8Ø-Ø+Ø—m‘môˆJð Ð!ÜŸ™×)Ñ)¨*Ó5ˆJÜŸ™Ÿ™ Z°Ó<ˆIðÜ%.¨zÓ%:Ñ"�
˜FÜ—‘˜J¨	Ô2Ü—‘ØIØ—H‘HØØØ×(Ñ(Ó*ôô —‘Ð5°zÔBØ ÷g=ñ =ðv �~Š~Ü˜c >Ô2Ø÷{=ð =øôh ò Ü—‘Ø6Ø—H‘HØ÷ñ ûðú÷i=ð =ús7   �E'IÅ5A,HÇ+IÈ	IÈ!H<È7IÈ<IÉIÉIc                ó  — t        | j                  |¬«      }t        j                  d| j                  «       	 t        |d| j                  ¬«       y# t        $ r# t        j                  d| j                  «       Y yw xY w)N)r_   zRunning setup.py clean for %szpython setup.py clean)Úcommand_descÚcwdTz Failed cleaning build dir for %sF)	r   rh   rX   ro   rE   r   r'   rq   Úerror)r+   r_   Ú
clean_argss      r!   rr   rr      sp   € Ü+Ø×ÑØ%ô€Jô
 ‡K�KÐ/°·±Ô:ðÜØÐ%<À#Ç.Á.õ	
ð øÜò Ü�‰Ð7¸¿¹ÔBÙðús   ¹A Á)A>Á=A>c                óŠ  — | sg g fS t         j                  ddj                  d„ | D «       «      «       t        «       5  g g }}| D ]Ý  }|j                  sJ ‚t        ||«      }t        ||||||j                  xr |j                  «      }	|	r†|j                  �|j                  ||j                  «       t        t        |	«      «      |_        |j                  j                  |_        |j                  j                   sJ ‚|j#                  |«       ŒÍ|j#                  |«       Œß 	 ddd«       r=t         j                  ddj                  |D �cg c]  }|j                  ‘Œ c}«      «       r=t         j                  ddj                  |D �cg c]  }|j                  ‘Œ c}«      «       ||fS # 1 sw Y   Œ‹xY wc c}w c c}w )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  ó4   K  — | ]  }|j                   –— Œ y ­wr.   )rE   )Ú.0r+   s     r!   ú	<genexpr>zbuild.<locals>.<genexpr>#  s   è ø€ Ò3˜s�#—(•(Ñ3ùs   ‚NzSuccessfully built %sú zFailed to build %s)rX   ro   rl   r   rE   rB   rb   r(   Úpermit_editable_wheelsÚdownload_infoÚrecord_download_originr   r   r1   Ú	file_pathÚlocal_file_pathr&   Úappend)
Úrequirementsr@   r]   r^   r_   Úbuild_successesÚbuild_failuresr+   r=   Ú
wheel_files
             r!   ÚbuildrŒ     sš  € ñ Ø�2ˆvˆô ‡K�KØ4Ø�	‰	Ñ3 lÔ3Ó3ôô
 
‹ñ +Ø*,¨b˜ˆØò 	+ˆCØ—8’8ˆO�8Ü& s¨KÓ8ˆIÜ#ØØØØØØ—‘Ò; ×!;Ñ!;óˆJñ à×$Ñ$Ð0ð  ×6Ñ6°yÀ#×BSÑBSÔTä¤¨JÓ 7Ó8�”Ø&)§h¡h×&8Ñ&8�Ô#Ø—x‘x×(Ò(Ð(Ð(Ø×&Ñ& sÕ+à×%Ñ% cÕ*ñ1	+÷+ñ: Ü�‰Ø#Ø�H‰H¨/Ö: 3�c—h“hÒ:Ó;ô	
ñ Ü�‰Ø Ø�H‰H¨.Ö9 3�c—h“hÒ9Ó:ô	
ð
 ˜NÐ*Ð*÷Q+ð +üò@ ;ùò
 :s   ½C'F/ÅF;ÆG Æ/F8)r    rI   Úreturnr   )r+   r   r�   r   )r+   r   r�   zbool | None)r+   r   r@   r	   r�   rI   )r+   r   rM   rI   r�   ÚNone)r+   r   r\   rI   r]   r   r^   ú	list[str]r_   r�   r(   r   r�   ú
str | None)r+   r   r\   rI   r^   r�   r_   r�   r(   r   r�   r�   )r+   r   r_   r�   r�   r   )rˆ   zIterable[InstallRequirement]r@   r	   r]   r   r^   r�   r_   r�   r�   ÚBuildResult)FÚ__doc__Ú
__future__r   ÚloggingÚos.pathrF   Úrerm   Úcollections.abcr   Ú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.operations.build.wheel_legacyr   Úpip._internal.req.req_installr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Ú$pip._internal.utils.setuptools_buildr   Úpip._internal.utils.subprocessr   Úpip._internal.utils.temp_dirr   Úpip._internal.utils.urlsr   Úpip._internal.vcsr   Ú	getLoggerÚ__name__rX   ÚcompileÚ
IGNORECASEr   ÚtupleÚlistr‘   r"   r,   r/   r;   rB   rT   rb   r[   rr   rŒ   © r#   r!   ú<module>r±      sÌ  ðÙ @å "ã Û Û 	Û Ý $ç Oß Aå *ß Kß JÝ *Ý ,Ý CÝ NÝ JÝ <Ý 2ß :Ý KÝ :Ý 6Ý 0Ý !à	ˆ×	Ñ	˜8Ó	$€àˆr�z‰zÐ;¸R¿]¹]ÓK€à�DÐ+Ñ,¨dÐ3EÑ.FÐFÑG€ó(ðØ	ðà	óð$Ø	ðà	óðØ	ðàóð@Ø	ðàðð 	óó 
ð:#Ø	ð#àð#ð ð#ð ð	#ð
 ð#ð ð#ð ó#ðLDØ	ðDàðDð ðDð ð	Dð
 ðDð óDóNð"=+Ø.ð=+àð=+ð ð=+ð ð	=+ð
 ð=+ð ô=+r#   