ó
F—š]c           @   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	 Z	 d d l
 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 Z e j d	 e j ƒ j Z d
 Z d „  Z d d d „  ƒ  YZ d S(   s   Wheels support.iÿÿÿÿ(   t   get_platformN(   t   parse_version(   t   canonicalize_name(   t   PY3(   t
   pep425tags(   t   write_requirementss‚   ^(?P<project_name>.+?)-(?P<version>\d.*?)
    ((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
    )\.whl$sš   try:
    __import__('pkg_resources').declare_namespace(__name__)
except ImportError:
    __path__ = __import__('pkgutil').extend_path(__path__, __name__)
c         C   sO  xt  j |  ƒ D]ô \ } } } t  j j | |  ƒ } xK | D]C } t  j j | | ƒ } t  j j | | | ƒ } t  j | | ƒ q; Wx t t t | ƒ ƒ ƒ D]e \ }	 }
 t  j j | |
 ƒ } t  j j | | |
 ƒ } t  j j	 | ƒ s› t  j | | ƒ | |	 =q› q› Wq Wx@ t  j |  d t
 ƒD]) \ } } } | s:t ‚ t  j | ƒ qWd S(   sD   Move everything under `src_dir` to `dst_dir`, and delete the former.t   topdownN(   t   ost   walkt   patht   relpatht   joint   renamest   reversedt   listt	   enumeratet   existst   Truet   AssertionErrort   rmdir(   t   src_dirt   dst_dirt   dirpatht   dirnamest	   filenamest   subdirt   ft   srct   dstt   nt   d(    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   unpack%   s    %%t   Wheelc           B   st   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e	 d „  ƒ Z
 e	 d „  ƒ Z e	 d	 „  ƒ Z RS(
   c         C   sw   t  t j j | ƒ ƒ } | d  k r7 t d | ƒ ‚ n  | |  _ x0 | j ƒ  j ƒ  D] \ } } t	 |  | | ƒ qS Wd  S(   Ns   invalid wheel name: %r(
   t
   WHEEL_NAMER   R	   t   basenamet   Nonet
   ValueErrort   filenamet	   groupdictt   itemst   setattr(   t   selfR%   t   matcht   kt   v(    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   __init__=   s    	c         C   s7   t  j |  j j d ƒ |  j j d ƒ |  j j d ƒ ƒ S(   s>   List tags (py_version, abi, platform) supported by this wheel.t   .(   t	   itertoolst   productt
   py_versiont   splitt   abit   platform(   R)   (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   tagsE   s    c            s/   t  j ƒ  ‰  t ‡  f d †  |  j ƒ  Dƒ t ƒ S(   s5   Is the wheel is compatible with the current platform?c         3   s!   |  ] } | ˆ  k r t  Vq d  S(   N(   R   (   t   .0t   t(   t   supported_tags(    s/   lib/python2.7/site-packages/setuptools/wheel.pys	   <genexpr>P   s    (   R   t   get_supportedt   nextR5   t   False(   R)   (    (   R8   s/   lib/python2.7/site-packages/setuptools/wheel.pyt   is_compatibleM   s    c         C   sD   t  j d |  j d |  j d |  j d k r0 d  n t ƒ  ƒ j ƒ  d S(   Nt   project_namet   versionR4   t   anys   .egg(   t   pkg_resourcest   DistributionR=   R>   R4   R#   R    t   egg_name(   R)   (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyRB   R   s    	$c         C   sg   xT | j  ƒ  D]F } t j | ƒ } | j d ƒ r t | ƒ j t |  j ƒ ƒ r | Sq Wt d ƒ ‚ d  S(   Ns
   .dist-infos.   unsupported wheel format. .dist-info not found(   t   namelistt	   posixpatht   dirnamet   endswithR   t
   startswithR=   R$   (   R)   t   zft   memberRE   (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   get_dist_infoX   s    c         C   s/   t  j |  j ƒ  } |  j | | ƒ Wd QXd S(   s"   Install wheel as an egg directory.N(   t   zipfilet   ZipFileR%   t   _install_as_egg(   R)   t   destination_eggdirRH   (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   install_as_eggb   s    c         C   s~   d |  j  |  j f } |  j | ƒ } d | } t j j | d ƒ } |  j | | | | ƒ |  j | | ƒ |  j | | ƒ d  S(   Ns   %s-%ss   %s.datas   EGG-INFO(	   R=   R>   RJ   R   R	   R   t   _convert_metadatat   _move_data_entriest   _fix_namespace_packages(   R)   RN   RH   t   dist_basenamet	   dist_infot	   dist_datat   egg_info(    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyRM   g   s    
c   
         sž  ‡ ‡ f d †  } | d ƒ } t  | j d ƒ ƒ } t  d ƒ | k oV t  d ƒ k  n } | st t d | ƒ ‚ n  t j | ƒ ˆ j | ƒ t j j | ˆ ƒ ‰ t j	 j
 | ˆ d t j | ˆ ƒ ƒ‰  d „  ‰ t t t ˆ ˆ  j ƒ  ƒ ƒ ƒ ‰ ‡  ‡ ‡ f d	 †  ˆ  j Dƒ } t j ˆ | ƒ t j t j j | d
 ƒ t j j | d ƒ ƒ t j	 d t d ˆ d | ƒ ƒ }	 t |	 j d ƒ d  t j j | d ƒ ƒ d  S(   Nc            se   ˆ j  t j ˆ  |  ƒ ƒ D } t r9 | j ƒ  j d ƒ n	 | j ƒ  } t j j ƒ  j	 | ƒ SWd  QXd  S(   Ns   utf-8(
   t   openRD   R   R   t   readt   decodet   emailt   parsert   Parsert   parsestr(   t   namet   fpt   value(   RT   RH   (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   get_metadatas   s    't   WHEELs   Wheel-Versions   1.0s   2.0dev0s$   unsupported wheel format version: %st   metadatac         S   s   d  |  _ t |  ƒ S(   N(   R#   t   markert   str(   t   req(    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   raw_reqŽ   s    	c            sD   i  |  ]: } t  ‡ f d  †  t ˆ ˆ  j | f ƒ ƒ Dƒ ƒ | “ q S(   c         3   s!   |  ] } | ˆ  k r | Vq d  S(   N(    (   R6   Rf   (   t   install_requires(    s/   lib/python2.7/site-packages/setuptools/wheel.pys	   <genexpr>”   s   (   t   sortedt   mapt   requires(   R6   t   extra(   t   distRh   Rg   (    s/   lib/python2.7/site-packages/setuptools/wheel.pys
   <dictcomp>“   s   	t   METADATAs   PKG-INFOt   attrsRh   t   extras_requireRV   s   requires.txt(   R   t   getR$   R   t   mkdirt
   extractallR	   R   R@   RA   t   from_locationt   PathMetadataR   Ri   Rj   Rk   t   extrast   renamet
   setuptoolst   dictR   t   get_command_objR#   (
   RH   RN   RT   RV   Ra   t   wheel_metadatat   wheel_versiont   wheel_v1Rp   t
   setup_dist(    (   Rm   RT   Rh   Rg   RH   s/   lib/python2.7/site-packages/setuptools/wheel.pyRP   q   s:    (			!	c            sJ  t  j j |  ˆ  ƒ ‰  t  j j ˆ  d ƒ } t  j j | ƒ rç t  j j |  d d ƒ } t  j | ƒ xs t  j | ƒ D]b } | j d ƒ r¥ t  j t  j j | | ƒ ƒ qq t  j t  j j | | ƒ t  j j | | ƒ ƒ qq Wt  j	 | ƒ n  x: t
 t  j j ‡  f d †  d
 Dƒ ƒ D] } t | |  ƒ qWt  j j ˆ  ƒ rFt  j	 ˆ  ƒ n  d	 S(   s,   Move data entries to their correct location.t   scriptss   EGG-INFOs   .pycc         3   s$   |  ] } t  j j ˆ  | ƒ Vq d  S(   N(   R   R	   R   (   R6   R   (   RU   (    s/   lib/python2.7/site-packages/setuptools/wheel.pys	   <genexpr>À   s   t   datat   headerst   purelibt   platlibN(   R€   R   R‚   Rƒ   (   R   R	   R   R   Rr   t   listdirRF   t   unlinkRw   R   t   filterR   (   RN   RU   t   dist_data_scriptst   egg_info_scriptst   entryR   (    (   RU   s/   lib/python2.7/site-packages/setuptools/wheel.pyRQ   «   s&    	c         C   sæ   t  j j |  d ƒ } t  j j | ƒ râ t | ƒ  } | j ƒ  j ƒ  } Wd  QXx‘ | D]† } t  j j | | j d ƒ Œ } t  j j | d ƒ } t  j j | ƒ rU t  j j | ƒ rU t | d ƒ  } | j t ƒ Wd  QXqU qU Wn  d  S(   Ns   namespace_packages.txtR.   s   __init__.pyt   w(	   R   R	   R   R   RW   RX   R2   t   writet   NAMESPACE_PACKAGE_INIT(   RV   RN   t   namespace_packagesR_   t   modt   mod_dirt   mod_init(    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyRR   Ç   s    	%(   t   __name__t
   __module__R-   R5   R<   RB   RJ   RO   RM   t   staticmethodRP   RQ   RR   (    (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyR    ;   s   					
		
:(    (   t   __doc__t   distutils.utilR    RZ   R/   R   RD   t   reRK   R@   Rx   R   t!   setuptools.extern.packaging.utilsR   t   setuptools.extern.sixR   R   t   setuptools.command.egg_infoR   t   typet   __metaclass__t   compilet   VERBOSER*   R!   RŒ   R   R    (    (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   <module>   s*   	