
    ϶vg-W                       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
mZmZ ddl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mZ dd
lmZ ddlmZmZm Z  ddl	m!Z! ddl"m"Z# ddl$m%Z% d*dZ&d+dZ' e( ej)        d          d                   Z*dZ+d,dZ,d-dZ-d.dZ.	 d/d0d$Z/d1d%Z0d*d&Z1d+d'Z2 G d( d)e          Z3dS )2zI
Create a wheel (.whl) distribution.

A wheel is a built archive format.
    )annotationsN)IterableSequence)BytesGenerator)iglob)Literalcast)ZIP_DEFLATED
ZIP_STORED)tagsversion)	WheelFile   )Command__version___shutil)SetuptoolsDeprecationWarning   )egg_info)log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    [/var/www/pixelcanvas.ch/venv/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_interpreterr3   8   s    ?31$$r"   c                 *    dt           j        j         S )Npy)sysversion_infomajorr2   r"   r    
python_tagr9   <   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>   r3   r)   )r:   resultr>   s      r    rC   rC   @   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)rB   get_config_varwarningsrJ   RuntimeWarning)rG   rH   rI   rJ   vals        r    get_flagrR   T   s_    
 
"3
'
'C
{ 	MTCTTT   
 (?r"   c                 ,   t          j        d          } t          j                    }| se|dv rat	          t
          d          rLd}d}t          dt	          t
          d          |dk              rd	}| t          j                     | | }n| r;|dk    r5|                     d
          r d| 	                    d          d         z   }nH| rQ|dk    rK|                     d          r6| 	                    d          d         }t	          t
          d          r|d	z  }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gettotalrefcountrU   )rJ   dcpythonr   r   r   rV   Nr   r%   rA   graalpy   )rB   rN   r   interpreter_namehasattrr6   rR   interpreter_versionrD   splitjoinr)   )soabiimplr[   uabis        r    get_abi_tagrh   e   s   )'22E ""D T\))gc<.H.H)J-? @ @PTVVV 	A9t/11919a99	 44<<E$4$4Y$?$?<U[[%%a((	 44<<E$4$4T$:$:<kk#q!3*++ 	3JC	 
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   rA   )r!   r)   r   s    r    
safer_namerk      s    T??""3,,,r"   c                H    t          |                               dd          S rj   )r+   r)   r*   s    r    safer_versionrm      s       ((c222r"   c                  V   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dgZg dZd2dZd2dZd2dZed3d             Zd4d"Zd# Zd$e d%fd5d(Zd6d*Zed7d,            Zd8d/Zd9d1ZdS ):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=rf   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])	universalNz4*DEPRECATED* 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])zdist-info-dir=Nzdirectory where a pre-generated dist-info can be found (e.g. as a result of calling the PEP517 'prepare_metadata_for_build_wheel' method))ru   rw   rx   rz   r   Nonec                6   d | _         d| _        d | _        d | _        d| _        d| _        d | _        d | _        d | _        d | _	        d| _
        d| _        d | _        d | _        d| _        d| _        t!                      | _        d | _        d| _        d| _        d S )NrX   zipFrq   )	bdist_dirdata_dir	plat_nameplat_tagformat	keep_tempdist_dirdist_info_diregginfo_dirroot_is_pure
skip_buildrx   ownergrouprz   compressionr9   build_numberpy_limited_apiplat_name_suppliedselfs    r    initialize_optionszbdist_wheel.initialize_options   s    %)%)$($(!'+)-

&0$,,(,49"'r"   c                   | j         s?|                     d          j        }t          j                            |d          | _         | j        At          t          | j	        
                    d                    }|                                 | j        dz   | _        t          | j                  | _        d} | j        dgt%          ||          R   | j	                                        p| j	                                         | _        |                                  | j	                            d          }d|v rQt1          j        d           |d         d                                         }|                                d	v rd
| _        | j        rt;          j        ddd           | j        0| j        d d                                          stC          d          d S d S )Nbdistwheelr   z.data)r   r   r   rz   z=The [wheel] section is deprecated. Use [bdist_wheel] instead.r   )1trueyesTz#bdist_wheel.universal is deprecatedaj  
                With Python 2.7 end-of-life, support for building universal wheels
                (i.e., wheels that support both Python 2 and Python 3)
                is being obviated.
                Please discontinue using this option, or if you still need it,
                file an issue with pypa/setuptools describing your use case.
                )i        )due_datez1Build tag (build-number) must start with a digit.)"r~   get_finalized_command
