+
    Bi+                    6   R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
HtHt ^ RIHtHt ^ RIHt ^ RIHtHt ^ RIHtHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RI H!t! ^ RI"H#t# ^ RI$H%t% ^ RI&H't'H(t( ^ RI)H*t* ^ RI+H,t, ^ RI-H.t. ^ RI/H0t0 ^ RI1H2t2 ]Pf                  ! ]44      t5]Pl                  ! R]Pn                  4      t8]9]:]#,          ]:]#,          3,          t;R R lt<R R lt=R R lt>R R lt?R R  lt@R! R" ltAR# R$ ltBR% R& ltCR' R( ltDR) R* ltER# )+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                    V ^8  d   QhRRRR/# )   sstrreturnbool )formats   "@/usr/lib/python3.14/site-packages/pip/_internal/wheel_builder.py__annotate__r$   &   s     ( (# ($ (    c                >    \        \        P                  V 4      4      # )zbDetermine whether the string looks like an egg_info.

:param s: The string to parse. E.g. foo-2.1
)r    _egg_info_research)r   s   &r#   _contains_egg_infor)   &   s    
 ##A&''r%   c                    V ^8  d   QhRRRR/# r   reqr   r   r    r!   )r"   s   "r#   r$   r$   .   s      		r%   c                    V P                   '       d   Q hV P                  '       d   R# V P                  '       g   Q hV P                  '       d   V P                  # R# )zBReturn whether an InstallRequirement should be built into a wheel.FT)
constraintis_wheel
source_direditablesupports_pyproject_editabler,   s   &r#   _should_buildr4   .   sE     ~~~
|||>>>>
|||...r%   c                    V ^8  d   QhRRRR/# r+   r!   )r"   s   "r#   r$   r$   @   s      		r%   c                    \        V 4      # N)r4   r3   s   &r#    should_build_for_install_commandr8   @   s     r%   c                    V ^8  d   QhRRRR/# )r   r,   r   r   zbool | Noner!   )r"   s   "r#   r$   r$   F   s      	r%   c                `   V P                   '       g   V P                  '       g   R# V P                  '       d   V P                  P                  '       d   V P                   '       d   Q hV P                  '       g   Q h\        P
                  ! V P                  P                  4      pV'       g   Q hVP                  V P                  P                  V P                  4      '       d   R# R# V P                  '       g   Q hV P                  P                  4       w  r#\        V4      '       d   R# R# )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)r1   r0   linkis_vcsr   get_backend_for_schemeschemeis_immutable_rev_checkouturlsplitextr)   )r,   vcs_backendbaseexts   &   r#   _should_cacherE   F   s     |||3>>>
xxxCHHOOO <<<~~~~00A{00s~~NN888O8!!#ID$ r%   c               $    V ^8  d   QhRRRRRR/# )r   r,   r   wheel_cacher   r   r   r!   )r"   s   "r#   r$   r$   f   s&      	 	r%   c                    \        VP                  4      pV P                  '       g   Q hV'       d/   \        V 4      '       d   VP	                  V P                  4      pV# VP                  V P                  4      pV# )z\Return the persistent or temporary cache directory where the built
wheel need to be stored.
)r    	cache_dirr;   rE   get_path_for_linkget_ephem_path_for_link)r,   rG   cache_availablerI   s   &&  r#   _get_cache_dirrM   f   sf     ;001O888O8=--11#((;	   77A	r%   c               $    V ^8  d   QhRRRRRR/# )r   r,   r   
wheel_pathr   r   Noner!   )r"   s   "r#   r$   r$   v   s"     
 
' 
S 
T 
r%   c                   \        V P                  ;'       g    R 4      p\        \        P                  P                  V4      4      p\        VP                  4      V8w  d   \        RV: RVP                  : 24      h\        \        V4      V4      p\        VP                  4      p\        V4      \        VP                  4      8w  d   \        RV: RVP                  : 24      hVP                  pVf   \        R4      h \        V4      pT\        R4      8  d3   \!        TP                  \        4      '       g   \        RT: R24      hR# R#   \         d    RT 2p\        T4      hi ; i)	 z)Wheel has unexpected file name: expected z, got Nz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   r   versionr   metadata_versionr
   r   r   
isinstance)	r,   rO   canonical_namewdistdist_verstrmetadata_version_valuerX   msgs	   &&       r#   _verify_oner`   v   sd   &sxx~~26Nbggz*+A N2"77I J66*
 	
 "/*"=~NDdll#KK(,@,KK"7 G99-!
 	
 "22%9::$"#9: 75>)*T\\72S2S9+P
 	
 3T)  $*+A*BCs##$s   E E0c               4    V ^8  d   QhRRRRRRRRR	RR
RRR/# )r   r,   r   
output_dirr   verifyr    build_options	list[str]global_optionsr1   r   
str | Noner!   )r"   s   "r#   r$   r$      sN     # #	## # 	#
 # # #r%   c           	        V'       d   RMRp \        V4       T P
                  ;_uu_ 4        \        YY4T4      pRRR4       X'       d   T'       d    \        Y4       T# T#   \         d.   p\        P                  RTT P                  T4        Rp?R# Rp?ii ; i  + '       g   i     Lk; i  \        \        3 d-   p\        P                  RY`P                  T4        Rp?R# Rp?ii ; i)zYBuild one wheel.

