a0bi h S SK r S SKJrJrJrJrJr SSKJrJ r SSK
JrJr \\S \\
\4 4 r\" S\5 r " S S \5 r " S
S\5 r\ R( " S5 r\ R( " S
5 rS\S\4S jrSS.S\\\4 S\S\4S jjrS\S\\\\\\ 4 4S jrS\S\\\4 4S jrg) N) FrozenSetNewTypeTupleUnioncast )Tag parse_tag)InvalidVersionVersion NormalizedNamec \ rS rSrSrSrg)InvalidWheelFilename zE
An invalid wheel filename was found, users should refer to PEP 427.
r
N__name__
__module____qualname____firstlineno____doc____static_attributes__r
ڛ/builddir/build/BUILDROOT/alt-python313-setuptools-69.0.2-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/setuptools/_vendor/packaging/utils.pyr r r r c \ rS rSrSrSrg)InvalidSdistFilename zV
An invalid sdist filename was found, users should refer to the packaging user guide.
r
Nr r
r r r r r r r z[-_.]+z (\d+)(.*)namereturnc j [ R SU 5 R 5 n[ [ U5 $ )N-)_canonicalize_regexsublowerr r )r values r canonicalize_namer' s* ##C.446E&&r T)strip_trailing_zeroversionr( c [ U [ 5 ( a
[ U 5 nOU n/ nUR S:w a UR UR S35 SR
S UR 5 5 nU( a [ R " SSU5 nUR U5 UR b1 UR SR
S UR 5 5 5 UR b UR SUR 35 UR b UR S UR 35 UR b UR S
UR 35 SR
U5 $ ! [ a U s $ f = f)zu
This is very similar to Version.__str__, but has one subtle difference
with the way it handles the release segment.
r !.c 3 8 # U H n[ U5 v M g 7fNstr.0xs r