a
ljh @ s d dl Z d dlmZmZmZmZmZ ddlmZm Z ddl
mZmZ eed ee
ef f ZedeZG dd d eZG d
d deZe dZe d
ZeedddZeeef edddZeeeeeee f dddZeeeef dddZdS ) N) FrozenSetNewTypeTupleUnioncast )Tag parse_tag)InvalidVersionVersion NormalizedNamec @ s e Zd ZdZdS )InvalidWheelFilenamezM
An invalid wheel filename was found, users should refer to PEP 427.
N__name__
__module____qualname____doc__r r r ?/usr/lib/python3.9/site-packages/pip/_vendor/packaging/utils.pyr s r c @ s e Zd ZdZdS )InvalidSdistFilenamez^
An invalid sdist filename was found, users should refer to the packaging user guide.
Nr r r r r r s r z[-_.]+z (\d+)(.*))namereturnc C s t d| }tt|S )N-)_canonicalize_regexsublowerr r
)r valuer r r canonicalize_name s r )versionr c
C s t | tr0zt| }W q4 ty, | Y S 0 n| }g }|jdkrT||j d |tddddd |j D |j
dur|dd d |j
D |jdur|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.
r !z(\.0)+$ .c s s | ]}t |V qd S Nstr.0xr r r