3
”Re ã @ sx d dl mZmZmZ d dlZddlmZmZ ddlm Z m
Z
erZd dlmZm
Z
edeƒZejdƒZd d
„ Zdd„ ZdS )
é )Úabsolute_importÚdivisionÚprint_functionNé )Ú
TYPE_CHECKINGÚcast)ÚInvalidVersionÚVersion)ÚNewTypeÚUnionÚNormalizedNamez[-_.]+c C s t jd| ƒjƒ }td|ƒS )Nú-r )Ú_canonicalize_regexÚsubÚlowerr )ÚnameÚvalue© r úŠ/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/packaging/utils.pyÚcanonicalize_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)Ú.0Úxr r r ú