Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
B

…Ÿ‡ÿr¦Tã@sœddlmZddlZddlZddlZddlmZddlZddlZddl	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
 0e1¡Z2da3e4edƒr8dZ5n*ej6 7d
¡rLdZ5nej6dkr^dZ5ndZ5e 8d¡Z9e9s„dej:dd…Z9de9Z;e5e9Z<e,ƒ =dd¡ =dd¡Z>e 8d¡Z?e?rÞe? 7d¡rÞe? =dd¡ @d¡dZ?ndd„ZAeAƒZ?[Ae
 Bde
jCe
jDB¡ZEe
 Bde
jCe
jDB¡ZFe
 Bd¡ZGe
 Bd ¡ZHd!ZId"ZJejKd#krHd$d%„ZLnd&d%„ZLGd'd(„d(eMƒZNeNƒZOGd)d*„d*eMƒZPd+d,„ZQd-d.„ZReRƒZS[Rd1d/d0„ZTdS)2é)Úunicode_literalsN)Úmessage_from_fileé)Ú__version__ÚDistlibException)Ú	sysconfigÚZipFileÚfsdecodeÚ	text_typeÚfilter)ÚInstalledDistribution)ÚMetadataÚMETADATA_FILENAMEÚWHEEL_METADATA_FILENAMEÚLEGACY_METADATA_FILENAME)
ÚFileOperatorÚconvert_pathÚ	CSVReaderÚ	CSVWriterÚCacheÚcached_propertyÚget_cache_baseÚread_exportsÚtempdirÚget_platform)ÚNormalizedVersionÚUnsupportedVersionErrorÚpypy_version_infoÚppÚjavaÚjyÚcliÚipÚcpÚpy_version_nodotz%s%séÚpyú-Ú_Ú.ÚSOABIzcpython-cCsRdtg}t d¡r| d¡t d¡r0| d¡t d¡dkrH| d¡d	 |¡S)
Nr#ÚPy_DEBUGÚdÚ
WITH_PYMALLOCÚmÚPy_UNICODE_SIZEéÚuÚ)Ú
VER_SUFFIXrÚget_config_varÚappendÚjoin)Úparts©r8ú‹/build/wlanpi-profiler-MIf3Xw/wlanpi-profiler-1.0.8/debian/wlanpi-profiler/opt/wlanpi-profiler/lib/python3.7/site-packages/distlib/wheel.pyÚ_derive_abi<s