:return: The filename of the built wheel, or None if the build failed.
r1   wheelzBuilding %s for %s failed: %sNzBuilt %s for %s is invalid: %s)
r   OSErrorloggerwarningrS   	build_env_build_one_inside_envr`   r	   r
   )	r,   rb   rc   rd   rf   r1   artifacterO   s	   &&&&&&   r#   
_build_onerq      s     &z7H	: 
*]H

 
 f	( :)  +HH		
  
 %&67 	NN;XxxQRS	s:   A# BB1 #B."BBB.	1C.!C))C.c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   r,   r   rb   r   rd   re   rf   r1   r    r   rg   r!   )r"   s   "r#   r$   r$      sL     D D	DD D 	D
 D Dr%   c                &   \        R R7      ;_uu_ 4       pV P                  '       g   Q hV P                  '       d   V P                  '       g   Q hV P                  '       g   Q hV'       d!   \
        P                  RV P                  4       V'       d!   \
        P                  RV P                  4       V'       d9   \        V P                  V P                  V P                  VP                  R7      pMq\        V P                  V P                  V P                  VP                  R7      pM9\        V P                  V P                  V P                  VVVP                  R7      pVe   \        P                  P                  V4      p\        P                  P                  W4      p \!        V4      w  r\"        P$                  ! Wh4       \
        P'                  RV P                  VV
V	P)                  4       4       \
        P'                  RV4       VuuRRR4       # V P                  '       g   \-        W4        RRR4       R#   \*         d,   p\
        P                  R	T P                  T4        Rp?LYRp?ii ; i  + '       g   i     R# ; i)
ri   )kindz7Ignoring --global-option when building %s using PEP 517z6Ignoring --build-option when building %s using PEP 517)rS   backendmetadata_directorytempd)rS   setup_py_pathr0   rf   rd   rw   Nz3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %sz Building wheel for %s failed: %s)r   rS   
use_pep517rv   pep517_backendrk   rl   r   rU   r   r   rx   unpacked_source_directoryrT   rV   joinr   shutilmoveinfo	hexdigest	Exception_clean_one_legacy)r,   rb   rd   rf   r1   temp_dirrO   
wheel_name	dest_path
wheel_hashlengthrp   s   &&&&&       r#   rn   rn      s    
G	$	$xxxx>>>)))))%%%%%Msxx Lchh 1..'*'='="--	
 0..'*'='="--	
 ,XX!//88-+mmJ !))*5JZ<I%.z%:"
J2IHH((* 5zB g 
%	$v ~~~c2{ 
%	$h  6HH i 
%	$	$s`   &I?I?I?"	I?,'I?'I?<C+I?(A+II?0I?I<!I72I?7I<<I??J	c               $    V ^8  d   QhRRRRRR/# )r   r,   r   rf   re   r   r    r!   )r"   s   "r#   r$   r$      s"      - y T r%   c                
   \        V P                  VR 7      p\        P                  RV P                  4        \        VRV P                  R7       R#   \         d%    \        P                  RT P                  4        R# i ; i))rf   zRunning setup.py clean for %szpython setup.py clean)command_desccwdTz Failed cleaning build dir for %sF)	r   rx   rk   r   rS   r   r0   r   error)r,   rf   
clean_argss   && r#   r   r      sp    +%J
 KK/:%<#..	
  7Bs   A +BBc               0    V ^8  d   QhRRRRRRRRR	RR
R/# )r   requirementszIterable[InstallRequirement]rG   r   rc   r    rd   re   rf   r   BuildResultr!   )r"   s   "r#   r$   r$     sD     =+ =+.=+=+ =+ 	=+
 =+ =+r%   c                    V '       g   . . 3# \         P                  RRP                  R V  4       4      4       \        4       ;_uu_ 4        . . reV  F  pVP                  '       g   Q h\        Wq4      p\        TTTTTVP                  ;'       d    VP                  4      p	V	'       d   VP                  e   VP                  WP                  4       \        \        V	4      4      Vn        VP                  P                  Vn        VP                  P                   '       g   Q hVP#                  V4       K  VP#                  V4       K  	  RRR4       X'       d?   \         P                  RRP                  V Uu. uF  qwP                  NK  	  up4      4       X'       d?   \         P                  RRP                  V Uu. uF  qwP                  NK  	  up4      4       WV3#   + '       g   i     L; iu upi u upi )zBuild 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   "   T F  qP                   x  K  	  R # 5ir7   )rS   ).0r,   s   & r#   	<genexpr>build.<locals>.<genexpr>#  s     3ls((ls   NzSuccessfully built %s zFailed to build %s)rk   r   r|   r   rS   rM   rq   r1   permit_editable_wheelsdownload_inforecord_download_originr   r   r;   	file_pathlocal_file_pathr/   append)
r   rG   rc   rd   rf   build_successesbuild_failuresr,   rI   
wheel_files
   &&&&&     r#   buildr     s    2v KK4		3l33
 
*,bC888O8&s8I#;;!;!;J $$0  66yBSBSTJ 78&)hh&8&8#xx(((((&&s+%%c*1   
: #HH/:/3hh/:;	
  HH.9.3hh.9:	

 **Q 
@ ;
 :s    AG#)B#G#;G6G;#G3	)F__doc__
__future__r   loggingos.pathrT   rer}   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__rk   compile
IGNORECASEr'   tuplelistr   r)   r4   r8   rE   rM   r`   rq   rn   r   r   r!   r%   r#   <module>r      s    @ "   	  $ O A * K J * , C N J < 2 : K : 6 0 !			8	$zz;R]]KD+,d3E.FFG($@ 
:#LDN"=+r%   