
    dN                       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 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 ddl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) d Z*d Z+ e,ej        -                    d          d                   Z.dZ/d Z0d Z1d#dZ2d Z3d Z4d Z5d Z6d  Z7 G d! d"e          Z8dS )$zI
Create a wheel (.whl) distribution.

A wheel is a built archive format.
    )annotationsN)OrderedDict)BytesGenerator	Generator)EmailPolicy)iglob)BytesIO)rmtree)ZIP_DEFLATED
ZIP_STORED)Command   )__version__)calculate_macosx_platform_tag)pkginfo_to_metadata)log)tagsversion)	WheelFilec                .    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names    M/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/wheel/bdist_wheel.py	safe_namer   $   s     6"C...    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   )str_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\dc                 ,    dt           j        d          S )Npyr   )sysversion_info r    r   
python_tagr/   <   s    % #%%%r    c                    t          j                    }|                    d          r| t          | |          }n|dk    rt          j        dk    rd}|                    dd          S )z0Return our platform name 'win32', 'linux_x86_64'macosxNlinux-x86_64z
linux-i686r   _)	sysconfigget_platform
startswithr   r,   maxsizer(   )archive_rootresults     r   r6   r6   @   sl    #%%F"" |'?.|VDD	>	!	!ckZ&?&?>>#s###r    Tc                    t          j        |           }|3|r/t          j        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 '{}' is unset, Python ABI tag may be incorrect   
stacklevel)r5   get_config_varwarningswarnformatRuntimeWarning)varfallbackexpectedrA   vals        r   get_flagrH   L   sa     
"3
'
'C
{ 	M%vc{{	    (?r    c                    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                     | | | }n| r%|dk    rd| 	                    d          d         z   }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gettotalrefcountrK   )rA   dWITH_PYMALLOC)      mr   r   rL   Nr<   r#   r4   )r5   r?   r   interpreter_namehasattrr,   rH   r-   interpreter_versionsplitjoinr(   )soabiimplrQ   rU   uabis         r   get_abi_tagr_   \   s   $W--E ""D T\))gc<.H.H)J-? @ @PTVVV 	ADL$,<3#3f#<
 
 
 	 ''A<t/11<1<a<<<	 	44<<U[[%%a((	 44<<hhu{{3''+,,kk#s##++C55	 mmC%%--c377Jr    c                H    t          |                               dd          S Nr   r4   )r   r(   r   s    r   
safer_namerb   }   s    T??""3,,,r    c                H    t          |                               dd          S ra   )r)   r(   r   s    r   safer_versionrd      s       ((c222r    c                4    t          | ||d                    d S )Nr   )remove_readonly_exc)funcpathexcinfos      r   remove_readonlyrj      s    dGAJ/////r    c                Z    t          j        |t          j                    | |           d S )N)oschmodstatS_IWRITE)rg   rh   excs      r   rf   rf      s'    HT4=!!!DJJJJJr    c                  L   e Zd ZdZ edefdefg          Zdddd ed          z  fd	d
dddddddd	                    d
                    e                    fddd e            z  fddgZg dZd Zd Zed             Zd Zd Zdez   dz   fdZd  Zed!             Zd" ZdS )#bdist_wheelzcreate a wheel distributionstoreddeflated)z
bdist-dir=bz1temporary directory for creating the distributionz
plat-name=pz;platform name to embed in generated filenames (default: %s)N)	keep-tempkzPkeep the pseudo-installation tree around after creating the distribution archive)z	dist-dir=rQ   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=r]   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=z7Python implementation compatibility tag (default: '%s'))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))rw   ry   rz   r|   c                (   d | _         d | _        d | _        d | _        d| _        d| _        d | _        d | _        d | _        d | _	        d| _
        d | _        d | _        d| _        d| _        t                      | _        d | _        d| _        d| _        d S )NzipFrt   )	bdist_dirdata_dir	plat_nameplat_tagrB   	keep_tempdist_diregginfo_dirroot_is_pure
skip_buildrz   ownergroupr|   compressionr/   build_numberpy_limited_apiplat_name_supplied)selfs    r   initialize_optionszbdist_wheel.initialize_options   s     

