j7iddlmZddlZddlZddlmZmZmZmZddl m Z m Z ddl m Z mZmZeedeeeffZedeZGd d eZGd d eZGd deZej0dej2Zej0dZej0dZej0dZddddZddZej@dd ddZ!e!jDddd dZ# d!dZ$d"dZ%y)#) annotationsN)NewTypeTupleUnioncast)Tag parse_tag)InvalidVersionVersion_TrimmedReleaseNormalizedNameceZdZdZy) InvalidNamezW An invalid distribution name; users should refer to the packaging user guide. N__name__ __module__ __qualname____doc__rX/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/packaging/utils.pyrrrrceZdZdZy)InvalidWheelFilenamezM An invalid wheel filename was found, users should refer to PEP 427. NrrrrrrrrrceZdZdZy)InvalidSdistFilenamez^ An invalid sdist filename was found, users should refer to the packaging user guide. Nrrrrrrrrrz)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$z[-_.]+z/^([a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9])$z (\d+)(.*)F)validatec|r#tj|std|tj d|j }t t|S)Nzname is invalid: -)_validate_regexmatchr_canonicalize_regexsublowerrr)namervalues rcanonicalize_namer(.sM--d3-dX677  # #C . 4 4 6E  &&rc0tj|duS)N)_normalized_regexr")r&s ris_normalized_namer+6s  " "4 ( 44rTstrip_trailing_zerocLt|rtt|S|S)a Return a canonical form of a version as a string. >>> canonicalize_version('1.0.1') '1.0.1' Per PEP 625, versions may have multiple canonical forms, differing only by trailing zeros. >>> canonicalize_version('1.0.0') '1' >>> canonicalize_version('1.0.0', strip_trailing_zero=False) '1.0.0' Invalid versions are returned unaltered. >>> canonicalize_version('foo bar baz') 'foo bar baz' )strr )versionr-s rcanonicalize_versionr1:s#. 0Cs7|, QQ QQrcV t|}t||S#t$r|cYSwxYw)Nr,)r r r1)r0r-parseds r_r4Ts7! xl K   NN3 +EaI yBHH^Y KS"%;H<#HII Y 'D%(# {1X &,,Z8  &( D E XK$5$5a$8 9;;L;LQ;OPQ U2Y D '5$ ''! "8 E  s%D55 E>E  Ecb|jdr|dtd }n/|jdr|dtd }ntd||jd\}}}|std|t |} t |}||fS#t $r}td||d}~wwxYw)Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): r zInvalid sdist filename: z*Invalid sdist filename (invalid version): )r<lenr rpartitionr(r r )rE file_stemrHsep version_partr&r0rIs rparse_sdist_filenamerUs#.I/   6 "^F |, "|   $-#7#7#< IsL "%=h\#JKK Y 'D,' '? "8 E  s B B.B))B.)r&r/rboolreturnr)r&r/rWrV)r0z Version | strr-rVrWr/)r0r/r-rVrWr/)rEr/rWz8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]])rEr/rWztuple[NormalizedName, Version])& __future__r functoolsr?typingrrrrrMr r r0r r r rCr/rBr ValueErrorrrrcompile IGNORECASEr!r#r*rAr(r+singledispatchr1registerr4rNrUrrrr`s? # .. == rE#s(O+ ,)3/* : :"**0"--!bjj+BJJQR2::l+6;'5 ;?R R48RRR237QQ((((=((Vr