B
    `’»d¤  ã               @   sf   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rHd dl
mZ e d¡Zdd	„ Zd
d„ ZdS )é    )Úabsolute_importÚdivisionÚprint_functionNé   )ÚMYPY_CHECK_RUNNING)ÚInvalidVersionÚVersion)ÚUnionz[-_.]+c             C   s   t  d| ¡ ¡ S )Nú-)Ú_canonicalize_regexÚsubÚlower)Úname© r   ú?/tmp/pip-unpacked-wheel-hu9qqap1/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 difference
    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   0   s    z.post{0}z.dev{0}z+{0})r   r   ÚepochÚappendÚformatÚrer   ÚjoinÚreleaseÚpreÚpostÚdevÚlocal)Ú_versionÚversionÚpartsr   r   r   Úcanonicalize_version   s"    
&



r%   )Ú
__future__r   r   r   r   Ú_typingr   r#   r   r   Útypingr	   Úcompiler   r   r%   r   r   r   r   Ú<module>   s   