%$,, #"'r    c                   | j         ?|                     d          j        }t          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        r6t+          j        t.          | j                  st          dt.          z            | j                            d          }d|v rQt3          j        d           |d         d	                                         }|                                d
v rd| _        | j        0| j        d d	                                         st          d          d S d S )Nbdistwheelz.datazUnsupported compression: )r   r   r   zpy-limited-api must match '%s'r|   z=The [wheel] section is deprecated. Use [bdist_wheel] instead.r   )1trueyesTz1Build tag (build-number) must start with a digit.) r   get_finalized_command
bdist_baserl   rh   rZ   wheel_dist_namer   r   r   supported_compressionsr   KeyError
ValueErrorset_undefined_optionsr~   distributionhas_ext_moduleshas_c_librariesr   r   r   matchPY_LIMITED_API_PATTERNget_option_dictr   warningstriplowerr|   r   isdigit)r   r   need_optionsr   rG   s        r   finalize_optionszbdist_wheel.finalize_options   s   >!33G<<GJW\\*g>>DN,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
  	Xrx"D$7(
 (
 	X =@VVWWW !11'::%KO   $Q'--//Cyy{{222!%(1B2A21F1N1N1P1P(PQQQ )(((s   %A= =#B c                    t          | j                                                  t          | j                                                  f}| j        r|| j        fz  }d                    |          S )z4Return distribution full name with - replaced with _r   )rb   r   get_namerd   get_versionr   rZ   )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    c                (   | j         r| j        n]| j        rdnS| j        r"| j                            d          s| j        nt	          | j                  dv rt          j        dk    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anyr1   )r2   linux_x86_64r3   
linux_i686r   r4   r#   r"   zpy2.py3nonecp3abi3c                .    g | ]}|j         |j        fS r.   )interpreterr^   ).0tr   s     r   
<listcomp>z'bdist_wheel.get_tag.<locals>.<listcomp>I  s1       67y1  r    z'would build wheel with unsupported tag )r   r   r   r7   r6   r   r,   r8   r   r(   r|   r/   r   rV   rX   r   r$   r_   sys_tags)r   r\   tag	impl_nameimpl_verabi_tagsupported_tagsr   s          @r   get_tagzbdist_wheel.get_tag  s    " 	)II 	)II ~ 	9dn&?&?&I&I 	9 N		 )88	 ===K:--(	 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           d                    t=          | j                                                   tC          | j        "                                                    }t          j                            | j        |          }| #                    | j$        |           | %                    |           t          j        &                    | j'                  st          j(        | j'                   t          j                            | j'        |
dz             }tS          |d| j*                  5 }|+                    |           d d d            n# 1 swxY w Y   tY          | 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_rN   ntz..install_purelibinstall_platlibzinstalling to r   install_egg_info)targetr   z{}-{}.dist-infoz.whlw
dist_filesrr   z{}.{}r<   z	removing )rS      )onerror)onexc)5reinitialize_command
executableforceinplacer   run_commandr   rootcompilewarn_dirno_epsetattrrl   rh   rZ   r   r   normpathinstall_libbaseinstall_libr   r   infor   r   rz   _ensure_relativeinstall_baser   rB   rb   r   r   rd   r   egg2distr   write_wheelfileexistsr   makedirsr   r   write_filesgetattrappendr,   r-   r   dry_runr
   rj   rf   )r   r   r   r   r   keybasedir_observedimpl_tagr   r   archive_basenamer9   distinfo_dirnamedistinfo_dir
wheel_pathwfs                   r   runzbdist_wheel.runQ  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,33t(113344$+7799::
 
 w||DN4DEEd&555\*** w~~dm,, 	'K&&&W\\$-1AF1JKK
z3(899 	)RNN<(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	!<44;; 0! 45	
 	
 	
 ~ 	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::M>M>zbdist_wheel ()c                >   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                      }t          |d                              |           t!          |d          5 }|                    |                                                    d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 )maxheaderlenwbs   
   )email.messager   r$   r   r   r   r   rY   rZ   rl   rh   r   r   r	   r   flattenopenwritegetvaluer(   )r   wheelfile_base	generatorr   msgr   r   r   r\   r^   platwheelfile_pathbuffer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>>-^--...vA...66s;;;.$'' 	?1GGFOO%%--gu==>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   	<FFFc                    t           j                            |          \  }}|dd         t           j        k    r||dd          z   }|S )Nr   r   )rl   rh   
splitdrivesep)r   rh   drives      r   r   zbdist_wheel._ensure_relative  sG    g((..t!948#Dr    c           	        t           dk    r| j        j        j        pdS t	                      }| j                            d          }t           dk    r| 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   r.   metadata*   license_filesr   license_filezEThe "license_file" option is deprecated. Use "license_files" instead.r<   r=   )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   rY   r@   rA   DeprecationWarningadd
isinstancelistr   endswithr   debugrl   rh   isfiler   )r   filesr  patternspatternrh   s         r   license_pathszbdist_wheel.license_paths  s   #r))$-;ArA$44Z@@#r))(1?HH (**#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    c                x   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 directoryc                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)rl   rh   r   islinkisdirshutilr
   unlink)rv   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.txtr-  r.   )xys     r   <lambda>z&bdist_wheel.egg2dist.<locals>.<lambda>#  s     % % % r    )ignorezdependency_links.txtzutf-8)encodingMETADATATF)utf8mangle_from_max_line_lengthr   )policy)rl   rh   r   globrZ   dirnamebasenamer   r!  r   mkdirr*  copytreer  readr   r   r   r  r%  copy)r   egginfo_pathdistinfo_pathr,  r<  patpossibleerraltpkginfo_pathpkg_info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>>,'' 	-'L*<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)__name__
__module____qualname__descriptionr   r   r   r   r6   rB   rZ   r/   user_optionsboolean_optionsr   r   propertyr   r   r   wheel_versionr   r   r%  r   r.   r    r   rr   rr      s       /K([
J	*l!;< 
 	Q*l4001	
	
 	LR	

	

	

 	J%%+VDII6L,M,M%N%N		
 ",*,,0	
	
	
g8Lt KJJO( ( (*&R &R &RP $ $ X$6 6 6pXF XF XFv )8-(G#(M? ? ? ?4   * * X*XF F F F Fr    rr   )TT)9__doc__
__future__r   rl   r   r*  rn   r,   r5   r@   collectionsr   email.generatorr   r   email.policyr   r<  r   ior	   r
   zipfiler   r   
setuptoolsr   rN   r   rZ  macosx_libfiler   r  r   utilr   vendored.packagingr   r   r%   	wheelfiler   r   r)   intrY   r  r   r/   r6   rH   r_   rb   rd   rj   rf   rr   r.   r    r   <module>rh     s    # " " " " " 				 				   



      # # # # # # 5 5 5 5 5 5 5 5 $ $ $ $ $ $                   , , , , , , , ,           * * * * * * 9 9 9 9 9 9 ) ) ) ) ) )       $ $ $ $ $ $ = = = = = =            / / /	6 	6 	6 3z5;;C@@CDD ! & & &	$ 	$ 	$      B- - -3 3 30 0 0  
q q q q q' q q q q qr    