r:zz
(?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)Nr8)Úor8r8r9Ú<lambda>^ór=cCs| tjd¡S)Nr;)ÚreplaceÚosÚsep)r<r8r8r9r=`r>c@s6eZdZdd„Zdd„Zdd„Zddd	„Zd
d„ZdS)
ÚMountercCsi|_i|_dS)N)Ú
impure_wheelsÚlibs)Úselfr8r8r9Ú__init__dszMounter.__init__cCs||j|<|j |¡dS)N)rCrDÚupdate)rEÚpathnameÚ
extensionsr8r8r9Úaddhs
zMounter.addcCs4|j |¡}x"|D]\}}||jkr|j|=qWdS)N)rCÚpoprD)rErHrIÚkÚvr8r8r9Úremovels
zMounter.removeNcCs||jkr|}nd}|S)N)rD)rEÚfullnameÚpathÚresultr8r8r9Úfind_modulers
zMounter.find_modulecCsj|tjkrtj|}nP||jkr,td|ƒ‚t ||j|¡}||_| dd¡}t|ƒdkrf|d|_	|S)Nzunable to find extension for %sr)rr)
ÚsysÚmodulesrDÚImportErrorÚimpZload_dynamicÚ
__loader__ÚrsplitÚlenÚ__package__)rErOrQr7r8r8r9Úload_moduleys


zMounter.load_module)N)Ú__name__Ú
__module__Ú__qualname__rFrJrNrRr[r8r8r8r9rBcs

rBc@sîeZdZdZdZdZd4dd„Zedd	„ƒZed
d„ƒZ	edd
„ƒZ
edd„ƒZdd„Z
edd„ƒZdd„Zd5dd„Zdd„Zdd„Zdd„Zd6dd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd7d,d-„Zd.d/„Zd0d1„Zd8d2d3„ZdS)9ÚWheelz@
    Class to build and install from Wheel files (PEP 427).
    )rrÚsha256NFcCs8||_||_d|_tg|_dg|_dg|_t ¡|_	|dkrRd|_
d|_|j|_
nât |¡}|rš| d¡}|d|_
|d d	d
¡|_|d|_|j|_
nštj |¡\}}t |¡}|sÄtd|ƒ‚|rÖtj |¡|_	||_
| d¡}|d|_
|d|_|d|_|d
 d¡|_|d d¡|_|d d¡|_dS)zB
        Initialise an instance using a (valid) filename.
        r2ÚnoneÚanyNÚdummyz0.1ÚnmZvnr(r'ZbnzInvalid name or filename: %rr&r)ZbiÚar)ÚsignZ
should_verifyÚbuildverÚPYVERÚpyverÚabiÚarchr@ÚgetcwdÚdirnameÚnameÚversionÚfilenameÚ	_filenameÚNAME_VERSION_REÚmatchÚ	groupdictr?rPÚsplitÚFILENAME_RErÚabspath)rErprfÚverifyr.Úinformr8r8r9rF‘sB











zWheel.__init__cCs^|jrd|j}nd}d |j¡}d |j¡}d |j¡}|j dd¡}d|j|||||fS)zJ
        Build and return a filename from the various components.
        r'r2r)r(z%s-%s%s-%s-%s-%s.whl)rgr6rirjrkror?rn)rErgrirjrkror8r8r9rpºs
zWheel.filenamecCstj |j|j¡}tj |¡S)N)r@rPr6rmrpÚisfile)rErPr8r8r9ÚexistsËszWheel.existsccs@x:|jD]0}x*|jD] }x|jD]}|||fVq WqWqWdS)N)rirjrk)rErirjrkr8r8r9ÚtagsÐsz
Wheel.tagscCsþtj |j|j¡}d|j|jf}d|}t d¡}t	|dƒ¶}| 
|¡}|d dd¡}tdd	„|Dƒƒ}t
tg}	d}
x`|	D]X}y>t ||¡}| |¡}
||
ƒ}t|d
}
|
r´PWdQRXWq~tk
rÔYq~Xq~W|
sðtdd |	¡ƒ‚WdQRX|
S)
Nz%s-%sz%s.dist-infozutf-8Úrz
Wheel-Versionr)rcSsg|]}t|ƒ‘qSr8)Úint)Ú.0Úir8r8r9ú
<listcomp>àsz"Wheel.metadata.<locals>.<listcomp>)Úfileobjz8Invalid wheel, because metadata is missing: looked in %sz, )r@rPr6rmrprnroÚcodecsÚ	getreaderrÚget_wheel_metadataruÚtuplerrÚ	posixpathÚopenr
ÚKeyErrorÚ
ValueError)rErHÚname_verÚinfo_dirÚwrapperÚzfÚwheel_metadataÚwvÚfile_versionÚfnsrQÚfnÚmetadata_filenameÚbfÚwfr8r8r9Úmetadata×s0




zWheel.metadatac	CsXd|j|jf}d|}t |d¡}| |¡}t d¡|ƒ}t|ƒ}WdQRXt|ƒS)Nz%s-%sz%s.dist-infoÚWHEELzutf-8)	rnror‡r6rˆrƒr„rÚdict)rErŽr‹rŒr”r•r–Úmessager8r8r9r…÷szWheel.get_wheel_metadatac	Cs6tj |j|j¡}t|dƒ}| |¡}WdQRX|S)Nr})r@rPr6rmrprr…)rErHrŽrQr8r8r9rysz
Wheel.infocCsÔt |¡}|r|| ¡}|d|…||d…}}d| ¡krBt}nt}t |¡}|rfd| ¡d}nd}||}||}nT| d¡}| d¡}	|dks ||	kr¦d}
n|||d…d	krÀd	}
nd}
t|
|}|S)
Nspythonwó éÿÿÿÿr>ó
ó
rr%s
)	Ú
SHEBANG_RErsÚendÚlowerÚSHEBANG_PYTHONWÚSHEBANG_PYTHONÚSHEBANG_DETAIL_REÚgroupsÚfind)rEÚdatar.r ÚshebangZdata_after_shebangZshebang_pythonÚargsZcrÚlfZtermr8r8r9Úprocess_shebangs,




