509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
Ävhb  ã               @   sÀ   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	m
Z
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 ejd
ejƒjZdZdd„ ZG dd„ deƒZdS )zWheels support.é    )Úget_platformN)ÚDistributionÚPathMetadataÚparse_version)Úcanonicalize_name)ÚPY3)r   )Ú
pep425tags)Úwrite_requirementsz‚^(?P<project_name>.+?)-(?P<version>\d.*?)
    ((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
    )\.whl$zštry:
    __import__('pkg_resources').declare_namespace(__name__)
except ImportError:
    __path__ = __import__('pkgutil').extend_path(__path__, __name__)
c             C   sð   x¸t j| ƒD ]ª\}}}t jj|| ƒ}x6|D ].}t jj||ƒ}t jj|||ƒ}t j||ƒ q*W xXttt|ƒƒƒD ]D\}	}
t jj||
ƒ}t jj|||
ƒ}t jj	|ƒsnt j||ƒ ||	= qnW qW x0t j| dd�D ]\}}}| sÞt
‚t j|ƒ qÊW dS )zDMove everything under `src_dir` to `dst_dir`, and delete the former.T)ÚtopdownN)ÚosÚwalkÚpathÚrelpathÚjoinÚrenamesÚreversedÚlistÚ	enumerateÚexistsÚAssertionErrorÚrmdir)Zsrc_dirZdst_dirÚdirpathZdirnamesÚ	filenamesÚsubdirÚfÚsrcÚdstÚnÚd© r   ú/usr/lib/python3.6/wheel.pyÚunpack!   s    

r!   c               @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚWheelc             C   sT   t tjj|ƒƒ}|d kr$td| ƒ‚|| _x$|jƒ jƒ D ]\}}t| ||ƒ q8W d S )Nzinvalid wheel name: %r)	Ú
WHEEL_NAMEr   r   ÚbasenameÚ
ValueErrorÚfilenameÚ	groupdictÚitemsÚsetattr)Úselfr&   ÚmatchÚkÚvr   r   r    Ú__init__9   s    zWheel.__init__c             C   s&   t j| jjdƒ| jjdƒ| jjdƒƒS )z>List tags (py_version, abi, platform) supported by this wheel.Ú.)Ú	itertoolsÚproductÚ
py_versionÚsplitÚabiÚplatform)r*   r   r   r    ÚtagsA   s    
z
Wheel.tagsc                s$   t jƒ ‰ t‡ fdd„| jƒ D ƒdƒS )z5Is the wheel is compatible with the current platform?c             3   s   | ]}|ˆ krd V  qdS )TNr   )Ú.0Út)Úsupported_tagsr   r    ú	<genexpr>J   s    z&Wheel.is_compatible.<locals>.<genexpr>F)r   Zget_supportedÚnextr6   )r*   r   )r9   r    Úis_compatibleG   s    zWheel.is_compatiblec             C   s*   t | j| j| jdkrd ntƒ d�jƒ d S )NÚany)Úproject_nameÚversionr5   z.egg)r   r>   r?   r5   r   Úegg_name)r*   r   r   r    r@   L   s    zWheel.egg_namec             C   sJ   x<|j ƒ D ]0}tj|ƒ}|jdƒr
t|ƒjt| jƒƒr
|S q
W tdƒ‚d S )Nz
.dist-infoz.unsupported wheel format. .dist-info not found)ZnamelistÚ	posixpathÚdirnameÚendswithr   Ú
startswithr>   r%   )r*   ÚzfÚmemberrB   r   r   r    Úget_dist_infoR   s    

