ó
1,^c           @   s  d  Z  d d l m 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_platform(   t   logN(   t   parse_version(   t   sys_tags(   t   canonicalize_name(   t   PY3(   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   tagsF   s    c            s<   t  d „  t ƒ  Dƒ ƒ ‰  t ‡  f d †  |  j ƒ  Dƒ t ƒ S(   s5   Is the wheel is compatible with the current platform?c         s   s'   |  ] } | j  | j | j f Vq d  S(   N(   t   interpreterR4   R5   (   t   .0t   t(    (    s/   lib/python2.7/site-packages/setuptools/wheel.pys	   <genexpr>P   s    c         3   s!   |  ] } | ˆ  k r t  Vq d  S(   N(   R   (   R8   R9   (   t   supported_tags(    s/   lib/python2.7/site-packages/setuptools/wheel.pys	   <genexpr>Q   s    (   t   setR   t   nextR6   t   False(   R*   (    (   R:   s/   lib/python2.7/site-packages/setuptools/wheel.pyt   is_compatibleN   s    c         C   sD   t  j d |  j d |  j d |  j d k r0 d  n t ƒ  ƒ j ƒ  d S(   Nt   project_namet   versionR5   t   anys   .egg(   t   pkg_resourcest   DistributionR?   R@   R5   R$   R    t   egg_name(   R*   (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyRD   S   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   memberRG   (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   get_dist_infoY   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_eggdirRJ   (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   install_as_eggc   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@   RL   R   R
   R   t   _convert_metadatat   _move_data_entriest   _fix_namespace_packages(   R*   RP   RJ   t   dist_basenamet	   dist_infot	   dist_datat   egg_info(    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyRO   h   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 j }
 t j t j ƒ z, t |	 j d ƒ d  t j j | d ƒ ƒ Wd  t j |
 ƒ Xd  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   openRF   R   R   t   readt   decodet   emailt   parsert   Parsert   parsestr(   t   namet   fpt   value(   RV   RJ   (    s/   lib/python2.7/site-packages/setuptools/wheel.pyt   get_metadatat   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(    (   R8   Rh   (   t   install_requires(    s/   lib/python2.7/site-packages/setuptools/wheel.pys	   <genexpr>•   s   (   t   sortedt   mapt   requires(   R8   t   extra(   t   distRj   Ri   (    s/   lib/python2.7/site-packages/setuptools/wheel.pys
   <dictcomp>”   s   	t   METADATAs   PKG-INFOt   attrsRj   t   extras_requireRX   s   requires.txt(   R   t   getR%   R   t   mkdirt
   extractallR
   R   RB   RC   t   from_locationt   PathMetadataR   Rk   Rl   Rm   t   extrast   renamet
   setuptoolst   dictR   t   _global_logt	   thresholdt   set_thresholdt   WARNR   t   get_command_objR$   (   RJ   RP   RV   RX   Rc   t   wheel_metadatat   wheel_versiont   wheel_v1Rr   t
   setup_distt   log_threshold(    (   Ro   RV   Rj   Ri   RJ   s/   lib/python2.7/site-packages/setuptools/wheel.pyRR   r   sB    (			!	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   (   R8   R   (   RW   (    s/   lib/python2.7/site-packages/setuptools/wheel.pys	   <genexpr>Ç   s   t   datat   headerst   purelibt   platlibN(   R‡   Rˆ   R‰   RŠ   (   R   R
   R   R   Rt   t   listdirRH   t   unlinkRy   R   t   filterR    (   RP   RW   t   dist_data_scriptst   egg_info_scriptst   entryR   (    (   RW   s/   lib/python2.7/site-packages/setuptools/wheel.pyRS   ²   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 | ƒ s° t  j | ƒ n  t  j j | ƒ sU t | d ƒ  } | j t	 ƒ Wd  QXqU qU Wn  d  S(   Ns   namespace_packages.txtR/   s   __init__.pyt   w(
   R   R
   R   R   RY   RZ   R3   Rt   t   writet   NAMESPACE_PACKAGE_INIT(   RX   RP   t   namespace_packagesRa   t   modt   mod_dirt   mod_init(    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyRT   Î   s    	(   t   __name__t
   __module__R.   R6   R>   RD   RL   RQ   RO   t   staticmethodRR   RS   RT   (    (    (    s/   lib/python2.7/site-packages/setuptools/wheel.pyR!   <   s   					
		
@(    (   t   __doc__t   distutils.utilR    t	   distutilsR   R\   R0   R   RF   t   reRM   RB   Rz   R   t    setuptools.extern.packaging.tagsR   t!   setuptools.extern.packaging.utilsR   t   setuptools.extern.sixR   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,   	