zWheel.process_shebangcCsh|dkr|j}ytt|ƒ}Wn tk
r<td|ƒ‚YnX||ƒ ¡}t |¡ d¡ 	d¡}||fS)NzUnsupported hash algorithm: %ró=Úascii)
Ú	hash_kindÚgetattrÚhashlibÚAttributeErrorrÚdigestÚbase64Úurlsafe_b64encodeÚrstripÚdecode)rEr§r®ÚhasherrQr8r8r9Úget_hash%szWheel.get_hashc	CsZt|ƒ}ttj ||¡ƒ}| |ddf¡t|ƒ}x|D]}| |¡q:WWdQRXdS)Nr2)ÚlistÚto_posixr@rPÚrelpathr5rÚwriterow)rEÚrecordsÚrecord_pathÚbaseÚpÚwriterÚrowr8r8r9Úwrite_record0s

zWheel.write_recordc
Cs²g}|\}}tt|jƒ}xX|D]P\}}	t|	dƒ}
|
 ¡}WdQRXd| |¡}tj |	¡}
| 	|||
f¡qWtj 
|d¡}	| ||	|¡ttj 
|d¡ƒ}| 	||	f¡dS)NÚrbz%s=%sÚRECORD)
r¯r°r®rˆÚreadr¸r@rPÚgetsizer5r6rÃrº)rEryÚlibdirÚ
archive_pathsr½ÚdistinforŒr·ÚaprÀÚfr§r²Úsizer8r8r9Ú
write_records8szWheel.write_recordsc	CsJt|dtjƒ2}x*|D]"\}}t d||¡| ||¡qWWdQRXdS)NÚwzWrote %s to %s in wheel)rÚzipfileÚZIP_DEFLATEDÚloggerÚdebugÚwrite)rErHrÉrŽrËrÀr8r8r9Ú	build_zipHszWheel.build_zipc"s®|dkri}tt‡fdd„dƒƒd}|dkrFd}tg}tg}tg}nd}tg}d	g}d
g}| d|¡|_| d|¡|_| d
|¡|_	ˆ|}	d|j
|jf}
d|
}d|
}g}
xîdD]æ}|ˆkrÆq¸ˆ|}tj
 |¡r¸xÂt |¡D]´\}}}x¨|D] }ttj
 ||¡ƒ}tj
 ||¡}ttj
 |||¡ƒ}|
 ||f¡|dkrö| d¡söt|dƒ}| ¡}WdQRX| |¡}t|dƒ}| |¡WdQRXqöWqæWq¸W|	}d}xÆt |¡D]¸\}}}||krx@t|ƒD]4\}}t|ƒ}| d¡rÔtj
 ||¡}||=PqÔW|stdƒ‚xP|D]H}t|ƒ d¡r8q tj
 ||¡}ttj
 ||¡ƒ}|
 ||f¡q Wq¶Wt |¡}xJ|D]B}|dkr‚ttj
 ||¡ƒ}ttj
 ||¡ƒ}|
 ||f¡q‚Wd|pÔ|jdtd|g}x*|jD] \}}}| d|||f¡qîWtj
 |d¡}t|dƒ}| d  |¡¡WdQRXttj
 |d¡ƒ}|
 ||f¡d!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)Nr8)r<)Úpathsr8r9r=Vr>zWheel.build.<locals>.<lambda>)ÚpurelibÚplatlibrrØÚfalseÚtruerarbrirjrkz%s-%sz%s.dataz%s.dist-info)r§ÚheadersÚscriptsrÜz.exerÄÚwbz
.dist-infoz(.dist-info directory expected, not found)z.pycz.pyo)rÅÚ	INSTALLERZSHAREDr˜zWheel-Version: %d.%dzGenerator: distlib %szRoot-Is-Purelib: %sz
Tag: %s-%s-%sr˜rÏÚ
cSs*|d}| d¡}d|kr"|d7}||fS)Nrr;z
.dist-infoi')Úcount)ÚtrËÚnr8r8r9Úsorter²s