zWheel.get_dist_infoc                s  t j| jƒ��ö‰d| j| jf }| jˆƒ‰d| ‰‡‡fdd„}|dƒ}|dƒ}t|jdƒƒ}tdƒ|  koxtd	ƒk n  sŠtd
| ƒ‚t	j
|ƒ ˆj|ƒ t	jj|ˆƒ‰tj|ˆt|ˆƒd�‰ dd„ ‰tttˆˆ jƒ ƒƒƒ‰‡ ‡‡fdd„ˆ jD ƒ}t	jj|dƒ}t	jˆ|ƒ t	jt	jj|dƒt	jj|dƒƒ ttˆ|d�d�}	t|	jdƒdt	jj|dƒƒ t	jj|ˆƒ‰t	jjˆdƒ}
t	jj|
ƒ�rt	jj|ddƒ}t	j
|ƒ xVt	j|
ƒD ]H}|jdƒ�rÖt	jt	jj|
|ƒƒ n t	jt	jj|
|ƒt	jj||ƒƒ �q°W t	j|
ƒ x0t t	jj‡fdd„d#D ƒƒD ]}t!||ƒ �q$W t	jjˆƒ�rPt	jˆƒ t	jj|dƒ}t	jj|ƒ�r t"|ƒ�}|j#ƒ j$ƒ }W dQ R X xr|D ]j}t	jj|f|j$d ƒžŽ }t	jj|d!ƒ}t	jj|ƒ�r’t	jj|ƒ �r’t"|d"ƒ�}|j%t&ƒ W dQ R X �q’W W dQ R X dS )$z"Install wheel as an egg directory.z%s-%sz%s.datac          	      sH   ˆj tjˆ | ƒƒ�,}tr&|jƒ jdƒn|jƒ }tjjƒ j	|ƒS Q R X d S )Nzutf-8)
ÚopenrA   r   r   ÚreadÚdecodeÚemailÚparserZParserZparsestr)ÚnameÚfpÚvalue)Ú	dist_inforE   r   r    Úget_metadatab   s    z*Wheel.install_as_egg.<locals>.get_metadataZWHEELZMETADATAzWheel-Versionz1.0z2.0dev0z$unsupported wheel format version: %s)Zmetadatac             S   s   d | _ t| ƒS )N)ZmarkerÚstr)Úreqr   r   r    Úraw_reqx   s    z%Wheel.install_as_egg.<locals>.raw_reqc          	      s6   i | ].}t t‡fd d„tˆˆ j|fƒƒD ƒƒƒ|“qS )c             3   s   | ]}|ˆ kr|V  qd S )Nr   )r7   rS   )Úinstall_requiresr   r    r:   ~   s   z2Wheel.install_as_egg.<locals>.<dictcomp>.<genexpr>)r   ÚsortedÚmapÚrequires)r7   Zextra)ÚdistrU   rT   r   r    ú
<dictcomp>|   s   z(Wheel.install_as_egg.<locals>.<dictcomp>zEGG-INFOzPKG-INFO)rU   Úextras_require)ZattrsÚegg_infoNzrequires.txtÚscriptsz.pycc             3   s   | ]}t jjˆ |ƒV  qd S )N)r   r   r   )r7   r   )Ú	dist_datar   r    r:   Ÿ   s   z'Wheel.install_as_egg.<locals>.<genexpr>ÚdataÚheadersÚpurelibÚplatlibznamespace_packages.txtr/   z__init__.pyÚw)r_   r`   ra   rb   )'ÚzipfileZZipFiler&   r>   r?   rG   r   Úgetr%   r   ÚmkdirZ
extractallr   r   r   Zfrom_locationr   r   rV   rW   rX   ZextrasÚrenameÚSetuptoolsDistributionÚdictr	   Zget_command_objr   ÚlistdirrC   Úunlinkr   Úfilterr!   rH   rI   r3   ÚwriteÚNAMESPACE_PACKAGE_INIT)r*   Zdestination_eggdirZdist_basenamerQ   Zwheel_metadataZdist_metadataZwheel_versionr[   r\   Z
setup_distZdist_data_scriptsZegg_info_scriptsÚentryr   Znamespace_packagesrN   ÚmodZmod_dirZmod_initr   )rY   r^   rP   rU   rT   rE   r    Úinstall_as_egg\   sr    
 










zWheel.install_as_eggN)	Ú__name__Ú
__module__Ú__qualname__r.   r6   r<   r@   rG   rq   r   r   r   r    r"   7   s   
r"   )Ú__doc__Zdistutils.utilr   rK   r0   r   rA   Úrerd   Zpkg_resourcesr   r   r   Z!setuptools.extern.packaging.utilsr   Zsetuptools.extern.sixr   Z
setuptoolsrh   r   Zsetuptools.command.egg_infor	   ÚcompileÚVERBOSEr+   r#   rn   r!   Úobjectr"   r   r   r   r    Ú<module>   s&   
