File "wheel.cpython-37.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/python37/lib/python3.7/site-packages/distlib/__pycache__/wheel.cpython-37.pyc
File size: 25.95 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit

B

:a@sddlmZddlZddlZddlZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZmZddlmZmZmZmZmZddlmZddlmZmZm Z m!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
0e1Z2da3e4edr8dZ5n*ej67d
rLdZ5nej6dkr^dZ5ndZ5e8dZ9e9sdej:ddZ9de9Z;e5e9Z<e,=dd=ddZ>e8dZ?e?re?7dre?=dd@ddZ?nddZAeAZ?[Ae
Bde
jCe
jDBZEe
Bde
jCe
jDBZFe
BdZGe
Bd ZHd!ZId"ZJejKd#krHd$d%ZLnd&d%ZLGd'd(d(eMZNeNZOGd)d*d*eMZPd+d,ZQd-d.ZReRZS[Rd1d/d0ZTdS)2)unicode_literalsN)message_from_file)__version__DistlibException)	sysconfigZipFilefsdecode	text_typefilter)InstalledDistribution)MetadataMETADATA_FILENAMEWHEEL_METADATA_FILENAMELEGACY_METADATA_FILENAME)
FileOperatorconvert_path	CSVReader	CSVWriterCachecached_propertyget_cache_baseread_exportstempdirget_platform)NormalizedVersionUnsupportedVersionErrorZpypy_version_infoppjavaZjyZcliZipcppy_version_nodotz%s%spy-_.SOABIzcpython-cCsRdtg}tdr|dtdr0|dtddkrH|dd	|S)
NrPy_DEBUGd
WITH_PYMALLOCmZPy_UNICODE_SIZEu)
VER_SUFFIXrget_config_varappendjoin)partsr3>/opt/alt/python37/lib/python3.7/site-packages/distlib/wheel.py_derive_abi<s




r5zz
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?
-(?P<py>\w+\d+(\.\w+\d+)*)
-(?P<bi>\w+)
-(?P<ar>\w+(\.\w+)*)
\.whl$
z7
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?$
s
\s*#![^\r\n]*s^(\s*#!("[^"]+"|\S+))\s+(.*)$s#!pythons	#!pythonw/cCs|S)Nr3)or3r3r4<lambda>^r8cCs|tjdS)Nr6)replaceossep)r7r3r3r4r8`r9c@s6eZdZddZddZddZddd	Zd
dZdS)
MountercCsi|_i|_dS)N)
impure_wheelslibs)selfr3r3r4__init__dszMounter.__init__cCs||j|<|j|dS)N)r>r?update)r@pathname
extensionsr3r3r4addhs
zMounter.addcCs4|j|}x"|D]\}}||jkr|j|=qWdS)N)r>popr?)r@rCrDkvr3r3r4removels
zMounter.removeNcCs||jkr|}nd}|S)N)r?)r@fullnamepathresultr3r3r4find_modulers
zMounter.find_modulecCsj|tjkrtj|}nP||jkr,td|t||j|}||_|dd}t|dkrf|d|_	|S)Nzunable to find extension for %sr%rr)
sysmodulesr?ImportErrorimpZload_dynamic
__loader__rsplitlen__package__)r@rJrLr2r3r3r4load_moduleys


zMounter.load_module)N)__name__
__module____qualname__rArErIrMrVr3r3r3r4r=cs

r=c@seZdZdZdZdZd4ddZedd	Zed
dZ	edd
Z
eddZddZ
eddZddZd5ddZddZddZddZd6ddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd7d,d-Zd.d/Zd0d1Zd8d2d3ZdS)9Wheelz@
    Class to build and install from Wheel files (PEP 427).
    )rrZsha256NFcCs8||_||_d|_tg|_dg|_dg|_t|_	|dkrRd|_