zWheel.build.<locals>.sorter)Úkey)%r¹rÚIMPVERÚABIÚARCHrhÚgetrirjrkrnror@rPÚisdirÚwalkr	r6r»rºr5ÚendswithrˆrÆr«rÔÚ	enumerateÚAssertionErrorÚlistdirÚ
wheel_versionrr|ÚsortedrÎrmrprÕ)"rErÖr|rïZlibkeyÚis_pureZ
default_pyverZdefault_abiZdefault_archrÈr‹Údata_dirrŒrÉrärPÚrootÚdirsÚfilesr“rÀÚrprËrÌr§rÊr€ÚdnrrirjrkrãrHr8)rÖr9ÚbuildNs˜


 





zWheel.buildcCs
| d¡S)zl
        Determine whether an archive entry should be skipped when verifying
        or installing.
        )r;z/RECORD.jws)rë)rEÚarcnamer8r8r9Ú
skip_entryÂszWheel.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|ƒ|ddkr|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|_zºyˆxä| ¡D]Ö}#|#j}$t|$tƒrð|$}%n
|$ d
¡}%|  |%¡r
qÒ||%}|dr<t!|#j"ƒ|dkr<t#d|%ƒ‚|drž|d dd¡\}&}'| |$¡}| $¡}(WdQRX| %|(|&¡\})}*|*|'kržt#d|$ƒ‚|rÄ|% &||f¡rÄt' (d |%¡qÒ|% &|¡oÚ|% )d!¡}+|% &|¡r|% d"d¡\})},}-tj ||,t*|-ƒ¡}.n$|%|
|fkr$qÒtj |t*|%ƒ¡}.|+s4| |$¡}| +||.¡WdQRXtjd#kr€t ,|.|#j-d$?d%@¡|! .|.¡|sÞ|drÞt|.d&ƒ4}| $¡}(| %|(|&¡\})}/|/|*krÔt#d'|.ƒ‚WdQRX| r¨|. )d(¡r¨y|j/|.|d)}0|! .|0¡Wn$t0k
r0t'j1d*dd+YnXnttj 2t*|$ƒ¡}1tj |"|1¡}2| |$¡}| +||2¡WdQRXtj |.¡\}3}1|3|_| 3|1¡}4| 4|4¡|! 5|4¡qÒW|rÆt' (d,¡d}5n„d}6|j6d
}|d-kr´t	 |d.¡}7y¦| |7¡}t7|ƒ}8WdQRXi}6x~d/D]v}9d0|9}:|:|8kri|6d1|9<};xL|8|: 8¡D]<}<d2|<j9|<j:f}=|<j;rx|=d3d4 |<j;¡7}=|=|;|<j<qHWqWWn t0k
r°t' 1d5¡YnXndyB| |¡.}||ƒ}t< =|¡ d6¡}6|6rê|6 d7¡}6WdQRXWn t0k
rt' 1d8¡YnX|6rê|6 d9i¡}>|6 d:i¡}?|>sB|?rê| dd¡}@tj >|@¡sdt?d;ƒ‚|@|_x6|> @¡D]*\}:}<d<|:|<f}A| 3|A¡}4| 4|4¡qtW|?rêd=di}Bx8|? @¡D],\}:}<d<|:|<f}A| 3|A|B¡}4| 4|4¡qºWtj ||¡}tA|ƒ}5tB|ƒ}|d=|d=||d><|5 C||¡}|r8|! .|¡|5 D|!|d?|¡|5St0k
rvt' Ed@¡| F¡‚YnXWdtG H|"¡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``.
        ÚwarnerÚlib_onlyFZbytecode_hashed_invalidationz%s-%sz%s.dataz%s.dist-infor˜rÅzutf-8r}Nz
