3
Re @ sx d dl mZmZmZ d dlZddlmZmZ ddlm Z m
Z
erZd dlmZm
Z
edeZejdZd d
Zdd ZdS )
)absolute_importdivisionprint_functionN )
TYPE_CHECKINGcast)InvalidVersionVersion)NewTypeUnionNormalizedNamez[-_.]+c C s t jd| j }td|S )N-r )_canonicalize_regexsublowerr )namevalue r /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el9.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/packaging/utils.pycanonicalize_name s r c C s yt | }W n tk
r | S X g }|jdkrB|jdj|j |jtjdddjdd |jD |j dk r|jdjd d |j D |j
dk r|jd
j|j
|jdk r|jdj|j |jdk r|jdj|j dj|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 qd S )N)str).0xr r r