d|_|j|_
nt|}|r|d}|d|_
|dd	d
|_|d|_|j|_
ntj|\}}t|}|std||rtj||_	||_
|d}|d|_
|d|_|d|_|d
d|_|dd|_|dd|_dS)zB
        Initialise an instance using a (valid) filename.
        r-noneanyNZdummyz0.1nmZvnr$r#ZbnzInvalid name or filename: %rr"r%Zbiar)signZ
should_verifybuildverPYVERpyverabiarchr;getcwddirnamenameversionfilenameZ	_filenameNAME_VERSION_REmatch	groupdictr:rKsplitFILENAME_RErabspath)r@rir_verifyr*inforfr3r3r4rAsB











zWheel.__init__cCs^|jrd|j}nd}d|j}d|j}d|j}|jdd}d|j|||||fS)zJ
        Build and return a filename from the various components.
        r#r-r%r$z%s-%s%s-%s-%s-%s.whl)r`r1rbrcrdrhr:rg)r@r`rbrcrdrhr3r3r4ris
zWheel.filenamecCstj|j|j}tj|S)N)r;rKr1rfriisfile)r@rKr3r3r4existsszWheel.existsccs@x:|jD]0}x*|jD] }x|jD]}|||fVq WqWqWdS)N)rbrcrd)r@rbrcrdr3r3r4tagssz
Wheel.tagscCstj|j|j}d|j|jf}d|}td}t	|d}|
|}|ddd}tdd	|D}t
tg}	d}
x`|	D]X}y>t||}||}
||
}t|d
}
|
rPWdQRXWq~tk
rYq~Xq~W|
stdd|	WdQRX|
S)
Nz%s-%sz%s.dist-infozutf-8rz
Wheel-Versionr%rcSsg|]}t|qSr3)int).0ir3r3r4
<listcomp>sz"Wheel.metadata.<locals>.<listcomp>)fileobjz8Invalid wheel, because metadata is missing: looked in %sz, )r;rKr1rfrirgrhcodecs	getreaderrget_wheel_metadatarmtuplerr	posixpathopenr
KeyError
ValueError)r@rCname_verinfo_dirwrapperzfwheel_metadatawvfile_versionZfnsrLfnmetadata_filenamebfwfr3r3r4metadatas0




zWheel.metadatac	CsXd|j|jf}d|}t|d}||}td|}t|}WdQRXt|S)Nz%s-%sz%s.dist-infoWHEELzutf-8)	rgrhrr1rr{r|rdict)r@rrrrrrmessager3r3r4r}szWheel.get_wheel_metadatac	Cs6tj|j|j}t|d}||}WdQRX|S)Nru)r;rKr1rfrirr})r@rCrrLr3r3r4rqsz
Wheel.infocCst|}|r||}|d|||d}}d|krBt}nt}t|}|rfd|d}nd}||}||}nT|d}|d}	|dks||	krd}
n|||dd	krd	}
nd}
t|
|}|S)
Nspythonw r9

rr!s
)	
SHEBANG_RErkendlowerSHEBANG_PYTHONWSHEBANG_PYTHONSHEBANG_DETAIL_REgroupsfind)r@datar*rZshebangZdata_after_shebangZshebang_pythonargsZcrZlfZtermr3r3r4process_shebangs,




zWheel.process_shebangcCsh|dkr|j}ytt|}Wn tk
r<td|YnX||}t|d	d}||fS)NzUnsupported hash algorithm: %r=ascii)
	hash_kindgetattrhashlibAttributeErrorrdigestbase64Zurlsafe_b64encoderstripdecode)r@rrhasherrLr3r3r4get_hash%szWheel.get_hashc	CsZt|}ttj||}||ddft|}x|D]}||q:WWdQRXdS)Nr-)listto_posixr;rKrelpathr0rZwriterow)r@recordsZrecord_pathbasepwriterrowr3r3r4write_record0s

zWheel.write_recordc
Csg}|\}}tt|j}xX|D]P\}}	t|	d}
|
}WdQRXd||}tj|	}
|	|||
fqWtj
|d}	|||	|ttj
|d}|	||	fdS)Nrbz%s=%sRECORD)
rrrrreadrr;rKgetsizer0r1rr)r@rqlibdir
archive_pathsrdistinforraprfrrsizer3r3r4
write_records8szWheel.write_recordsc	CsJt|dtj2}x*|D]"\}}td|||||qWWdQRXdS)NwzWrote %s to %s in wheel)rzipfileZIP_DEFLATEDloggerdebugwrite)r@rCrrrrr3r3r4	build_zipHszWheel.build_zipc"s|dkri}ttfdddd}|dkrFd}tg}tg}tg}nd}tg}d	g}d
g}|d||_|d||_|d
||_	|}	d|j
|jf}
d|
}d|
}g}
xdD]}|krq|}tj
|rxt|D]\}}}x|D]}ttj
||}tj
||}ttj
|||}|
||f|dkr|dst|d}|}WdQRX||}t|d}||WdQRXqWqWqW|	}d}xt|D]\}}}||krx@t|D]4\}}t|}|drtj
||}||=PqW|stdxP|D]H}t|dr8q tj
||}ttj
||}|
||fq WqWt|}xJ|D]B}|dkrttj
||}ttj
||}|
||fqWd|p|jdtd|g}x*|jD] \}}}|d|||fqWtj
|d}t|d}|d |WdQRXttj
|d}|
||fd!d"} t |
| d#}
|!||f|	|
tj
|j"|j#}!|$|!|
|!S)$z
        Build a wheel from files in specified paths, and use any specified tags
        when determining the name of the wheel.
        Ncs|kS)Nr3)r7)pathsr3r4r8Vr9zWheel.build.<locals>.<lambda>)purelibplatlibrrfalsetruer[r\rbrcrdz%s-%sz%s.dataz%s.dist-info)rheadersscriptsrz.exerwbz
.dist-infoz(.dist-info directory expected, not found)z.pycz.pyo)rZ	INSTALLERZSHAREDrzWheel-Version: %d.%dzGenerator: distlib %szRoot-Is-Purelib: %sz
Tag: %s-%s-%srr
cSs*|d}|d}d|kr"|d7}||fS)Nrr6z
.dist-infoi')count)trnr3r3r4sorters

zWheel.build.<locals>.sorter)key)%rrIMPVERABIARCHragetrbrcrdrgrhr;rKisdirwalkr	r1rrr0endswithrrrr	enumerateAssertionErrorlistdir
wheel_versionrrtsortedrrfrir)"r@rrtrZlibkeyis_pureZ
default_pyverZdefault_abiZdefault_archrrdata_dirrrrrKrootdirsfilesrrrprrrrrxdnrrbrcrdrrCr3)rr4buildNs


 





zWheel.buildcCs
|dS)zl
        Determine whether an archive entry should be skipped when verifying
        or installing.
        )r6z/RECORD.jws)r)r@arcnamer3r3r4
skip_entryszWheel.skip_entrycCKs|j}|d}|dd}|dd}tj|j|j}d|j|jf}	d|	}
d|	}t	|t
}t	|d}
t	|d	}td
}t
|d}||
}||}t|}WdQRX|d
dd}tdd|D}||jkr|r||j||ddkr|d}n|d}i}||<}t|d&}x|D]}|d}|||<q:WWdQRXWdQRXt	|
d}t	|d}t	|
dd}t|d}d|_tj} g}!t}"|"|_d|_zyx|D]}#|#j}$t|$tr|$}%n
|$d
}%| |%r
q||%}|dr<t!|#j"|dkr<t#d|%|dr|ddd\}&}'||$}|$}(WdQRX|%|(|&\})}*|*|'krt#d|$|r|%&||frt'(d |%q|%&|o|%)d!}+|%&|r|%d"d\})},}-tj||,t*|-}.n$|%|
|fkr$qtj|t*|%}.|+s4||$}|+||.WdQRXtjd#krt,|.|#j-d$?d%@|!.|.|s|drt|.d&4}|$}(|%|(|&\})}/|/|*krt#d'|.WdQRX| r|.)d(ry|j/|.|d)}0|!.|0Wn$t0k
r0t'j1d*dd+YnXnttj2t*|$}1tj|"|1}2||$}|+||2WdQRXtj|.\}3}1|3|_|3|1}4|4|4|!5|4qW|rt'(d,d}5nd}6|j6d
}|d-krt	|d.}7y||7}t7|}8WdQRXi}6x~d/D]v}9d0|9}:|:|8kri|6d1|9<};xL|8|:8D]<}<d2|<j9|<j:f}=|<j;rx|=d3d4|<j;7}=|=|;|<j<qHWqWWn t0k
rt'1d5YnXndyB||.}||}t<=|d6}6|6r|6d7}6WdQRXWn t0k
rt'1d8YnX|6r|6d9i}>|6d:i}?|>sB|?r|dd}@tj>|@sdt?d;|@|_x6|>@D]*\}:}<d<|:|<f}A|3|A}4|4|4qtW|?rd=di}Bx8|?@D],\}:}<d<|:|<f}A|3|A|B}4|4|4qWtj||}tA|}5tB|}|d=|d=||d><|5C||}|r8|!.||5D|!|d?||5St0k
rvt'Ed@|FYnXWdtGH|"XWdQRXdS)Aa~
        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``.
        warnerlib_onlyFZbytecode_hashed_invalidationz%s-%sz%s.dataz%s.dist-inforrzutf-8ruNz
Wheel-Versionr%rcSsg|]}t|qSr3)rv)rwrxr3r3r4rysz!Wheel.install.<locals>.<listcomp>zRoot-Is-Purelibrrr)streamrr-r)dry_runTr!zsize mismatch for %s=zdigest mismatch for %szlib_only: skipping %sz.exer6posixirzdigest mismatch on write for %sz.py)Zhashed_invalidationzByte-compilation failed)exc_infozlib_only: returning Nonez1.0zentry_points.txt)Zconsoleguiz
%s_scriptszwrap_%sz%s:%sz [%s],zAUnable to read legacy script metadata, so cannot generate scriptsrDzpython.commandsz8Unable to read JSON metadata, so cannot generate scriptsZwrap_consoleZwrap_guizValid script path not specifiedz%s = %srlibprefixzinstallation failed.)Irrr;rKr1rfrirgrhrrr{r|rrrrmr~rrrrecordrNdont_write_bytecodetempfileZmkdtempZ
source_dirZ
target_dirinfolist
isinstancer
rrstr	file_sizerrr
startswithrrrrZcopy_streamchmod
external_attrr0byte_compile	ExceptionwarningbasenameZmakeZset_executable_modeextendrqrvaluesrsuffixflagsjsonloadrritemsrrZwrite_shared_locationsZwrite_installed_files	exceptionZrollbackshutilrmtree)Cr@rZmakerkwargsrrrZbc_hashed_invalidationrCrrr
metadata_namewheel_metadata_namerecord_namerrbwfrrrrrrrreaderrrZdata_pfxZinfo_pfxZ
script_pfxZfileopZbcoutfilesworkdirzinfor	u_arcnamekindvaluerr$rZ	is_scriptwhereroutfileZ	newdigestZpycrZworknamer	filenamesdistcommandsZepZepdatarrGr(rHsZconsole_scriptsZgui_scriptsZ
script_dirscriptoptionsr3r3r4installsJ



"















z
Wheel.installcCs8tdkr4tjttddtjdd}t|atS)Nzdylib-cachez%s.%sr!)	cacher;rKr1rrrNversion_infor)r@rr3r3r4_get_dylib_caches
zWheel._get_dylib_cachec
Csltj|j|j}d|j|jf}d|}t|d}t	d}g}t
|d}y||}||}	t
|	}
|}||}tj|j|}
tj|
st|
x|
D]\}}tj|
t|}tj|sd}n6t|j}tj|}||}tj|j}||k}|r(|||
|||fqWWdQRXWntk
r\YnXWdQRX|S)Nz%s-%sz%s.dist-infoZ
EXTENSIONSzutf-8ruT)r;rKr1rfrirgrhrr{r|rrr
rr'Z
prefix_to_dirrrmakedirsrrrsstatst_mtimedatetimeZ
fromtimestampgetinfo	date_timeextractr0r)r@rCrrrrrLrrrrDr%rZ
cache_basergrdestr.Z	file_timerqZ
wheel_timer3r3r4_get_extensionss>




 zWheel._get_extensionscCst|S)zM
        Determine if a wheel is compatible with the running system.
        )
is_compatible)r@r3r3r4r1szWheel.is_compatiblecCsdS)zP
        Determine if a wheel is asserted as mountable by its metadata.
        Tr3)r@r3r3r4is_mountableszWheel.is_mountablecCstjtj|j|j}|s2d|}t||sJd|}t||t	jkrbt
d|nN|rtt	j|nt	j
d||}|rtt	jkrt	jtt||dS)Nz)Wheel %s not compatible with this Python.z$Wheel %s is marked as not mountable.z%s already in pathr)r;rKror1rfrir1rr2rNrrr0insertr0_hook	meta_pathrE)r@r0rCmsgrDr3r3r4mounts"

zWheel.mountcCsrtjtj|j|j}|tjkr2td|n<tj	||t
jkrRt
	|t
jsnt
tjkrntj	t
dS)Nz%s not in path)
r;rKror1rfrirNrrrIr4r>r5)r@rCr3r3r4unmounts



z
Wheel.unmountcCstj|j|j}d|j|jf}d|}d|}t|t}t|d}t|d}t	
d}t|d}	|	|}
||
}t
|}WdQRX|dd	d
}
tdd|
D}i}|	|:}t|d
$}x|D]}|d}|||<qWWdQRXWdQRXx|	D]}|j}t|tr*|}n
|d}|d}d|krTtd|||rdq||}|drt|j|dkrtd||d
r|d
dd
\}}|	|}|}WdQRX|||\}}||krtd|qWWdQRXdS)Nz%s-%sz%s.dataz%s.dist-inforrzutf-8ruz
Wheel-Versionr%rcSsg|]}t|qSr3)rv)rwrxr3r3r4ry(sz Wheel.verify.<locals>.<listcomp>)rrr6z..zinvalid entry in wheel: %rr!zsize mismatch for %srzdigest mismatch for %s)r;rKr1rfrirgrhrrr{r|rrrrmr~rrrr
rrrrrrr)r@rCrrrrrrrrrrrrrrrrrrrrrrrrr$rr3r3r4rpsV

 




zWheel.verifyc
Ksdd}dd}tj|j|j}d|j|jf}d|}t|d}	t}
t	|d}i}xt|
D]h}
|
j}t|tr|}n
|
d	}||	krqjd
|krtd|||
|
tj|
t|}|||<qjWWdQRX|||\}}||f|}|r|||\}}|r(||kr(||||dkrRtjd
d|
d\}}t|n*tj|sltd|tj||j}t|}tj|
|}||f}|||
|||||dkrt||WdQRX|S)a
        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}||kr$d|}||kr@||}t|dj}||fS)Nz%s/%sz%s/PKG-INFO)rK)rr
rh)path_maprrhrKrr3r3r4get_version`sz!Wheel.update.<locals>.get_versioncSsd}y|t|}|d}|dkr*d|}nTdd||dddD}|dd7<d	|d|dd
d|Df}Wn tk
rtd|YnX|rt|d
}||_|	t
}|j||dtd||dS)Nr#rz%s+1cSsg|]}t|qSr3)rv)rwr!r3r3r4ryrsz8Wheel.update.<locals>.update_version.<locals>.<listcomp>rr%rz%s+%scss|]}t|VqdS)N)r)rwrxr3r3r4	<genexpr>usz7Wheel.update.<locals>.update_version.<locals>.<genexpr>z0Cannot update non-compliant (PEP-440) version %r)rK)rKlegacyzVersion updated from %r to %r)rrrmr1rrrr
rhrrr)rhrKupdatedrHrxr2Zmdr<r3r3r4update_versionjs(

 

z$Wheel.update.<locals>.update_versionz%s-%sz%s.dist-inforruzutf-8z..zinvalid entry in wheel: %rNz.whlz
wheel-update-)rrdirzNot a directory: %r)r;rKr1rfrirgrhrrrrrr
rrr.rrmkstempcloserrrrrrcopyfile)r@modifierZdest_dirrr:r>rCrrrrrr9rrrrKZoriginal_versionr$modifiedZcurrent_versionfdnewpathrrrqr3r3r4rBOsX