bdist_baseospathrc   r   r	   egg_info_clsdistributionget_command_objensure_finalizedwheel_dist_namer   r,   r   r   set_undefined_optionsr}   has_ext_moduleshas_c_librariesr   _validate_py_limited_apiget_option_dictr   rJ   striplowerrz   r   emitr   isdigit
ValueError)r   r   r   need_optionsr   rQ   s         r    finalize_optionszbdist_wheel.finalize_options   s   ~ 	?33G<<GJW\\*g>>DN%L$*;*K*KJ*W*WXXH%%''',w6"&t~"6"6>""7MS|-L-LMMMM --//V43D3T3T3V3V
 	%%''' !11'::%HTUUU$Q'--//Cyy{{222!%> 	(-5 '
 
 
 
 (1B2A21F1N1N1P1P(PQQQ )(((r"   c                    | j         sd S t          j        t          | j                   st	          dt           d          t          j        d          r%t	          d| j         dt          j        d          d S )Nzpy-limited-api must match ''Py_GIL_DISABLEDz`py_limited_api=za` not supported. `Py_LIMITED_API` is currently incompatible with `Py_GIL_DISABLED` (sys.abiflags=z7). See https://github.com/python/cpython/issues/111506.)	r   r   matchPY_LIMITED_API_PATTERNr   rB   rN   r6   abiflagsr   s    r    r   z$bdist_wheel._validate_py_limited_api   s    " 	Fx.0CDD 	VT;QTTTUUU#$566 	G4#6 G G&)lG G G  	 	r"   r   c                   t          | j                                                  t          | j                                                  g}| j        r|                    | j                   d                    |          S )z4Return distribution full name with - replaced with _r   )rk   r   get_namerm   get_versionr   appendrc   )r   
componentss     r    r   zbdist_wheel.wheel_dist_name/  su     t(113344$+7799::

  	1d/000xx
###r"   tuple[str, str, str]c                >   | j         r| j        r| 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)r@   linux_aarch64linux_armv7lr   rA   r%   r$   zpy2.py3nonecp3abi3c                .    g | ]}|j         |j        fS r2   )interpreterrg   ).0tr   s     r    
<listcomp>z'bdist_wheel.get_tag.<locals>.<listcomp>l  s1       67y1  r"   z'would build wheel with unsupported tag )r   r   r   rD   rC   r~   r3   r   r)   rz   r9   r   r_   ra   r   r   rh   sys_tags)r   re   tag	impl_nameimpl_verabi_tagsupported_tagsr   s          @r    get_tagzbdist_wheel.get_tag:  s    " 	/t~ 	/II 	/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           	        |                      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"        rPt+          j#        d| j"                    tI          j%        | j"        |           tM          j'        | j(                   n| )                    | j(        |           | *                    |           t          j        +                    | j,                  st          j-        | j,                   t          j                            | j,        |
dz             }t]          |d| /                                          5 }|0                    |           d d d            n# 1 swxY w Y   tc          | j        dg           2                    dtf          j4        j5         dtf          j4        j6         |f           | j7        s>t+          j        d| j                    | j8        stM          j'        | j                   d S d S d S )Nbuild_scriptspythonT	build_extFbuildinstall)reinit_subcommandsinstall_scripts)headersscriptsdatapurelibplatlibinstall_rX   ntz..install_purelibinstall_platlibzinstalling to r   install_egg_info)targetr   z
.dist-infozreusing z.whlw
dist_filesro   r%   z	removing )9reinitialize_command
executableforceinplacer   run_commandr~   rootcompilewarn_dirno_epsetattrr   r   rc   r   r   normpathinstall_libbaseinstall_libr   r   infor   r   rx   _ensure_relativeinstall_baser   rk   r   r   rm   r   r   debugshutilcopytreer   rmtreer   egg2distwrite_wheelfileexistsr   makedirsr   _zip_compressionwrite_filesgetattrr   r6   r7   r8   minorr   dry_run)r   r   r   r   r   keybasedir_observedimpl_tagr   r   archive_basenamer:   distinfo_dirnamedistinfo_dir
wheel_pathwfs                   r    runzbdist_wheel.runt  s   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 		:I5!355666OD.=== N4+,,,, MM$*L999\*** w~~dm,, 	'K&&&W\\$-1AF1JKK
z3(=(=(?(?@@ 	)BNN<(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	!<44;;%@@(8(>@@=
 	 	 	 ~ 	/H111222< /t~.....	/ 	// /s   .OOOzsetuptools ()wheelfile_base	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-Version	GeneratorzRoot-Is-PurelibBuildr%   r   TagWHEELz	creating wb)maxheaderlen)email.messager  r   r   r   r   r   rb   rc   r   r   r   r   openr   flatten)r   r  r  r  msgr  r   r   re   rg   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r   c                    t           j                            |          \  }}|dd         t           j        k    r||dd          z   }|S )Nr   r   )r   r   
splitdrivesep)r   r   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   r2   metadata*   license_filesr   license_filezEThe "license_file" option is deprecated. Use "license_files" instead.r   rL   )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   rb   rO   rJ   DeprecationWarningadd
isinstancelistr   endswithr   r   r   r   isfiler   )r   filesr%  patternspatternr   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                8   dd} ||           t           j                            |          sddl}t           j                            t           j                            |          d          }|                    |          }d	| d
}|r.t           j                            |d                   }|d| dz  }t          |          t           j                            |d          }	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          j        |	|           | j        D ]T}t           j                            |          }t          j        |t           j                            ||                     U ||           dS )z:Convert an .egg-info directory into a .dist-info directoryrs   r   r   r{   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   r   r   islinkisdirr   r   unlink)rs   s    r    adiosz#bdist_wheel.egg2dist.<locals>.adios!  s    w~~a   ):): rw}}Q?O?O q!!!!!"" 	! 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.txtr>  r2   )xys     r    <lambda>z&bdist_wheel.egg2dist.<locals>.<lambda>A  s     ! ! ! r"   )ignorezdependency_links.txtzutf-8)encodingMETADATA)rs   r   r   r{   )r   r   r   globrc   dirnamebasenamer   r   r   r  readr   copyr5  )r   r6  r7  r=  rI  patpossibleerraltpkginfo_pathdependency_links_pathdependency_links_filedependency_linksmetadata_pathlicense_pathfilenames                   r    r   zbdist_wheel.egg2dist  sc   	 	 	 	 	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//! w||L*== 	 		
 		
 		
 		
 !#]<R S S''::: 	D>S499;;AACC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	)E'(((]J??L-000 . 	M 	MLw''55HKbgll=(&K&KLLLLls   3'E&&E*-E*intc                   t          | j        t                    r'| j        | j                                        v r| j        S | j                            t          | j                            }||S t          d| j                  )NzUnsupported compression: )r.  r   rY  supported_compressionsvaluesgetr   r   )r   r   s     r    r   zbdist_wheel._zip_compressionY  s    t'--	$ D$?$F$F$H$HHH##155c$:J6K6KLL"IT5EIIJJJr"   )r   r{   r   r   )r   r   )r  r   r  r   r   r{   )r   r   r   r   )r   r"  )r6  r   r7  r   r   r{   )r   rY  )__name__