Wheel-Versionr)rcSsg|]}t|ƒ‘qSr8)r~)rr€r8r8r9røsz!Wheel.install.<locals>.<listcomp>zRoot-Is-PurelibrÚr×rØ)Ústreamrr2rÜ)Údry_runTr%zsize mismatch for %sú=zdigest mismatch for %szlib_only: skipping %sz.exer;ÚposixéiÿrÄzdigest mismatch on write for %sz.py)Úhashed_invalidationzByte-compilation failed)Úexc_infozlib_only: returning Nonez1.0zentry_points.txt)ÚconsoleÚguiz
%s_scriptszwrap_%sz%s:%sz [%s]ú,zAUnable to read legacy script metadata, so cannot generate scriptsrIzpython.commandsz8Unable to read JSON metadata, so cannot generate scriptsZwrap_consoleZwrap_guizValid script path not specifiedz%s = %srÚlibÚprefixzinstallation failed.)Irþrèr@rPr6rmrprnror‡rrƒr„rrˆrrur†rïrrÚrecordrSÚdont_write_bytecodeÚtempfileÚmkdtempÚ
source_dirÚ
target_dirÚinfolistÚ
isinstancer
r¶rúÚstrÚ	file_sizerrÆr¸Ú
startswithrÒrÓrërÚcopy_streamÚchmodÚ
external_attrr5Úbyte_compileÚ	ExceptionÚwarningÚbasenameÚmakeÚset_executable_modeÚextendryrÚvaluesrÚsuffixÚflagsÚjsonÚloadrérŠÚitemsrr™Zwrite_shared_locationsZwrite_installed_filesÚ	exceptionÚrollbackÚshutilÚrmtree)CrErÖÚmakerÚkwargsrþrûrüZbc_hashed_invalidationrHr‹ròrŒÚ
metadata_nameÚwheel_metadata_nameÚrecord_namerrŽÚbwfr–ršrr‘rÈr½r•ÚreaderrÂrÀZdata_pfxZinfo_pfxZ
script_pfxÚfileopZbcZoutfilesÚworkdirÚzinforùÚ	u_arcnameÚkindÚvaluer§r(r²Z	is_scriptÚwhereröÚoutfileZ	newdigestZpycr“Zworknamer÷Ú	filenamesÚdistÚcommandsÚepZepdatarärLr,rMÚsÚconsole_scriptsÚgui_scriptsZ
script_dirÚscriptÚoptionsr8r8r9ÚinstallÒsJ



"















z
Wheel.installcCs8tdkr4tj tƒtdƒdtjdd…¡}t|ƒatS)Nzdylib-cachez%s.%sr%)	Úcacher@rPr6rrrSÚversion_infor)rEr¿r8r8r9Ú_get_dylib_cache¿s
zWheel._get_dylib_cachec
Csltj |j|j¡}d|j|jf}d|}t |d¡}t 	d¡}g}t
|dƒ}yô| |¡à}||ƒ}	t 
|	¡}
| ¡}| |¡}tj |j|¡}
tj |
¡sªt |
¡xŽ|
 ¡D]‚\}}tj |
t|ƒ¡}tj |¡sàd}n6t |¡j}tj |¡}| |¡}tj|jŽ}||k}|r(| ||
¡| ||f¡q´WWdQRXWntk
r\YnXWdQRX|S)Nz%s-%sz%s.dist-infoZ
EXTENSIONSzutf-8r}T)r@rPr6rmrprnror‡rƒr„rrˆr!r"rCÚ
prefix_to_dirr¿réÚmakedirsr#rr{ÚstatÚst_mtimeÚdatetimeÚ
fromtimestampÚgetinfoÚ	date_timeÚextractr5r‰)rErHr‹rŒrùrrQrŽr•r–rIrArZ
cache_basernr»ÚdestrLZ	file_timeryZ
wheel_timer8r8r9Ú_get_extensionsÈs>




 zWheel._get_extensionscCst|ƒS)zM
        Determine if a wheel is compatible with the running system.
        )Ú
is_compatible)rEr8r8r9rOêszWheel.is_compatiblecCsdS)zP
        Determine if a wheel is asserted as mountable by its metadata.
        Tr8)rEr8r8r9Úis_mountableðszWheel.is_mountablecCs´tj tj |j|j¡¡}| ¡s2d|}t|ƒ‚| ¡sJd|}t|ƒ‚|t	jkrbt
 d|¡nN|rtt	j |¡nt	j 
