
    7fS                       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	Z	ddl
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mZmZ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) erddl*Z*d4dZ+d5dZ, e- e!j.        d          d                   Z/dZ0d6dZ1d7dZ2d8dZ3	 d9d:d$Z4d;d%Z5d4d&Z6d5d'Z7d<d.Z8d=d1Z9 G d2 d3e           Z:dS )>zI
Create a wheel (.whl) distribution.

A wheel is a built archive format.
    )annotationsN)BytesGenerator	Generator)EmailPolicy)log)iglob)rmtree)TYPE_CHECKINGCallableIterableLiteralSequencecast)ZIP_DEFLATED
ZIP_STORED   )Command__version__)pkginfo_to_metadata)tagsversion)	WheelFilenamestrreturnc                .    t          j        dd|           S )zConvert an arbitrary string to a standard distribution name
    Any runs of non-alphanumeric/. characters are replaced with a single '-'.
    [^A-Za-z0-9.]+-)resubr   s    \/home/feoh/.local/pipx/shared/lib/python3.11/site-packages/setuptools/command/bdist_wheel.py	safe_namer$   #   s     6"C...    r   c                    	 t          t          j        |                     S # t          j        $ r/ |                     dd          } t          j        dd|           cY S w xY w)zB
    Convert an arbitrary string to a standard version string
     .r   r   )r   _packaging_versionVersionInvalidVersionreplacer    r!   r   s    r#   safe_versionr-   *   sm    6%-g66777, 6 6 6//#s++v&W555556s    # ;A! A!r(   zcp3\dboolc                 2    t          j        d          dk    S )NP   )structcalcsize r%   r#   _is_32bit_interpreterr5   ;   s    ?31$$r%   c                 ,    dt           j        d          S )Npyr   )sysversion_infor4   r%   r#   
python_tagr:   ?   s    % #%%%r%   archive_root
str | Nonec                    t          j                    }|                    d          r| ddlm}  || |          }nt                      r|dk    rd}n|dk    rd}|                    d	d
          S )z0Return our platform name 'win32', 'linux_x86_64'macosxNr   )calculate_macosx_platform_taglinux-x86_64z
linux-i686linux-aarch64zlinux-armv7lr   _)	sysconfigget_platform
startswithwheel.macosx_libfiler?   r5   r,   )r;   resultr?   s      r#   rD   rD   C   s    #%%F"" $|'?FFFFFF..|VDD		 	  $^##!FF&& $F>>#s###r%   Tvarfallbackexpectedwarnc                    t          j        |           }|$|r t          j        d|  dt          d           |S ||k    S )zfUse a fallback value for determining SOABI flags if the needed config
    var is unset or unavailable.NzConfig variable 'z+' is unset, Python ABI tag may be incorrectr   
stacklevel)rC   get_config_varwarningsrK   RuntimeWarning)rH   rI   rJ   rK   vals        r#   get_flagrS   W   s_    
 
"3
'
'C
{ 	MTCTTT   
 (?r%   c                 x   t          j        d          } t          j                    }| s|dv rt	          t
          d          rd}d}d}t          dt	          t
          d          |dk              rd	}t          d
|dk    |dk    ot
          j        dk               rt
          j        dk     rd}| t          j                     | | | }nk| r;|dk    r5| 	                    d          r d| 
                    d          d         z   }n.| r7|dk    r1| 	                    d          r| 
                    d          d         }n| ra|dk    r[d                    | 
                    d          dd                   }|                    dd                              dd          }n| ra|dk    r[d                    | 
                    d          dd                   }|                    dd                              dd          }n/| r+|                     dd                              dd          }nd}|S )zJReturn the ABI tag based on SOABI (if available) or emulate SOABI (PyPy2).SOABI)cppp