zWheel.update)NFF)N)NN)F)N)rWrXrY__doc__rrrApropertyrirsrtrrr}rqrrrrrrrr$r'r0r1r2r7r8rprBr3r3r3r4rZs6
) 	

tn	"
8rZcCs^ddl}|}g}|ddkrZx0|ddD]}||rHt|ndq0Wt|}|S)NrZglibcrr%)platformZlibc_verrmr0isdigitrvr~)rIverrLr!r3r3r4_get_glibc_versionsrLc
Cstg}td}x6ttjddddD]}|d|t|gq&Wg}x6tD]*\}}}|	drT||
dddqTW|tdkr|
dt|dg}tg}tjd	krtd
t}|r|\}	}}}
t|}|
g}|
dkr|d|
d
kr|d|
dkr*|d|
dkr>|d|
dkrR|dxL|dkrx2|D]*}d|	|||f}
|
tkrd||
qdW|d8}qTWx.|D]$}x|D]}
|dt|df||
f|dkrtj	dr|
dd}
t}t|dkr|dkr>|dt|df|d|
f|dkrj|dt|df|d|
f|dkr|dt|df|d|
f|dt|df|d|d|d|
ffqWqWxXt|D]L\}}|dt|fddf|dkr|dt|dfddfqWxXt|D]L\}}|dd |fddf|dkr6|dd |dfddfq6Wt|S)!zG
    Return (pyver, abi, arch) tuples compatible with this Python.
    rrrr-z.abir%r!r[darwinz(\w+)_(\d+)_(\d+)_(\w+)$)i386ppcZfat)rNrOx86_64Zfat3)ppc64rPZfat64)rNrPintel)rNrPrRrOrQ	universalz%s_%s_%s_%slinuxZlinux_)r!z
manylinux1_%s)r!zmanylinux2010_%s)r!zmanylinux2014_%szmanylinux_%s_%s_%sr\r")r.rangerNr&r0r1rrQZget_suffixesrrmsortrr3rrIrerkrrv
IMP_PREFIXr:rLrTrset)ZversionsmajorminorZabisrr$rLZarchesr*rgrdZmatchesrkr!rcr2rxrhr3r3r4compatible_tagss

















$
$r_cCs^t|tst|}d}|dkr"t}x6|D].\}}}||jkr(||jkr(||jkr(d}Pq(W|S)NFT)rrZCOMPATIBLE_TAGSrbrcrd)ZwheelrtrLrKrcrdr3r3r4r1s
r1)N)UZ
__future__rrr{r+emailrrrQr
loggingr;rrZrrNrrr-rrcompatrrr	r
rZdatabaserrr
rrrutilrrrrrrrrrrrhrr	getLoggerrWrr%hasattrr[rIrr/r.r&rarr:rrrmr5compile
IGNORECASEVERBOSErnrjrrrrr<robjectr=r4rZrLr_r`r1r3r3r3r4<module>s0


	


#1
P