d|¡| ¡}|r°tt	jkr¤t	j t¡t ||¡dS)Nz)Wheel %s not compatible with this Python.z$Wheel %s is marked as not mountable.z%s already in pathr)r@rPrwr6rmrprOrrPrSrÒrÓr5ÚinsertrNÚ_hookÚ	meta_pathrJ)rEr5rHÚmsgrIr8r8r9Úmountös"

zWheel.mountcCsrtj tj |j|j¡¡}|tjkr2t d|¡n<tj 	|¡|t
jkrRt
 	|¡t
jsnt
tjkrntj 	t
¡dS)Nz%s not in path)
r@rPrwr6rmrprSrÒrÓrNrRrCrS)rErHr8r8r9Úunmounts



z
Wheel.unmountcCstj |j|j¡}d|j|jf}d|}d|}t |t¡}t |d¡}t |d¡}t	 
d¡}t|dƒ–}	|	 |¡}
||
ƒ}t
|ƒ}WdQRX|d d	d
¡}
tdd„|
Dƒƒ}i}|	 |¡:}t|d
$}x|D]}|d}|||<qØWWdQRXWdQRXxø|	 ¡D]ì}|j}t|tƒr*|}n
| d¡}| d¡}d|krTtd|ƒ‚| |¡rdq||}|dr–t|jƒ|dkr–td|ƒ‚|d
r|d
 dd