maxunicode Py_DEBUGgettotalrefcountrV   )rK   dWITH_PYMALLOC)      mcpythonr      r   rW   Nr   r(   rB   graalpyr^   )rC   rO   r   interpreter_namehasattrr8   rS   r9   interpreter_versionrE   splitjoinr,   )soabiimplr\   r`   uabis         r#   get_abi_tagrm   h   sX   )'22E ""D T\))gc<.H.H)J-? @ @PTVVV 	ADL$,<3#3f#<
 
 
 	 ''A<t/11<1<a<<<	 44<<E$4$4Y$?$?<U[[%%a((	 44<<E$4$4T$:$:<kk#q!	 
44<<hhu{{3''+,,kk#s##++C55	 49$$hhu{{3''+,,kk#s##++C55	 mmC%%--c377Jr%   c                H    t          |                               dd          S Nr   rB   )r$   r,   r"   s    r#   
safer_namerp      s    T??""3,,,r%   c                H    t          |                               dd          S ro   )r-   r,   r   s    r#   safer_versionrr      s       ((c222r%   funcCallable[..., object]pathexcinfo6tuple[type[Exception], Exception, types.TracebackType]Nonec                4    t          | ||d                    d S )Nrb   )remove_readonly_exc)rs   ru   rv   s      r#   remove_readonlyr{      s     
 dGAJ/////r%   exc	Exceptionc                Z    t          j        |t          j                    | |           d S )N)oschmodstatS_IWRITE)rs   ru   r|   s      r#   rz   rz      s'    HT4=!!!DJJJJJr%   c                  @   e Zd ZdZeedZdddd ed           dfd	d
dddddddd                    d	                    e                    fddd e
             dfddgZg dZd.dZd Zed             Zd/dZd  Zd!e d"fd0d&Zd1d(Zed2d*            Zd3d-ZdS )4bdist_wheelzcreate a wheel distribution)storeddeflated)z
bdist-dir=bz1temporary directory for creating the distributionz
plat-name=pz8platform name to embed in generated filenames [default: N])	keep-tempkzPkeep the pseudo-installation tree around after creating the distribution archive)z	dist-dir=r\   z-directory to put final built distributions in)
skip-buildNz2skip rebuilding everything (for testing/debugging))relativeNz7build the archive using relative paths [default: false])zowner=rk   z@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])	universalNz'make a universal wheel [default: false]zcompression=z6zipfile compression (one of: {}) [default: 'deflated']z, zpython-tag=z3Python implementation compatibility tag [default: 'z'])zbuild-number=NzqBuild number for this particular version. As specified in PEP-0427, this must start with a digit. [default: None])zpy-limited-api=Nz?Python tag (cp32|cp33|cpNN) for abi3 wheel tag [default: false])r   r   r   r   r   rx   c                (   d | _         d | _        d | _        d | _        d| _        d| _        d | _        d | _        d | _        d | _	        d| _
        d | _        d | _        d| _        d| _        t                      | _        d | _        d| _        d| _        d S )NzipFr   )	bdist_dirdata_dir	plat_nameplat_tagformat	keep_tempdist_diregginfo_dirroot_is_pure
skip_buildr   ownergroupr   compressionr:   build_numberpy_limited_apiplat_name_supplied)selfs    r#   initialize_optionszbdist_wheel.initialize_options   s    %)%)$()-

$&0)||(,49"'r%   c                   | j         ?|                     d          j        }t          j                            |d          | _         | j                            d          }|                                 | j	        dz   | _
        | j        d u| _        	 | j        | j                 | _        n&# t          $ r t!          d| j                   d w xY wd} | j        dgt%          ||          R   | j                                        p| j                                         | _        | j        r7t/          j        t2          | j                  st!          dt2           d          | j                            d          }d	|v rQt7          j        d
           |d	         d                                         }|                                dv rd| _        | j         0| j         d d         !                                st!          d          d S d S )Nbdistwheelegg_infoz.datazUnsupported compression: )r   r   r   zpy-limited-api must match ''r   z=The [wheel] section is deprecated. Use [bdist_wheel] instead.rb   )1trueyesTz1Build tag (build-number) must start with a digit.)"r   get_finalized_command
bdist_baser   ru   rh   distributionget_command_objensure_finalizedwheel_dist_namer   r   r   supported_compressionsr   KeyError
ValueErrorset_undefined_optionsr   has_ext_moduleshas_c_librariesr   r   r    matchPY_LIMITED_API_PATTERNget_option_dictr   rK   striplowerr   r   isdigit)r   r   r   need_optionsr   rR   s         r#   finalize_optionszbdist_wheel.finalize_options   s'   >!33G<<GJW\\*g>>DN$44Z@@!!###,w6"&."<	W#:4;KLD 	W 	W 	WK9IKKLLRVV	W ?""7MS|-L-LMMMM --//V43D3T3T3V3V
  	Vrx"D$7(
 (
 	V T;QTTTUUU !11'::%HTUUU$Q'--//Cyy{{222!%(1B2A21F1N1N1P1P(PQQQ )(((s   B+ +#Cc                    t          | j                                                  t          | j                                                  f}| j        r|| j        fz  }d                    |          S )z4Return distribution full name with - replaced with _r   )rp   r   get_namerr   get_versionr   rh   )r   
componentss     r#   r   zbdist_wheel.wheel_dist_name'  sn     t(113344$+7799::

  	/4,..Jxx
###r%   tuple[str, str, str]c                V   | j         rt          t          | j                  na| j        rdnW| j        r"| j                            d          s| j        nt          | j                  t                      rdv rddv rd	                                
                    dd          
                    d	d          
                    d
d          | j        r| j        rd}n| j        }|df}nt          j                    }t          j                    }||z   }| j        r"||z                       d          r
| j        }d}n-t          t#                                	                                }||f}fdt          j                    D             }||v sJ d|             |S )Nanyr>   )r@   linux_x86_64
linux_i686)rA   linux_aarch64linux_armv7lr   rB   r(   r'   zpy2.py3nonecp3abi3c                .    g | ]}|j         |j        fS r4   )interpreterrl   ).0tr   s     r#   
<listcomp>z'bdist_wheel.get_tag.<locals>.<listcomp>d  s1       67y1  r%   z'would build wheel with unsupported tag )r   r   r   r   r   rE   rD   r   r5   r   r,   r   r:   r   rd   rf   r   rm   sys_tags)r   rj   tag	impl_nameimpl_verabi_tagsupported_tagsr   s          @r#   get_tagzbdist_wheel.get_tag2  s    " 	/S$.11II 	/II ~ 	9dn&?&?&I&I 	9 N		 )88	$&& / @@@ ,I BBB !/I OO%%c3//77SAAII#sSS 	  	?~ ' +CC-//I/11Hx'D" 5	H(<'H'H'O'O 5* kmm,,2244),C   ;?=??  N ~%%%>>> &%%
r%   c           	     j   |                      d          }d|_        d|_        |                      d          }d|_        | j        s|                     d           |                      dd          }| j        |_        d|_        | j        |_        d|_	        |                      d	          }d|_
        d
D ]9}t          |d|z   t          j                            | j        |                     :d}t          j        dk    rPt          j                            t          j                            | j        d                    }|x| _        | _        t          || j        rdnd|           t+          j        d| j                    |                     d           |                                 \  }}}	| j         d| d| d|	 }
| j        s| j        }n=t          j                            | j        |                     |j                            }|                     dd           t;          | j                                                   dtA          | j        !                                           d}t          j                            | j        |          }| "                    | j#        |           | $                    |           t          j        %                    | j&                  st          j'        | j&                   t          j                            | j&        |
dz             }tQ          |d| j)                  5 }|*                    |           d d d            n# 1 swxY w Y   tW          | j        dg           ,                    d dj-        t\          j/        d d          |f           | j0        smt+          j        d| j                    | j1        sLt\          j/        dk     rte          | j        tf                     d S te          | j        th                     d S d S d S ) Nbuild_scriptspythonT	build_extFbuildinstall)reinit_subcommandsinstall_scripts)headersscriptsdatapurelibplatlibinstall_rY   ntz..install_purelibinstall_platlibzinstalling to r   install_egg_info)targetr   z
.dist-infoz.whlw
dist_filesr   z{}.{}r   z	removing )r^      )onerror)onexc)5reinitialize_command
executableforceinplacer   run_commandr   rootcompilewarn_dirno_epsetattrr   ru   rh   r   r   normpathinstall_libbaseinstall_libr   r   infor   r   r   _ensure_relativeinstall_baser   rp   r   r   rr   r   egg2distr   write_wheelfileexistsr   makedirsr   r   write_filesgetattrappendr   r8   r9   r   dry_runr	   r{   rz   )r   r   r   r   r   keybasedir_observedimpl_tagr   r   archive_basenamer;   distinfo_dirnamedistinfo_dir
wheel_pathwfs                   r#   runzbdist_wheel.runl  sk   11/BB#+ "--k::	!	 	&W%%%++I$+OO~!_ 
 334EFF $ H 	Q 	QCGZ#-rw||DM3/O/OPPPP7d??  "w//T]D0Q0QRR6FFD 4#3!%!2I8I	
 	
 	
 	2$.22333###&*llnn#'8"2TTXTTTT(TT} 	>LL7<< 5 5g6J K K L 	""#57PQQQ$+446677 J JT.::<<==J J J 	 w||DN4DEEd&555\*** w~~dm,, 	'K&&&W\\$-1AF1JKK
z3(899 	)RNN<(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	!<44;;GNC,RaR01=
 	 	 	 ~ 	FH111222< F#g--4>?CCCCCC4>1DEEEEEE	F 	FF Fs   
M,,M03M0zsetuptools ()wheelfile_baser   	generatorc                   ddl m}  |            }d|d<   ||d<   t          | j                                                  |d<   | j        
| j        |d<   |                                 \  }}}|                    d          D ]M}|                    d          D ]5}	|                    d          D ]}
d	                    ||	|
f          |d
<   6Nt          j
                            |d          }t          j        d|            t          |d          5 }t          |d                              |           d d d            d S # 1 swxY w Y   d S )Nr   )Messagez1.0zWheel-Versionr   zRoot-Is-PurelibBuildr(   r   TagWHEELz	creating wb)maxheaderlen)email.messager  r   r   r   r   r   rg   rh   r   ru   r   r   openr   flatten)r   r  r  r  msgr  r   r   rj   rl   platwheelfile_pathfs                r#   r  zbdist_wheel.write_wheelfile  s    	*)))))gii$O$K!$T%6!7!7!=!=!?!?(,CL '+llnn#'8NN3'' 	= 	=D}}S)) = =$NN3// = =D!$4d*;!<!<CJJ== ng>>-^--....$'' 	;111---55c:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   %E		EEru   c                    t           j                            |          \  }}|dd         t           j        k    r||dd          z   }|S )Nr   rb   )r   ru   
splitdrivesep)r   ru   drives      r#   r   zbdist_wheel._ensure_relative  sG    g((..t!948#Dr%   Iterable[str]c           	     >   t           dk    r| j        j        j        pdS t	                      }| j                            d          }t           dk    r0t          t          t                   | j        j        j                  }n'd|v r!|d         d         	                                }nd}d|v r=t          j        dt          d	
           |                    |d         d                    |s|st          |t                    sd}|D ]}t!          |          D ]}|                    d          rt%          j        d| d           0||vrOt(          j                            |          r0t%          j        d| d| d           |                    |           |S )N9   r4   metadata*   license_filesrb   license_filezEThe "license_file" option is deprecated. Use "license_files" instead.r   rM   )zLICEN[CS]E*zCOPYING*zNOTICE*zAUTHORS*~zignoring license file "z" as it looks like a backupzadding license file "z" (matched pattern "z"))setuptools_major_versionr   r+  r-  setr   r   r   r   rg   rP   rK   DeprecationWarningadd
isinstancelistr   endswithr   debugr   ru   isfiler   )r   filesr+  patternspatternru   s         r#   license_pathszbdist_wheel.license_paths  s   #r))$-;ArA%%$44Z@@#r))HSM4+<+E+STTHH (**#O4Q7==??X%%MW"   
 IIh~.q1222 	JX 	Jj4.H.H 	JIH 	$ 	$Gg $ $==%% IS$SSS   u$$)=)=$HUUU'UUU   IIdOOO$ r%   egginfo_pathdistinfo_pathc                v   dd} ||           t           j                            |          sddl}t           j                            t           j                            |          d          }|                    |          }d	| d
}|r.t           j                            |d                   }|d| dz  }t          |          t           j                            |          r%t          ||          }	t          j
        |           nt           j                            |d          }
t          ||
          }	t          j        ||d            t           j                            |d          }t          |d          5 }|                                                                }ddd           n# 1 swxY w Y   |s ||           t           j                            |d          }t!          ddd          }t          |dd          5 }t#          ||                              |	           ddd           n# 1 swxY w Y   | j        D ]T}t           j                            |          }t          j        |t           j                            ||                     U ||           dS )z:Convert an .egg-info directory into a .dist-info directoryr   r   r   rx   c                V   t           j                            |           rTt           j                            |           s5t           j                            |           rt          j        |            dS t           j                            |           rt          j        |            dS dS )z-Appropriately delete directory, file or link.N)r   ru   r  islinkisdirshutilr	   unlink)r   s    r#   adiosz#bdist_wheel.egg2dist.<locals>.adios  s    w~~a   ):): rw}}Q?O?O a     "" 	! r%   r   Nz
*.egg-infozEgg metadata expected at z but not foundz (z) found - possible misnamed archive file?)PKG-INFOc                
    h dS )N>   SOURCES.txtnot-zip-saferequires.txtrF  r4   )xys     r#   <lambda>z&bdist_wheel.egg2dist.<locals>.<lambda>9  s     % % % r%   )ignorezdependency_links.txtzutf-8)encodingMETADATATF)utf8mangle_from_max_line_lengthr   )policy)r   r   r   rx   )r   ru   r  globrh   dirnamebasenamer   r8  r   mkdirrC  copytreer  readr   r   r   r  r<  copy)r   r=  r>  rE  rU  patpossibleerraltpkg_infopkginfo_pathdependency_links_pathdependency_links_filedependency_linkspkg_info_pathserialization_policyoutlicense_pathfilenames                      r#   r  zbdist_wheel.egg2dist  sS   	 	 	 	 	mw~~l++ 	"
 KKK',,rw|<<lKKCyy~~HJlJJJC Kg&&x{33JCJJJJS//!7>>,'' 	-*<FFHH]#### 7<<jAAL*<FFH O 	 	 	 	 %'GLL@V$W$W!+g>>> HBW#8#=#=#?#?#E#E#G#G H H H H H H H H H H H H H H H# -+,,,]J??* 
  
  

 -w777 	J3c"6777??III	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J !. 	M 	MLw''55HKbgll=(&K&KLLLLls$   'F::F>F>%III)r   rx   )r   r   )r  r   r  r   r   rx   )ru   r   r   r   )r   r(  )r=  r   r>  r   r   rx   )__name__
__module____qualname__descriptionr   r   r   rD   r   rh   r:   user_optionsboolean_optionsr   r   propertyr   r   r  r   r  r   r<  r  r4   r%   r#   r   r      s       /K    	Q/%d++/ / /	
	
 	LR	

	

	

 	GDKK		011 	
 R**,,RRR	

	
	
g8Lt KJJO( ( ( (*'R 'R 'RR $ $ X$8 8 8 8tVF VF VFr 5R;4Q4Q4Q; ; ; ; ;0    * * * X*XE E E E E Er%   r   )r   r   r   r   )r   r   r   r   )r   r.   )r   r   )r;   r<   r   r   )TT)
rH   r   rI   r.   rJ   r.   rK   r.   r   r.   )r   r<   )rs   rt   ru   r   rv   rw   r   rx   )rs   rt   ru   r   r|   r}   r   rx   );__doc__
__future__r   r   r    rC  r   r2   r8   rC   rP   email.generatorr   r   email.policyr   	distutilsr   rU  r   r	   typingr
   r   r   r   r   r   zipfiler   r   rY   r   r   wheel.metadatar   	packagingr   r   r)   wheel.wheelfiler   typesr$   r-   intrg   r0  r   r5   r:   rD   rS   rm   rp   rr   r{   rz   r   r4   r%   r#   <module>r}     s    # " " " " " 				 				    



      5 5 5 5 5 5 5 5 $ $ $ $ $ $                   M M M M M M M M M M M M M M M M , , , , , , , , # # # # # # # # . . . . . .       3 3 3 3 3 3 % % % % % % LLL/ / / /	6 	6 	6 	6 30{055a899 ! % % % %& & & &$ $ $ $* CG    "% % % %P- - - -3 3 3 30 0 0 0   
p p p p p' p p p p pr%   