_d ^ddlZddlmZmZmZmZmZddlmZm Z ddl m Z m Z eedee effZedeZGdd eZGd d eZej(d Zej(d ZdedefdZdddee efdedefdZdedeee eeeffdZdedeee ffdZy)N) FrozenSetNewTypeTupleUnioncast)Tag parse_tag)InvalidVersionVersionNormalizedNameceZdZdZy)InvalidWheelFilenamezM An invalid wheel filename was found, users should refer to PEP 427. N__name__ __module__ __qualname____doc__r D/usr/lib/python3/dist-packages/setuptools/_vendor/packaging/utils.pyrrrrceZdZdZy)InvalidSdistFilenamez^ An invalid sdist filename was found, users should refer to the packaging user guide. Nrr rrrrrrrz[-_.]+z (\d+)(.*)namereturncjtjd|j}tt|S)N-)_canonicalize_regexsublowerrr)rvalues rcanonicalize_namer# s*  # #C . 4 4 6E  &&rT)strip_trailing_zeroversionr$ct|tr t|}n|}g}|jdk7r|j |jddj d|jD}|rtjdd|}|j ||j1|j dj d|jD|j|j d|j|j|j d |j|j|j d |jdj |S#t$r|cYSwxYw) z This is very similar to Version.__str__, but has one subtle difference with the way it handles the release segment. r!.c32K|]}t|ywNstr.0xs r z'canonicalize_version..=s>!s1v>z(\.0)+$c32K|]}t|ywr*r+r-s rr0z'canonicalize_version..Es8SV8r1z.postz.dev+) isinstancer,r r epochappendjoinreleaserer prepostdevlocal)r%r$parsedpartsrelease_segments rcanonicalize_versionrB&sB'3 W%F  E||q  ~Q'(hh>v~~>>O&&RA LL!zz RWW8VZZ889{{ uV[[M*+zz tFJJ<()|| q'( 775>G N s E'' E54E5filenamecj|jdstd||dd}|jd}|dvrtd||jd|dz }|d}d |vs%t j d |tj td |t|}t|d }|d k(rh|d}tj |}|td|d|dttt|jd |jdf}nd}t|d} |||| fS)Nz.whlz3Invalid wheel filename (extension must be '.whl'): r)z0Invalid wheel filename (wrong number of parts): r__z ^[\w\d._]*$zInvalid project name: rrGzInvalid build number: z in ''r )endswithrcountsplitr:matchUNICODEr#r _build_tag_regexrBuildTagintgroupr ) rCdashesr@ name_partrr% build_part build_matchbuildtagss rparse_wheel_filenamer[Vs`   V $"A( L  }H ^^C F V">xj I   NN3 +EaI yBHH^Y KS"%;H:#FGG Y 'DeAhG {1X &,,Z8  &( E(1E XK$5$5a$8 9;;L;LQ;OPQ U2Y D '5$ ''rc |jdr|dtd }n/|jdr|dtd }ntd||jd\}}}|std|t |}t |}||fS)Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): rzInvalid sdist filename: )rLlenr rpartitionr#r )rC file_stemrVsep version_partrr%s rparse_sdist_filenamerbzs#.I/   6 "^F |, "z   $-#7#7#< IsL "%=hZ#HII Y 'Dl#G '?r)r:typingrrrrrrZr r r%r r rSr,rRr ValueErrorrrcompilerrQr#boolrBr[rbr rrrgs  99 , rE#s(O+ ,)3/: : !bjj+2::l+'C'N'BF- 7C< -:>--`!(!( >7Hin <=!(H351H+Ir