B
    Kkdð  ã               @   sJ   d dl mZmZmZ d dlZddlmZmZ e d¡Z	dd„ Z
dd	„ ZdS )
é    )Úabsolute_importÚdivisionÚprint_functionNé   )ÚInvalidVersionÚVersionz[-_.]+c             C   s   t  d| ¡ ¡ S )Nú-)Ú_canonicalize_regexÚsubÚlower)Úname© r   ú</tmp/pip-install-gxxfd9b7/pip/pip/_vendor/packaging/utils.pyÚcanonicalize_name   s    r   c          
   C   sì   yt | ƒ} W n tk
r    | S X g }| jdkrB| d | j¡¡ | t ddd dd„ | jD ƒ¡¡¡ | j	dk	rŽ| d d	d„ | j	D ƒ¡¡ | j
dk	rª| d
 | j
¡¡ | jdk	rÆ| d | j¡¡ | jdk	râ| d | j¡¡ d |¡S )z‚
    This is very similar to Version.__str__, but has one subtle differences
    with the way it handles the release segment.
    r   z{0}!z(\.0)+$Ú Ú.c             s   s   | ]}t |ƒV  qd S )N)Ústr)Ú.0Úxr   r   r   ú	<genexpr>'   s    z'canonicalize_version.<locals>.<genexpr>Nc             s   s   | ]}t |ƒV  qd S )N)r   )r   r   r   r   r   r   +   s    z.post{0}z.dev{0}z+{0})r   r   ÚepochÚappendÚformatÚrer
   ÚjoinÚreleaseÚpreÚpostÚdevÚlocal)ÚversionÚpartsr   r   r   Úcanonicalize_version   s"    
&



r"   )Ú
__future__r   r   r   r   r    r   r   Úcompiler	   r   r"   r   r   r   r   Ú<module>   s
   
