U
    +|j  ã                   @   sx   d dl mZmZmZ d dlZddlmZmZ ddlm	Z	m
Z
 erZd dlmZmZ edeƒZe d¡Zd	d
„ Zdd„ ZdS )é    )Úabsolute_importÚdivisionÚprint_functionNé   )ÚTYPE_CHECKINGÚcast)ÚInvalidVersionÚVersion)ÚNewTypeÚUnionÚNormalizedNamez[-_.]+c                 C   s   t  d| ¡ ¡ }td|ƒS )Nú-r   )Ú_canonicalize_regexÚsubÚlowerr   )ÚnameÚvalue© r   újC:\Users\snmko\Desktop\web_content\django_cbt\venv\Lib\site-packages\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 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 r   r   r   r   r   r   r   3   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   r	   Útypingr
   r   r   r   Úcompiler   r   r,   r   r   r   r   Ú<module>   s   

