U
    >h                     @   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   F/tmp/pip-unpacked-wheel-sym_ama1/setuptools/_vendor/packaging/utils.pycanonicalize_name   s    r   c              
   C   s   zt | } W n tk
r$   |  Y S X g }| jdkrF|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 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
   