¡\}}|	 |¡}| ¡}WdQRX| ||¡\}}||krtd|ƒ‚qWWdQRXdS)Nz%s-%sz%s.dataz%s.dist-infor˜rÅzutf-8r}z
Wheel-Versionr)rcSsg|]}t|ƒ‘qSr8)r~)rr€r8r8r9r(sz Wheel.verify.<locals>.<listcomp>)rýrr;z..zinvalid entry in wheel: %rr%zsize mismatch for %srÿzdigest mismatch for %s)r@rPr6rmrprnror‡rrƒr„rrˆrrur†rrrr
r¶rrúrrrÆr¸)rErHr‹ròrŒr*r+r,rrŽr-r–ršrr‘r½r•r.rÂrÀr1rùr2r3r4r§r(r²r8r8r9rxsV

 




zWheel.verifyc
KsÜdd„}dd„}tj |j|j¡}d|j|jf}d|}t |d¡}	tƒ„}
t	|dƒ€}i}xt| 
¡D]h}
|
j}t|tƒr„|}n
| 
d	¡}||	kr˜qjd
|kr¬td|ƒ‚| |
|
¡tj |
t|ƒ¡}|||<qjWWdQRX|||ƒ\}}||f|Ž}|rÎ|||ƒ\}}|r(||kr(|||ƒ|dkrRtjd
d|
d\}}t |¡n*tj |¡sltd|ƒ‚tj ||j¡}t| ¡ƒ}tj |
|¡}||f}| ||
|¡| ||¡|dkrÎt ||¡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|dj}||fS)Nz%s/%sz%s/PKG-INFO)rP)rr
ro)Úpath_maprŒrorPrär8r8r9Úget_version`sz!Wheel.update.<locals>.get_versioncSsàd}y|t|ƒ}| d¡}|dkr*d|}nTdd„||dd… d¡Dƒ}|dd7<d	|d|…d d
d„|Dƒ¡f}Wn tk
r t d|¡YnX|rÜt|d
}||_| 	t
¡}|j||dt d||¡dS)Nr'rz%s+1cSsg|]}t|ƒ‘qSr8)r~)rr;r8r8r9rrsz8Wheel.update.<locals>.update_version.<locals>.<listcomp>rr)rœz%s+%scss|]}t|ƒVqdS)N)r)rr€r8r8r9ú	<genexpr>usz7Wheel.update.<locals>.update_version.<locals>.<genexpr>z0Cannot update non-compliant (PEP-440) version %r)rP)rPÚlegacyzVersion updated from %r to %r)rr¦rur6rrÒrÓr
rorërrÔ)rorPÚupdatedrMr€r7ZmdrZr8r8r9Úupdate_versionjs(

 

z$Wheel.update.<locals>.update_versionz%s-%sz%s.dist-inforÅr}zutf-8z..zinvalid entry in wheel: %rNz.whlz
wheel-update-)rrÚdirzNot a directory: %r)r@rPr6rmrprnror‡rrrrr
r¶rrLrrÚmkstempÚcloserér¹r#rÎrÕr&Úcopyfile)rEÚmodifierÚdest_dirr)rXr\rHr‹rŒr,r0rŽrWr1rùr2rPZoriginal_versionr(ÚmodifiedÚcurrent_versionÚfdÚnewpathrÉrÊryr8r8r9rGOsX






zWheel.update)NFF)N)NN)F)N)r\r]r^Ú__doc__rïr®rFÚpropertyrpr{r|rr—r…ryr«r¸rÃrÎrÕrørúr@rCrNrOrPrUrVrxrGr8r8r8r9r_‰s6
) 	

tn	"
8r_cCs^ddl}| ¡}g}|ddkrZx0|d d¡D]}| | ¡rHt|ƒnd¡q0Wt|ƒ}|S)NrÚglibcrr))ÚplatformÚlibc_verrur5Úisdigitr~r†)rjÚverrQr;r8r8r9Ú_get_glibc_version´srnc
CsŽtg}td}x6ttjddddƒD]}| d |t|ƒg¡¡q&Wg}x6t ¡D]*\}}}| 	d¡rT| | 
dd¡d¡qTW| ¡tdkrž| 
dt¡| d¡g}tg}tjd	kr t d
t¡}|r | ¡\}	}}}
t|ƒ}|
g}|
dkr| d¡|
d
kr| d¡|
dkr*| d¡|
dkr>| d¡|
dkrR| d¡xL|dkržx2|D]*}d|	|||f}
|
tkrd| |
¡qdW|d8}qTWx.|D]$}x|D]}
| d t|df¡||
f¡|dkr¶tj 	d¡r¶|
 dd¡}
tƒ}t|ƒdkr¶|dkr>| d t|df¡|d|
f¡|dkrj| d t|df¡|d|
f¡|dkr–| d t|df¡|d|
f¡| d t|df¡|d|d|d|
ff¡q¶Wq¨WxXt|ƒD]L\}}| d t|f¡ddf¡|dkrÜ| d t|df¡ddf¡qÜWxXt|ƒD]L\}}| d d |f¡ddf¡|dkr6| d d |df¡ddf¡q6Wt|ƒS)!zG
    Return (pyver, abi, arch) tuples compatible with this Python.
    rrrœr2z.abir)r%raÚdarwinz(\w+)_(\d+)_(\d+)_(\w+)$)Úi386ÚppcÚfat)rprqÚx86_64Zfat3)Úppc64rsÚfat64)rprsÚintel)rprsrvrqrtÚ	universalz%s_%s_%s_%sÚlinuxZlinux_)r%éz
manylinux1_%s)r%ézmanylinux2010_%s)r%ézmanylinux2014_%szmanylinux_%s_%s_%srbr&)r3ÚrangerSrBr5r6rrVZget_suffixesrruÚsortrærQrçrjÚrersr¥r~Ú
IMP_PREFIXr?rnrYrìÚset)ÚversionsÚmajorÚminorÚabisrr(rQÚarchesr.rnrkÚmatchesrsr;rjr7r€ror8r8r9Úcompatible_tags¾s€

















$
$r‡cCs^t|tƒst|ƒ}d}|dkr"t}x6|D].\}}}||jkr(||jkr(||jkr(d}Pq(W|S)NFT)rr_ÚCOMPATIBLE_TAGSrirjrk)Úwheelr|rQrmrjrkr8r8r9rOs
rO)N)UÚ
__future__rr³rƒrHÚemailrr°rVr!Úloggingr@r‡r~r&rSrrÐr2rrÚcompatrrr	r
rZdatabaserr—r
rrrÚutilrrrrrrrrrrrorrÚ	getLoggerr\rÒrAÚhasattrrrjrr4r3rBrhrår?rçrærur:ÚcompileÚ
IGNORECASEÚVERBOSErvrrrŸr¤r£r¢rArºÚobjectrBrRr_rnr‡rˆrOr8r8r8r9Ú<module>s†0


	


#1
P