3 ”Reã@sxddlmZmZmZddlZddlmZmZddlm Z m Z erZddl m Z m Z e deƒZejdƒZd d „Zd d „ZdS) é)Úabsolute_importÚdivisionÚprint_functionNé)Ú TYPE_CHECKINGÚcast)ÚInvalidVersionÚVersion)ÚNewTypeÚUnionÚNormalizedNamez[-_.]+cCstjd|ƒ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_namesrcCsìy t|ƒ}Wntk r |SXg}|jdkrB|jdj|jƒƒ|jtjdddjdd„|jDƒƒƒƒ|j dk rŽ|jdjd d„|j Dƒƒƒ|j dk rª|jd j|j ƒƒ|j dk rÆ|jd j|j ƒƒ|j dk râ|jd j|j ƒƒdj|ƒS) z� This is very similar to Version.__str__, but has one subtle difference with the way it handles the release segment. rz{0}!z(\.0)+$ÚÚ.css|]}t|ƒVqdS)N)Ústr)Ú.0Úxrrrú /sz'canonicalize_version..Ncss|]}t|ƒVqdS)N)r)rrrrrr3sz.post{0}z.dev{0}z+{0}) r rÚepochÚappendÚformatÚrerÚjoinÚreleaseÚpreÚpostÚdevÚlocal)Ú_versionÚversionÚpartsrrrÚcanonicalize_versions"  &    r))Ú __future__rrrrÚ_typingrrr'rr Útypingr r rr Úcompilerrr)rrrrÚs