ó
Ð²Ebc           @` sc   d  d l  m Z m Z m Z d  d l Z d d l m Z m Z e j d ƒ Z	 d „  Z
 d „  Z d S(   i    (   t   absolute_importt   divisiont   print_functionNi   (   t   InvalidVersiont   Versions   [-_.]+c         C` s   t  j d |  ƒ j ƒ  S(   Nt   -(   t   _canonicalize_regext   subt   lower(   t   name(    (    sF   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/utils.pyt   canonicalize_name   s    c         C` sK  y t  |  ƒ }  Wn t k
 r$ |  SXg  } |  j d k rV | j d j |  j ƒ ƒ n  | j t j d d d j d „  |  j Dƒ ƒ ƒ ƒ |  j	 d k	 r½ | j d j d „  |  j	 Dƒ ƒ ƒ n  |  j d k	 rè | j d j |  j ƒ ƒ n  |  j d k	 r| j d	 j |  j ƒ ƒ n  |  j d k	 r>| j d
 j |  j ƒ ƒ n  d j | ƒ S(   s‚   
    This is very similar to Version.__str__, but has one subtle differences
    with the way it handles the release segment.
    i    s   {0}!s   (\.0)+$t    t   .c         s` s   |  ] } t  | ƒ Vq d  S(   N(   t   str(   t   .0t   x(    (    sF   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/utils.pys	   <genexpr>'   s    c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R   (   R   R   (    (    sF   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/utils.pys	   <genexpr>+   s    s   .post{0}s   .dev{0}s   +{0}N(   R   R   t   epocht   appendt   formatt   reR   t   joint   releaset   pret   Nonet   postt   devt   local(   t   versiont   parts(    (    sF   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/utils.pyt   canonicalize_version   s"    2&(   t
   __future__R    R   R   R   R   R   R   t   compileR   R
   R   (    (    (    sF   /tmp/pip-build-UPPWic/setuptools/setuptools/_vendor/packaging/utils.pyt   <module>   s
   	