Current File : //lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-39.pyc
a

��kh�@sxddlmZmZmZddlZddlmZmZddlm	Z	m
Z
erZddlmZm
Z
ede�Ze�d�Zd	d
�Zdd�ZdS)
�)�absolute_import�division�print_functionN�)�
TYPE_CHECKING�cast)�InvalidVersion�Version)�NewType�Union�NormalizedNamez[-_.]+cCst�d|���}td|�S)N�-r)�_canonicalize_regex�sub�lowerr)�name�value�r�F/usr/lib/python3.9/site-packages/setuptools/_vendor/packaging/utils.py�canonicalize_namesrc
Cs�zt|�}Wnty"|YS0g}|jdkrD|�d�|j��|�t�ddd�dd�|jD����|j	dur�|�d�d	d�|j	D���|j
dur�|�d
�|j
��|jdur�|�d�|j��|jdur�|�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.
    rz{0}!z(\.0)+$��.css|]}t|�VqdS�N��str��.0�xrrr�	<genexpr>/�z'canonicalize_version.<locals>.<genexpr>Ncss|]}t|�VqdSrrrrrrr3rz.post{0}z.dev{0}z+{0})
r	rZepoch�append�format�rer�join�releaseZpreZpost�dev�local)�_version�version�partsrrr�canonicalize_versions"

&



r*)Z
__future__rrrr"Z_typingrrr(rr	�typingr
rrr�compilerrr*rrrr�<module>s