ó vÆ_c@`s§ddlmZmZmZddlZddlmZmZddlm Z m Z er‚ddl m Z m Z e deƒZnejdƒZd „Zd „ZdS( i(tabsolute_importtdivisiontprint_functionNi(t TYPE_CHECKINGtcast(tInvalidVersiontVersion(tNewTypetUniontNormalizedNames[-_.]+cC`s%tjd|ƒjƒ}td|ƒS(Nt-R (t_canonicalize_regextsubtlowerR(tnametvalue((sL/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/packaging/utils.pytcanonicalize_namescC`sKyt|ƒ}Wntk r$|SXg}|jdkrV|jdj|jƒƒn|jtjdddjd„|jDƒƒƒƒ|j d k r½|jdjd„|j Dƒƒƒn|j d k rè|jdj|j ƒƒn|j d k r|jd j|j ƒƒn|j d k r>|jd j|j ƒƒndj|ƒS( s This is very similar to Version.__str__, but has one subtle difference with the way it handles the release segment. is{0}!s(\.0)+$tt.cs`s|]}t|ƒVqdS(N(tstr(t.0tx((sL/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/packaging/utils.pys /scs`s|]}t|ƒVqdS(N(R(RR((sL/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/packaging/utils.pys 3ss.post{0}s.dev{0}s+{0}N(RRtepochtappendtformattreR tjointreleasetpretNonetposttdevtlocal(t_versiontversiontparts((sL/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/packaging/utils.pytcanonicalize_versions" 2&(t __future__RRRRt_typingRRR"RRttypingRRRR tcompileR RR$(((sL/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/packaging/utils.pyts