__module____qualname__descriptionr   r
   r[  rC   r   rc   r9   user_optionsboolean_optionsr   r   r   propertyr   r   r  r   r   r   r5  r   r   r2   r"   r    ro   ro      s       /K    	Q/%d++/ / /	
	
 	LR	

	

	

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

	
	

	
q?LB KJJO( ( ( (,-R -R -R -R^    $ $ $ X$8 8 8 8t\/ \/ \/~ 5R;4Q4Q4Q; ; ; ; ;0    * * * X*X9 9 9 9vK K K K K Kr"   ro   )r   r   r   r   )r   r   r   r   )r   r,   r^  )r:   r;   r   r   )TT)
rG   r   rH   r,   rI   r,   rJ   r,   r   r,   )r   r;   )4__doc__
__future__r   r   r   r   r0   r6   rB   rO   collections.abcr   r   email.generatorr   rI  r   typingr   r	   zipfiler
   r   	packagingr   r   r&   wheel.wheelfiler   rX   r   r   r   r   r   r   	distutilsr   r!   r+   rY  rb   r*  r   r3   r9   rC   rR   rh   rk   rm   ro   r2   r"   r    <module>ro     s    # " " " " " 				 				   



      . . . . . . . . * * * * * *                       , , , , , , , , 9 9 9 9 9 9 9 9 % % % % % % , , , , , , , , , , 3 3 3 3 3 3 . . . . . .      / / / /	6 	6 	6 	6 30{055a899 ! % % % %) ) ) )$ $ $ $* CG    "       F- - - -3 3 3 3TK TK TK TK TK' TK TK TK TK TKr"   