shell bypass 403

GrazzMean Shell

: /lib/python2.7/site-packages/distlib/ [ drwxr-xr-x ]
Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.15.145.231
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : wheel.pyc
�
���cc@s�ddlmZddlZddlZddlZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZmZddlmZmZmZmZmZddlmZddlmZmZmZm Z dd	l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+dd
l,m-Z-m.Z.e	j/e0�Z1e2a3e4ed�r�dZ5n9ej6j7d
�r�dZ5nej6dkr�dZ5ndZ5ej8d�Z9e9rdej:d Z9nde9Z;e5e9Z<e+�j=dd�j=dd�Z>ej8d�Z?e?one?j7d�r�e?j=dd�j@d�dZ?nd�ZAeA�Z?[AejBdejCejDB�ZEejBdejCejDB�ZFejBd�ZGejBd �ZHd!ZId"ZJe
jKd#kr%d$�ZLn	d%�ZLej:dd&krPddlMZMne2ZMddlNZOddlPZOd'�ZQd(�ZRd)eSfd*��YZTeT�ZUd+eSfd,��YZVd-�ZWd.�ZXeX�ZY[Xe2d/�ZZdS(0i����(tunicode_literalsN(tmessage_from_filei(t__version__tDistlibException(t	sysconfigtZipFiletfsdecodet	text_typetfilter(tInstalledDistribution(tMetadatatMETADATA_FILENAMEtWHEEL_METADATA_FILENAMEtLEGACY_METADATA_FILENAME(
tFileOperatortconvert_patht	CSVReadert	CSVWritertCachetcached_propertytget_cache_basetread_exportsttempdirtget_platform(tNormalizedVersiontUnsupportedVersionErrorupypy_version_infouppujavaujyucliuipucpupy_version_nodotu%s%siupyu-u_u.uSOABIucpython-icCs�dtg}tjd�r+|jd�ntdkr�tjd }|dkr�tjd�}|dkrtt}n|r�|jd�n|dkr�tjd	�}|d
ks�|dkr�tj	dkr�|jd�q�q�q�nd
j
|�S(NucpuPy_DEBUGudiiiu
WITH_PYMALLOCumuPy_UNICODE_SIZEii��uuu(ii(ii(t
VER_SUFFIXRtget_config_vartappendt
IMP_PREFIXtsystversion_infotNonetTruet
maxunicodetjoin(tpartstvitwpmtus((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt_derive_abi;s 
	'uz
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?
-(?P<py>\w+\d+(\.\w+\d+)*)
-(?P<bi>\w+)
-(?P<ar>\w+(\.\w+)*)
\.whl$
u7
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?$
s
\s*#![^\r\n]*s^(\s*#!("[^"]+"|\S+))\s+(.*)$s#!pythons	#!pythonwu/cCs|S(N((to((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt<lambda>etcCs|jtjd�S(Nu/(treplacetostsep(R)((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyR*gR+icCs5tr'gtj�D]}|d^qStjjSdS(Ni(timptget_suffixest	importlibt	machinerytEXTENSION_SUFFIXES(ts((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt
_get_suffixesps!cCsbtrtj||�Stjj||�}tjj|�}|tj|<|jj	|�|SdS(N(
R/tload_dynamicR1tutiltspec_from_file_locationtmodule_from_specRtmodulestloadertexec_module(tnametpathtspectmodule((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt
_load_dynamicvs
tMountercBs8eZd�Zd�Zd�Zdd�Zd�ZRS(cCsi|_i|_dS(N(t
impure_wheelstlibs(tself((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt__init__�s	cCs!||j|<|jj|�dS(N(RCRDtupdate(REtpathnamet
extensions((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytadd�s
cCsI|jj|�}x0|D](\}}||jkr|j|=qqWdS(N(RCtpopRD(RERHRItktv((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytremove�scCs"||jkr|}nd}|S(N(RDR (REtfullnameR>tresult((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytfind_module�s	cCs�|tjkrtj|}nu||jkrAtd|��nt||j|�}||_|jdd�}t|�dkr�|d|_n|S(Nuunable to find extension for %su.ii(	RR:RDtImportErrorRAt
__loader__trsplittlent__package__(RERORPR$((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytload_module�s	N(t__name__t
__module__RFRJRNR RQRW(((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRB�s
			tWheelcBseZdZdZdZdeed�Zed��Z	ed��Z
ed��Zed��Z
d�Zed	��Zd
�Zdd�Zd�Zd
�Zd�Zddd�Zd�Zd�Zd�Zd�Zd�Zd�Zed�Zd�Zd�Zdd�ZRS(u@
    Class to build and install from Wheel files (PEP 427).
    iusha256cCs�||_||_d|_tg|_dg|_dg|_tj�|_	|dkr{d|_d|_|j
|_nEtj|�}|r�|jd�}|d|_|djdd	�|_|d
|_|j
|_n�tjj|�\}}tj|�}|s!td|��n|r?tjj|�|_	n||_|jd�}|d|_|d|_|d
|_|djd
�|_|djd
�|_|djd
�|_dS(uB
        Initialise an instance using a (valid) filename.
        uunoneuanyudummyu0.1unmuvnu_u-ubnuInvalid name or filename: %rupyu.ubiuarN(tsignt
should_verifytbuildvertPYVERtpyvertabitarchR-tgetcwdtdirnameR R=tversiontfilenamet	_filenametNAME_VERSION_REtmatcht	groupdictR,R>tsplittFILENAME_RERtabspath(REReR[tverifytmtinfoRc((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRF�sB					


	


cCs�|jrd|j}nd}dj|j�}dj|j�}dj|j�}|jjdd�}d|j|||||fS(uJ
        Build and return a filename from the various components.
        u-uu.u_u%s-%s%s-%s-%s-%s.whl(R]R#R_R`RaRdR,R=(RER]R_R`RaRd((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRe�s	cCs+tjj|j|j�}tjj|�S(N(R-R>R#RcRetisfile(RER>((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytexists�sccsNxG|jD]<}x3|jD](}x|jD]}|||fVq*WqWq
WdS(N(R_R`Ra(RER_R`Ra((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyttags�scCs\tjj|j|j�}d|j|jf}d|}tjd�}t	|d���}|j
|�}|djdd�}tg|D]}t
|�^q��}	ttg}
d}xu|
D]m}yStj||�}
|j|
��,}||�}td|�}|rPnWdQXWq�tk
r+q�Xq�W|sRtd	d
j|
���nWdQX|S(Nu%s-%su%s.dist-infouutf-8uru
Wheel-Versionu.itfileobju8Invalid wheel, because metadata is missing: looked in %su, (R-R>R#RcReR=Rdtcodecst	getreaderRtget_wheel_metadataRjttupletintRR
R t	posixpathtopenR
tKeyErrort
ValueError(RERHtname_vertinfo_dirtwrappertzftwheel_metadatatwvtitfile_versiontfnsRPtfntmetadata_filenametbftwf((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytmetadata�s0
%

cCsud|j|jf}d|}tj|d�}|j|��(}tjd�|�}t|�}WdQXt|�S(Nu%s-%su%s.dist-infouWHEELuutf-8(	R=RdRyR#RzRtRuRtdict(RER�R}R~R�R�R�tmessage((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRvs
cCsFtjj|j|j�}t|d��}|j|�}WdQX|S(Nur(R-R>R#RcReRRv(RERHR�RP((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRoscCstj|�}|r�|j�}|| ||}}d|j�krQt}nt}tj|�}|r�d|j�d}nd}||}||}ns|jd�}|jd�}	|dks�||	kr�d}
n&|||d!d	kr�d	}
nd}
t|
|}|S(
Ntpythonwt i����R+s
s
iis
(	t
SHEBANG_RERhtendtlowertSHEBANG_PYTHONWtSHEBANG_PYTHONtSHEBANG_DETAIL_REtgroupstfind(REtdataRnR�tshebangtdata_after_shebangtshebang_pythontargstcrtlftterm((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytprocess_shebang%s,	

		cCs�|dkr|j}nytt|�}Wn!tk
rNtd|��nX||�j�}tj|�j	d�j
d�}||fS(NuUnsupported hash algorithm: %rt=uascii(R t	hash_kindtgetattrthashlibtAttributeErrorRtdigesttbase64turlsafe_b64encodetrstriptdecode(RER�R�thasherRP((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytget_hashCs
!cCsYt|�}|j|ddf�t|��%}x|D]}|j|�q8WWdQXdS(Nu(tlistRRtwriterow(REtrecordstrecord_pathtarchive_record_pathtwritertrow((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytwrite_recordNs

cCs�g}|\}}tt|j�}xs|D]k\}}	t|	d��}
|
j�}WdQXd|j|�}tjj|	�}
|j	|||
f�q+Wtjj
|d�}	ttjj
|d��}|j||	|�|j	||	f�dS(Nurbu%s=%suRECORD(
R�R�R�RztreadR�R-R>tgetsizeRR#tto_posixR�(RERotlibdirt
archive_pathsR�tdistinfoR~R�taptptfR�R�tsize((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt
write_recordsUsc	Cs\t|dtj��A}x7|D]/\}}tjd||�|j||�qWWdQXdS(NuwuWrote %s to %s in wheel(RtzipfiletZIP_DEFLATEDtloggertdebugtwrite(RERHR�R�R�R�((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt	build_zipesc"
s
|dkri}ntt�fd�d&��d}|dkrgd}tg}tg}tg}n!d}tg}dg}dg}|jd	|�|_|jd
|�|_	|jd|�|_
�|}	d|j|jf}
d
|
}d|
}g}
xKd'D]C}|�kr qn�|}t
jj|�rxt
j|�D]�\}}}x�|D]�}tt
jj||��}t
jj||�}tt
jj|||��}|
j||f�|dkrb|jd�rbt|d��}|j�}WdQX|j|�}t|d��}|j|�WdQXqbqbWqLWqqW|	}d}xt
j|�D]�\}}}||kr�xUt|�D]G\}}t|�}|jd�r�t
jj||�}||=Pq�q�W|s�td��nxl|D]d}t|�jd(�rq�nt
jj||�}tt
jj||��}|
j||f�q�WqkWt
j|�}xf|D]^}|d)kr|tt
jj||��}tt
jj||��}|
j||f�q|q|Wd|p�|jdtd |g}x4|j D])\}}}|jd!|||f�qWt
jj|d�}t|d"��}|jd#j|��WdQXtt
jj|d��}|
j||f�d$�} t!|
d%| �}
|j"||f|	|
�t
jj|j#|j$�}!|j%|!|
�|!S(*u�
        Build a wheel from files in specified paths, and use any specified tags
        when determining the name of the wheel.
        cs
|�kS(N((R)(tpaths(s1/usr/lib/python2.7/site-packages/distlib/wheel.pyR*sR+upurelibuplatlibiufalseutrueunoneuanyupyveruabiuarchu%s-%su%s.datau%s.dist-infoudatauheadersuscriptsu.exeurbNuwbu
.dist-infou(.dist-info directory expected, not foundu.pycu.pyouRECORDu	INSTALLERuSHAREDuWHEELuWheel-Version: %d.%duGenerator: distlib %suRoot-Is-Purelib: %su
Tag: %s-%s-%suwu
cSs<|d}|jd�}d|kr2|d7}n||fS(Niu/u
.dist-infoi'(tcount(ttR�tn((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytsorter�s


tkey(upurelibuplatlib(udatauheadersuscripts(u.pycu.pyo(uRECORDu	INSTALLERuSHAREDuWHEEL(&R R�RtIMPVERtABItARCHR^tgetR_R`RaR=RdR-R>tisdirtwalkRR#trelpathR�RtendswithRzR�R�R�t	enumeratetAssertionErrortlistdirt
wheel_versionRRrtsortedR�RcReR�("RER�RrR�tlibkeytis_puret
default_pyvertdefault_abitdefault_archR�R}tdata_dirR~R�R�R>troottdirstfilesR�R�trpR�R�R�R�R�tdnR�R_R`RaR�RH((R�s1/usr/lib/python2.7/site-packages/distlib/wheel.pytbuildks�	"					





%


	cCs
|jd�S(ul
        Determine whether an archive entry should be skipped when verifying
        or installing.
        u/u/RECORD.jws(u/u/RECORD.jws(R�(REtarcname((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt
skip_entry�scDKs�	|j}|jd�}|jdt�}|jdt�}tjj|j|j�}d|j|j	f}	d|	}
d|	}t
j|t�}t
j|d�}
t
j|d�}tj
d	�}t|d
��	}|j|
��}||�}t|�}WdQX|djd
d�}tg|D]}t|�^q(�}||jkrk|rk||j|�n|ddkr�|d}n
|d}i}|j|��D}td|��,}x"|D]}|d}|||<q�WWdQXWdQXt
j|
d�}t
j|d�}t
j|
dd�}td|�} t| _tj}!g}"tj�}#|#|_d|_zfy4x�|j �D]�}$|$j}%t!|%t"�r�|%}&n|%j#d	�}&|j$|&�r�qn||&}|dr
t%|$j&�|dkr
t'd|&��n|dr�|djdd�\}'}(|j|%��}|j(�})WdQX|j)|)|'�\}*}+|+|(kr�t'd|%��q�n|r�|&j*||f�r�t+j,d|&�qn|&j*|�o�|&j-d�},|&j*|�r*|&jdd�\}*}-}.tjj||-t.|.��}/n3|&|
|fkrBqntjj|t.|&��}/|,s�|j|%��}| j/||/�WdQXtjdkr�tj0|/|$j1d ?d!@�n|"j2|/�|r4|dr4t|/d"��J}|j(�})|j)|)|'�\}*}0|0|+kr+t'd#|/��nWdQXn|!r;|/j-d$�r;y&| j3|/d%|�}1|"j2|1�Wq�t4k
r�t+j5d&d't�q�Xq;qtjj6t.|%��}2tjj|#|2�}3|j|%��}| j/||3�WdQXtjj|/�\}4}2|4|_|j7|2�}5| j8|5�|"j9|5�qW|r[t+j,d(�d}6nCd}7|j:d}|d)kr~t
j|d*�}8y�|j|8��}t;|�}9WdQXi}7x�d=D]�}:d-|:};|;|9kr�i|7d.|:<}<xd|9|;j<�D]O}=d/|=j=|=j>f}>|=j?rA|>d0d1j|=j?�7}>n|>|<|=j<q�Wq�q�WWq�t4k
rzt+j5d2�q�XnyyX|j|��C}||�}t@jA|�jd3�}7|7r�|7jd4�}7nWdQXWnt4k
r�t+j5d5�nX|7r	|7jd6i�}?|7jd7i�}@|?s-|@r	|jdd�}AtjjB|A�s`tCd8��n|A|_xF|?jD�D]8\};}=d9|;|=f}B|j7|B�}5| j8|5�qvW|@r	itd,6}CxL|@jD�D];\};}=d9|;|=f}B|j7|B|C�}5| j8|5�q�Wq	q	ntjj||�}tE|�}6tF|�}|d=|d=||d:<|6jG||�}|r�	|"j2|�n|6jH|"|d;|�|6SWn+t4k
r�	t+jId<�| jJ��nXWdtKjL|#�XWdQXdS(>u~
        Install a wheel to the specified paths. If kwarg ``warner`` is
        specified, it should be a callable, which will be called with two
        tuples indicating the wheel version of this software and the wheel
        version in the file, if there is a discrepancy in the versions.
        This can be used to issue any warnings to raise any exceptions.
        If kwarg ``lib_only`` is True, only the purelib/platlib files are
        installed, and the headers, scripts, data and dist-info metadata are
        not written. If kwarg ``bytecode_hashed_invalidation`` is True, written
        bytecode will try to use file-hash based invalidation (PEP-552) on
        supported interpreter versions (CPython 2.7+).

        The return value is a :class:`InstalledDistribution` instance unless
        ``options.lib_only`` is True, in which case the return value is ``None``.
        uwarnerulib_onlyubytecode_hashed_invalidationu%s-%su%s.datau%s.dist-infouWHEELuRECORDuutf-8urNu
Wheel-Versionu.iuRoot-Is-Purelibutrueupurelibuplatlibtstreamiuuscriptstdry_runiusize mismatch for %su=udigest mismatch for %sulib_only: skipping %su.exeu/uposixii�urbudigest mismatch on write for %su.pythashed_invalidationuByte-compilation failedtexc_infoulib_only: returning Noneu1.0uentry_points.txtuconsoleuguiu
%s_scriptsuwrap_%su%s:%su [%s]u,uAUnable to read legacy script metadata, so cannot generate scriptsu
extensionsupython.commandsu8Unable to read JSON metadata, so cannot generate scriptsuwrap_consoleuwrap_guiuValid script path not specifiedu%s = %sulibuprefixuinstallation failed.(uconsoleugui(MR�R�tFalseR-R>R#RcReR=RdRyR
RtRuRRzRRjRwRxR�RRR!trecordRtdont_write_bytecodettempfiletmkdtempt
source_dirR t
target_dirtinfolistt
isinstanceRR�R�tstrt	file_sizeRR�R�t
startswithR�R�R�Rtcopy_streamtchmodt
external_attrRtbyte_compilet	Exceptiontwarningtbasenametmaketset_executable_modetextendRoRtvaluestprefixtsuffixtflagstjsontloadR�R|titemsR	R�twrite_shared_locationstwrite_installed_filest	exceptiontrollbacktshutiltrmtree(DRER�tmakertkwargsR�twarnertlib_onlytbc_hashed_invalidationRHR}R�R~t
metadata_nametwheel_metadata_nametrecord_nameRR�tbwfR�R�R�R�R�R�R�R�treaderR�R�tdata_pfxtinfo_pfxt
script_pfxtfileoptbctoutfilestworkdirtzinfoR�t	u_arcnametkindtvalueR�t_R�t	is_scripttwhereR�toutfilet	newdigesttpycR�tworknameR�t	filenamestdisttcommandsteptepdataR�RLtdRMR4tconsole_scriptstgui_scriptst
script_dirtscripttoptions((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytinstall�sL	

%



	
				
#

"
	
	

	


	

	




cCsKtdkrGtjjt�td�dtjd �}t	|�antS(Nudylib-cacheu%s.%si(
tcacheR R-R>R#RR�RRR(REtbase((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt_get_dylib_cache�s
c
Cs�tjj|j|j�}d|j|jf}d|}tj|d�}tj	d�}g}t
|d��w}y\|j|��G}||�}	tj
|	�}
|j�}|j|�}tjj|j|�}
tjj|
�s�tj|
�nx�|
j�D]�\}}tjj|
t|��}tjj|�sHt}nQtj|�j}tjj|�}|j|�}tj|j�}||k}|r�|j||
�n|j||f�qWWdQXWntk
r�nXWdQX|S(Nu%s-%su%s.dist-infou
EXTENSIONSuutf-8ur( R-R>R#RcReR=RdRyRtRuRRzRRR7t
prefix_to_dirR6R�tmakedirsRRRqR!tstattst_mtimetdatetimet
fromtimestamptgetinfot	date_timetextractRR{(RERHR}R~R�RRPR�R�R�RIR5Rt
cache_baseR=R�tdestR@t	file_timeRot
wheel_time((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt_get_extensions�s>
	!

cCs
t|�S(uM
        Determine if a wheel is compatible with the running system.
        (t
is_compatible(RE((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRFscCstS(uP
        Determine if a wheel is asserted as mountable by its metadata.
        (R!(RE((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytis_mountable
scCs
tjjtjj|j|j��}|j�sLd|}t|��n|j�sqd|}t|��n|t	jkr�t
jd|�ns|r�t	jj|�nt	jj
d|�|j�}|rtt	jkr�t	jjt�ntj||�ndS(Nu)Wheel %s not compatible with this Python.u$Wheel %s is marked as not mountable.u%s already in pathi(R-R>RlR#RcReRFRRGRR�R�RtinsertREt_hookt	meta_pathRJ(RERRHtmsgRI((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytmounts"'

cCs�tjjtjj|j|j��}|tjkrItjd|�n]tjj	|�|t
jkrxt
j	|�nt
js�t
tjkr�tjj	t
�q�ndS(Nu%s not in path(
R-R>RlR#RcReRR�R�RNRIRCRJ(RERH((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytunmount(s'	cCs�tjj|j|j�}d|j|jf}d|}d|}tj|t�}tj|d�}tj|d�}t	j
d�}t|d��}	|	j|��}
||
�}t
|�}WdQX|djd	d
�}
tg|
D]}t|�^q��}i}|	j|��D}td|��,}x"|D]}|d}|||<q8WWdQXWdQXxK|	j�D]=}|j}t|t�r�|}n|jd�}|jd
�}d|kr�td|��n|j|�r�qon||}|dr(t|j�|dkr(td|��n|d
ro|d
jdd
�\}}|	j|��}|j�}WdQX|j||�\}}||kr�td|��q�qoqoWWdQXdS(Nu%s-%su%s.datau%s.dist-infouWHEELuRECORDuutf-8uru
Wheel-Versionu.iR�iu/u..uinvalid entry in wheel: %riusize mismatch for %su=udigest mismatch for %s(R-R>R#RcReR=RdRyR
RtRuRRzRRjRwRxRR�R�RR�RR�R�R�R�R�(RERHR}R�R~RRRRR�RR�R�R�R�R�R�R�RR�R�RR�RR R!R�R"R�((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRm4sV

%

		

#

c
Ks�d�}d�}tjj|j|j�}d|j|jf}d|}tj|d�}	t��(}
t	|d���}i}x�|j
�D]�}
|
j}t|t�r�|}n|j
d�}||	kr�q�nd|kr�td	|��n|j|
|
�tjj|
t|��}|||<q�WWd
QX|||�\}}|||�}|r�|||�\}}|r�||kr�|||�n|d
kr�tjddd
dd|
�\}}tj|�n=tjj|�s�td|��ntjj||j�}t|j��}tjj|
|�}||f}|j||
|�|j||�|d
kr�tj||�q�nWd
QX|S(u�
        Update the contents of a wheel in a generic way. The modifier should
        be a callable which expects a dictionary argument: its keys are
        archive-entry paths, and its values are absolute filesystem paths
        where the contents the corresponding archive entries can be found. The
        modifier is free to change the contents of the files pointed to, add
        new entries and remove entries, before returning. This method will
        extract the entire contents of the wheel to a temporary location, call
        the modifier, and then use the passed (and possibly updated)
        dictionary to write a new wheel. If ``dest_dir`` is specified, the new
        wheel is written there -- otherwise, the original wheel is overwritten.

        The modifier should return True if it updated the wheel, else False.
        This method returns the same value the modifier returns.
        cSshd}}d|tf}||kr3d|}n||kr^||}td|�j}n||fS(Nu%s/%su%s/PKG-INFOR>(R R
R
Rd(tpath_mapR~RdR>R�((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytget_version}s


c	Ss&d}y�t|�}|jd�}|dkr=d|}ngg||djd�D]}t|�^qU}|dcd7<d|| djd�|D��f}Wn!tk
r�tjd	|�nX|r"t	d
|�}||_
|jt�}|j
d
|d|�tjd||�ndS(
Nu-iu%s+1iu.i����u%s+%scss|]}t|�VqdS(N(R�(t.0R�((s1/usr/lib/python2.7/site-packages/distlib/wheel.pys	<genexpr>�su0Cannot update non-compliant (PEP-440) version %rR>tlegacyuVersion updated from %r to %r(R RR�RjRxR#RR�R�R
RdR�R
R�(	RdR>tupdatedRMR�R4R$tmdRQ((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytupdate_version�s(
0
!
		u%s-%su%s.dist-infouRECORDuruutf-8u..uinvalid entry in wheel: %rNRu.whlRu
wheel-update-tdiruNot a directory: %r(R-R>R#RcReR=RdRyRRR�R�RR�RR@RR R�tmkstemptcloseR�R�RR�R�Rtcopyfile(REtmodifiertdest_dirRRORTRHR}R~RRR�RNRR�RR>toriginal_versionR"tmodifiedtcurrent_versiontfdtnewpathR�R�Ro((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRGlsX	
	
		
(iiN( RXRYt__doc__R�R�R R�RFtpropertyReRqRrRR�RvRoR�R�R�R�R�R�R�R4R7RERFRGRLRMRmRG(((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRZ�s4) 						t		�			"				8cCs�ddl}|j�}g}|ddkr�x@|djd�D]+}|j|j�rft|�nd�qBWt|�}n|S(Ni����iuglibciu.(tplatformtlibc_verRjRtisdigitRxRw(RbtverRPR4((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt_get_glibc_version�s)c	Cs�tg}td}xGttjdddd�D](}|jdj|t|�g��q1Wg}x@t�D]5}|jd�rm|j|j	dd�d�qmqmW|j
�tdkr�|jdt�n|jd�g}t
g}tjd	kr1tjd
t
�}|r1|j�\}}}}	t|�}|	g}
|	d kr[|
jd
�n|	d!krw|
jd�n|	d"kr�|
jd�n|	d#kr�|
jd�n|	d$kr�|
jd�nx`|dkr*x@|
D]8}d||||f}|t
kr�|j|�q�q�W|d8}q�Wq1nx�|D]�}
xz|D]r}	|jdjt|df�|
|	f�|
dkrEtjjd�rE|	jdd�}	t�}t|�dkr�|d%kr�|jdjt|df�|
d|	f�n|d&kr7|jdjt|df�|
d|	f�n|d'krs|jdjt|df�|
d|	f�n|jdjt|df�|
d|d|d|	ff�q�qEqEWq8Wxwt|�D]i\}}|jdjt|f�ddf�|dkr�|jdjt|df�ddf�q�q�Wxwt|�D]i\}}|jdjd|f�ddf�|dkrF|jdjd|df�ddf�qFqFWt|�S((uG
    Return (pyver, abi, arch) tuples compatible with this Python.
    iii����uu.abiu.iunoneudarwinu(\w+)_(\d+)_(\d+)_(\w+)$ui386uppcufatux86_64ufat3uppc64ufat64uintelu	universalu%s_%s_%s_%sulinuxulinux_iu
manylinux1_%siumanylinux2010_%siumanylinux2014_%sumanylinux_%s_%s_%suanyupy(ui386uppc(ui386uppcux86_64(uppc64ux86_64(ui386ux86_64(ui386ux86_64uinteluppcuppc64(ii(ii(ii(RtrangeRRRR#R�R5R�RjtsortR�RHR�RbtreRhR�RxRR,RfRUR�tset(tversionstmajortminortabisRRPtarchesRnR=RatmatchesRhR4R`R$R�Rd((s1/usr/lib/python2.7/site-packages/distlib/wheel.pytcompatible_tags�s�	
$&$

		


)	%0%0cCs�t|t�st|�}nt}|dkr9t}nxN|D]F\}}}||jkr@||jkr@||jkr@t}Pq@q@W|S(N(	R�RZR�R tCOMPATIBLE_TAGSR_R`RaR!(twheelRrRPReR`Ra((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyRF0s	-([t
__future__RR�RtR<temailRR�RtloggingR-RyRiRRR�R�R+RRtcompatRRRRRtdatabaseR	R�R
RRR
R7RRRRRRRRRRRdRRt	getLoggerRXR�R R5thasattrRRbR�RRRR^R�R,R�R�RjR(tcompilet
IGNORECASEtVERBOSERkRgR�R�R�R�R.R�R/timportlib.machineryR1timportlib.utilR5RAtobjectRBRIRZRfRqRrRF(((s1/usr/lib/python2.7/site-packages/distlib/wheel.pyt<module>s�("F			

!"					#	���-	
	P	
© 2025 GrazzMean