ok

Mini Shell

Direktori : /opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/
Upload File :
Current File : //opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyo

�
�2{Yc@slddlmZddlZddlZddlZddlZddlmZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlmZmZddlmZmZmZmZmZddlmZddlm Z m!Z!dd	l"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<ej"j=�j>dd�j>dd�Z?ej8d�Z@e@oze@j7d�r�e@j>dd�Z@nd�ZAeA�Z@[AejBdejCejDB�ZEejBdejCejDB�ZFejBd�ZGe
jHdkr	d �ZIn	d!�ZId"eJfd#��YZKeK�ZLd$eJfd%��YZMd&�ZNeN�ZO[Ne2d'�ZPdS((i����(tunicode_literalsN(tmessage_from_filei(t__version__tDistlibException(t	sysconfigtZipFiletfsdecodet	text_typetfilter(tInstalledDistribution(tMetadatatMETADATA_FILENAME(	tFileOperatortconvert_patht	CSVReadert	CSVWritertCachetcached_propertytget_cache_basetread_exportsttempdir(tNormalizedVersiontUnsupportedVersionErrorupypy_version_infouppujavaujyucliuipucpupy_version_nodotu%s%siupyu-u_u.uSOABIucpython-cCs|dtg}tjd�r+|jd�ntjd�rJ|jd�ntjd�dkro|jd�nd	j|�S(
NucpuPy_DEBUGudu
WITH_PYMALLOCumuPy_UNICODE_SIZEiuuu(t
VER_SUFFIXRtget_config_vartappendtjoin(tparts((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyt_derive_abi;sur
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?
-(?P<py>\w+\d+(\.\w+\d+)*)
-(?P<bi>\w+)
-(?P<ar>\w+)
\.whl$
u7
(?P<nm>[^-]+)
-(?P<vn>\d+[^-]*)
(-(?P<bn>\d+[^-]*))?$
s
\s*#![^\r\n]*u/cCs|S(N((to((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyt<lambda>ZscCs|jtjd�S(Nu/(treplacetostsep(R((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR\stMountercBs8eZd�Zd�Zd�Zdd�Zd�ZRS(cCsi|_i|_dS(N(t
impure_wheelstlibs(tself((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyt__init__`s	cCs!||j|<|jj|�dS(N(R#R$tupdate(R%tpathnamet
extensions((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytaddds
cCsI|jj|�}x0|D](\}}||jkr|j|=qqWdS(N(R#tpopR$(R%R(R)tktv((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytremovehscCs"||jkr|}nd}|S(N(R$tNone(R%tfullnametpathtresult((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytfind_modulens	cCs�|tjkrtj|}nx||jkrAtd|��ntj||j|�}||_|jdd�}t|�dkr�|d|_	n|S(Nuunable to find extension for %su.ii(
tsystmodulesR$tImportErrortimptload_dynamict
__loader__trsplittlent__package__(R%R0R2R((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytload_moduleus	N(t__name__t
__module__R&R*R.R/R3R=(((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR"_s
			tWheelcBseZdZdZdZdeed�Zed��Z	ed��Z
ed��Zed��Z
d�Zed	��Zd
�Zdd�Zd�Zd
�Zd�Zddd�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/tnametversiontfilenamet	_filenametNAME_VERSION_REtmatcht	groupdictRR1tsplittFILENAME_RERtabspath(R%RLRAtverifytmtinfoRI((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR&�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(RCRRERFRGRKRRJ(R%RCRERFRGRK((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyRL�s	cCs+tjj|j|j�}tjj|�S(N(R R1RRIRLtisfile(R%R1((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytexists�sccsNxG|jD]<}x3|jD](}x|jD]}|||fVq*WqWq
WdS(N(RERFRG(R%RERFRG((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyttags�scCs8tjj|j|j�}d|j|jf}d|}tjd�}t	|d���}|j
|�}|djdd�}tg|D]}t
|�^q��}	|	dkr�d}
nt}
yItj||
�}|j|��"}||�}
td	|
�}WdQXWn!tk
r-td
|
��nXWdQX|S(Nu%s-%su%s.dist-infouutf-8uru
Wheel-Versionu.iuMETADATAtfileobju$Invalid wheel, because %s is missing(ii(R R1RRIRLRJRKtcodecst	getreaderRtget_wheel_metadataRQttupletintRt	posixpathtopenR
tKeyErrort
ValueError(R%R(tname_vertinfo_dirtwrappertzftwheel_metadatatwvtitfile_versiontfntmetadata_filenametbftwfR2((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytmetadata�s(
%	
cCsud|j|jf}d|}tj|d�}|j|��(}tjd�|�}t|�}WdQXt|�S(Nu%s-%su%s.dist-infouWHEELuutf-8(	RJRKR`RRaR[R\Rtdict(R%RgRdReRmRnRotmessage((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR]�s
cCsFtjj|j|j�}t|d��}|j|�}WdQX|S(Nur(R R1RRIRLRR](R%R(RgR2((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyRV�scCs�tj|�}|r,d||j�}ns|jd�}|jd�}|dksb||krkd}n&|||d!dkr�d}nd}d||}|S(Ns#!pythons
s
iis
(t
SHEBANG_REROtendtfind(R%tdataRUtcrtlftterm((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/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(R%RvR|thasherR2((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytget_hashs
!cCsht|��V}x|D]}|j|�qWttjj||��}|j|ddf�WdQXdS(Nu(Rtwriterowtto_posixR R1trelpath(R%trecordstrecord_pathtbasetwritertrowtp((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytwrite_records

cCs�g}|\}}tt|j�}xs|D]k\}}	t|	d��}
|
j�}WdQXd|j|�}tjj|	�}
|j	|||
f�q+Wtjj
|d�}	|j||	|�ttjj
|d��}|j	||	f�dS(Nurbu%s=%suRECORD(
R}R~R|RatreadR�R R1tgetsizeRRR�R�(R%RVtlibdirt
archive_pathsR�tdistinfoReR�tapR�tfRvR�tsize((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyt
write_recordssc	Cs\t|dtj��A}x7|D]/\}}tjd||�|j||�qWWdQXdS(NuwuWrote %s to %s in wheel(RtzipfiletZIP_DEFLATEDtloggertdebugtwrite(R%R(R�RgR�R�((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyt	build_zip.sc!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}x�t
j|�D]�\}}}||kr�xXt|�D]G\}}t|�}|jd�r�t
jj||�}||=Pq�q�Wnxl|D]d}t|�jd%�r	q�nt
jj||�}tt
jj||��}|
j||f�q�WqkWt
j|�}xf|D]^}|d&krjtt
jj||��}tt
jj||��}|
j||f�qjqjWd|p�|jdtd|g}x4|jD])\}}}|jd|||f�q�Wt
jj|d �}t|d!��}|jd"j|��WdQXtt
jj|d ��}|
j||f�|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(sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR<supurelibuplatlibiufalseutrueunoneuanyupyveruabiuarchu%s-%su%s.datau%s.dist-infoudatauheadersuscriptsu.exeurbNuwbu
.dist-infou.pycu.pyouRECORDu	INSTALLERuSHAREDuWheel-Version: %d.%duGenerator: distlib %suRoot-Is-Purelib: %su
Tag: %s-%s-%suWHEELuwu
(upurelibuplatlib(udatauheadersuscripts(u.pycu.pyo(uRECORDu	INSTALLERuSHARED($R/tlistRtIMPVERtABItARCHRDtgetRERFRGRJRKR R1tisdirtwalkRRR�R�RtendswithRaR�RzR�t	enumeratetlistdirt
wheel_versionRRYR�RIRLR�(!R%R�RYR�tlibkeytis_puret
default_pyvertdefault_abitdefault_archR�Rdtdata_dirReR�tkeyR1troottdirstfilesRlR�trpR�R�RvR�RjtdnRhRERFRGR(((R�sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytbuild4s�	"					





%


cCKs�	|j}|jd�}|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|�}Wd
QX|djdd
�}tg|D]}t|�^q�}||jkrY|rY||j|�n|ddkrv|d}n
|d}i}|j|
��D}td|��,}x"|D]}|d}|||<q�WWd
QXWd
QXt
j|	d�}t
j|
d�}t
j|	dd�}td|�}t|_tj} g}!tj�}"|"|_d
|_zy�x�|j �D]�}#|#j}$t!|$t"�r�|$}%n|$j#d�}%|%j$d�r�qmn||%}|dr�t%|#j&�|dkr�t'd|%��n|d
r||d
jdd
�\}&}'|j|$��}|j(�}(Wd
QX|j)|(|&�\})}*|*|'kr|t'd|$��q|n|r�|%j*||f�r�t+j,d|%�qmn|%j*|�o�|%j$d�}+|%j*|�r|%jdd�\})},}-tjj||,t-|-��}.n3|%||
fkr0qmntjj|t-|%��}.|+sW|j|$��}|j.||.�Wd
QX|!j/|.�|r�|d
r�t|.d��J}|j(�}(|j)|(|&�\})}/|/|*kr�t'd |.��nWd
QXn| r�|.j$d!�r�y |j0|.�}0|!j/|0�WqTt1k
rPt+j2d"d#t�qTXq�qmtjj3t-|$��}1tjj|"|1�}2|j|$��}|j.||2�Wd
QXtjj|.�\}3}1|3|_|j4|1�}4|j5|4�|!j6|4�qmW|rt+j,d$�d
}5n"d
}6|j7d}|d%kr0t
j|
d&�}7y�|j|7��}t8|�}8Wd
QXi}6x�d7D]�}9d)|9}:|:|8kr{i|6d*|9<};x[|8|:j9�D]F}<d+|<j:|<j;f}=|<j<r�|=d,|<j<7}=n|=|;|<j<q�Wq{q{WWq�t1k
r,t+j2d-�q�Xnay@|j|��+}||�}t=j>|�jd.�}6Wd
QXWnt1k
r�t+j2d/�nX|6r�|6jd0i�}>|6jd1i�}?|>s�|?r�|jdd�}@tjj?|@�s�t@d2��n|@|_xF|>jA�D]8\}:}<d3|:|<f}A|j4|A�}4|j5|4�qW|?r�itd(6}BxL|?jA�D];\}:}<d3|:|<f}A|j4|A|B�}4|j5|4�qlWq�q�ntjj||
�}tB|�}5tC|�}|d=|d=||d4<|5jD||�}|r!	|!j/|�n|5jE|!|d5|�|5SWn+t1k
rj	t+jFd6�|jG��nXWd
tHjI|"�XWd
QXd
S(8u�
        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.

        The return value is a :class:`InstalledDistribution` instance unless
        ``options.lib_only`` is True, in which case the return value is ``None``.
        uwarnerulib_onlyu%s-%su%s.datau%s.dist-infouWHEELuRECORDuutf-8urNu
Wheel-Versionu.iuRoot-Is-Purelibutrueupurelibuplatlibtstreamiuuscriptstdry_runu/RECORD.jwsiusize mismatch for %su=udigest mismatch for %sulib_only: skipping %su.exeu/urbudigest mismatch on write for %su.pyuByte-compilation failedtexc_infoulib_only: returning Noneu1.0uentry_points.txtuconsoleuguiu
%s_scriptsuwrap_%su%s:%su %suAUnable to read legacy script metadata, so cannot generate scriptsucommandsu8Unable to read JSON metadata, so cannot generate scriptsuwrap_consoleuwrap_guiuValid script path not specifiedu%s = %sulibuprefixuinstallation failed.(uconsoleugui(JR�R�tFalseR R1RRIRLRJRKR`RR[R\RRaRRQR^R_R�RRtTruetrecordR4tdont_write_bytecodettempfiletmkdtempt
source_dirR/t
target_dirtinfolistt
isinstanceRR�R�tstrt	file_sizeRR�R�t
startswithR�R�R
tcopy_streamRtbyte_compilet	Exceptiontwarningtbasenametmaketset_executable_modetextendRVRtvaluestprefixtsuffixtflagstjsontloadR�RctitemsR	Rqtwrite_shared_locationstwrite_installed_filest	exceptiontrollbacktshutiltrmtree(CR%R�tmakertkwargsR�twarnertlib_onlyR(RdR�Ret
metadata_nametwheel_metadata_nametrecord_nameRfRgtbwfRoRrRiRjRkR�R�RntreaderR�R�tdata_pfxtinfo_pfxt
script_pfxtfileoptbctoutfilestworkdirtzinfotarcnamet	u_arcnametkindtvalueRvt_R�t	is_scripttwhereR�toutfilet	newdigesttpycRltworknameR�t	filenamestdisttcommandsteptepdataR�R,tdR-tstconsole_scriptstgui_scriptst
script_dirtscripttoptions((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytinstall�s@	

%



	
				
#

"

	

	


	
"
	




cCsGtdkrCtjjt�td�tjd �}t	|�antS(Nudylib-cachei(
tcacheR/R R1RRR�R4RKR(R%R�((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/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 R1RRIRLRJRKR`R[R\RRaR�R�Rt
prefix_to_dirR�R�tmakedirsR�R
RXR�tstattst_mtimetdatetimet
fromtimestamptgetinfot	date_timetextractRRb(R%R(RdReR�RfR2RgRnRoR)RR�t
cache_baseRJR�tdestRt	file_timeRVt
wheel_time((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyt_get_extensions�s>
	!

cCs
t|�S(uM
        Determine if a wheel is compatible with the running system.
        (t
is_compatible(R%((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR�scCstS(uP
        Determine if a wheel is asserted as mountable by its metadata.
        (R�(R%((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/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 R1RSRRIRLRRRR4R�R�RtinsertRt_hookt	meta_pathR*(R%RR(tmsgR)((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytmount�s"'

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 R1RSRRIRLR4R�R�R.RR#R(R%R(((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/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}|||<q8WWdQXWdQXx<|	j�D].}|j}t|t�r�|}n|jd�}d
|kr�td|��n|jd�r�qon||}|drt|j�|dkrtd|��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..uinvalid entry in wheel: %ru/RECORD.jwsiusize mismatch for %su=udigest mismatch for %s(R R1RRIRLRJRKR`RR[R\RRaRRQR^R_RR�R�RR�RR�R�R�R�R�(R%R(RdR�ReR�R�R�RfRgR�RoRrRiRjRkR�RnR�R�R�R�R�R�R�R�RvR�R�((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyRT�sT

%

		

#

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-INFOR1(R/RR
RK(tpath_mapReRKR1R�((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytget_versions


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.0Rj((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pys	<genexpr>2su0Cannot update non-compliant (PEP-440) version %rR1tlegacyuVersion updated from %r to %r(R/RRuRQR_RRR�R�R
RKR�RR�(	RKR1tupdatedR-RjRRtmdR"((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytupdate_version's(
0
!
		u%s-%su%s.dist-infouRECORDuruutf-8u..uinvalid entry in wheel: %rNR�u.whlR�u
wheel-update-tdiruNot a directory: %r(R R1RRIRLRJRKR`RRR�R�RR�RRR
R/R�tmkstemptcloseR�R�R�R�R�R�tcopyfile(R%tmodifiertdest_dirR�R R%R(RdReR�R�RgRR�R�R�R1toriginal_versionR�tmodifiedtcurrent_versiontfdtnewpathR�R�RV((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR'sX	
	
		
(iiN(R>R?t__doc__R�R|R/R�R&tpropertyRLRXRYRRpR]RVRzR�R�R�R�R�RRRRRRRRTR'(((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR@�s2)						h	�			"				6cCs�tg}td}xGttjdddd�D](}|jdj|t|�g��q1Wg}xLtj�D]>\}}}|j	d�rp|j|j
dd�d�qpqpW|j�tdkr�|j
dt�n|jd�g}tg}tjd	kr=tjd
t�}|r=|j�\}	}}}
t|�}|
g}|
dkrg|jd
�n|
dkr�|jd�n|
dkr�|jd�n|
dkr�|jd�n|
dkr�|jd�nx`|dkr6x@|D]8}d|	|||f}
|
tkr�|j|
�q�q�W|d8}q�Wq=nxH|D]@}x7|D]/}
|jdjt|df�||
f�qQWqDWxwt|�D]i\}}|jdjt|f�ddf�|dkr�|jdjt|df�ddf�q�q�Wxwt|�D]i\}}|jdjd|f�ddf�|dkr|jdjd|df�ddf�qqWt|�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_%suanyupy(ui386uppc(ui386uppcux86_64(uppc64ux86_64(ui386ux86_64(ui386ux86_64uinteluppcuppc64(RtrangeR4tversion_infoRRR�R7tget_suffixesR�RQtsortR�RR�tplatformtreROtgroupsR_t
IMP_PREFIXR�tset(tversionstmajortminortabisR�R�R2tarchesRURJRGtmatchesRORRFRjRK((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pytcompatible_tagsqs`	
$&$

		


1%0%0cCs�t|t�st|�}nt}|dkr9t}nxN|D]F\}}}||jkr@||jkr@||jkr@t}Pq@q@W|S(N(	R�R@R�R/tCOMPATIBLE_TAGSRERFRGR�(twheelRYR2tverRFRG((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyR�s	-(Qt
__future__RR�R[R
tdistutils.utilt	distutilstemailRR~R7R�tloggingR R`R8R�R4R�R�tRRtcompatRRRRRtdatabaseR	RpR
RtutilRR
RRRRRRRRKRRt	getLoggerR>R�R/RthasattrR:R7R�RRR4RDR�tget_platformRR�R�Rtcompilet
IGNORECASEtVERBOSERRRNRsR!R�tobjectR"RR@RBRCR(((sJ/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/wheel.pyt<module>sx(@			

'				#	���	>	

Zerion Mini Shell 1.0