ó
'—^c           @` sŒ   d  d l  m Z m Z m Z d  d l Z d d l m Z d d l m Z m	 Z	 e rg d  d l
 m Z n  e j d ƒ Z d „  Z d	 „  Z d S(
   i    (   t   absolute_importt   divisiont   print_functionNi   (   t   MYPY_CHECK_RUNNING(   t   InvalidVersiont   Version(   t   Unions   [-_.]+c         C` s   t  j d |  ƒ j ƒ  S(   Nt   -(   t   _canonicalize_regext   subt   lower(   t   name(    (    s8   /tmp/pip-build-eiI0Wo/pip/pip/_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 difference
    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(    (    s8   /tmp/pip-build-eiI0Wo/pip/pip/_vendor/packaging/utils.pys	   <genexpr>,   s    c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R   (   R   R   (    (    s8   /tmp/pip-build-eiI0Wo/pip/pip/_vendor/packaging/utils.pys	   <genexpr>0   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   versiont   parts(    (    s8   /tmp/pip-build-eiI0Wo/pip/pip/_vendor/packaging/utils.pyt   canonicalize_version   s"    2&(   t
   __future__R    R   R   R   t   _typingR   R   R   R   t   typingR   t   compileR   R   R    (    (    (    s8   /tmp/pip-build-eiI0Wo/pip/pip/_vendor/packaging/utils.pyt   <module>   s   	