Ë �Ð\ž÷ô›¬ã óì—ddlZddlmZmZmZmZmZddlmZm Z ddl m Z m Z eedee effZede«ZGd„d e«ZGd „d e«ZGd „d e«Zej*dej,«Zej*d«Zej*d«Zej*d«Zddœdededefd„Zdedefd„Zddœdee efdedefd„Zdedeee eeeffd„Zdedeee ffd „Z y)!éN)Ú FrozenSetÚNewTypeÚTupleÚUnionÚcasté)ÚTagÚ parse_tag)ÚInvalidVersionÚVersion©ÚNormalizedNamecó—eZdZdZy)Ú InvalidNamezW An invalid distribution name; users should refer to the packaging user guide. N©Ú__name__Ú __module__Ú __qualname__Ú__doc__r óú4/usr/lib/python3.12/site-packages/packaging/utils.pyrró„òrrcó—eZdZdZy)ÚInvalidWheelFilenamezM An invalid wheel filename was found, users should refer to PEP 427. Nrr rrrrrrrcó—eZdZdZy)ÚInvalidSdistFilenamez^ An invalid sdist filename was found, users should refer to the packaging user guide. Nrr rrrrrrrz)^([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)ÚvalidateÚnamerÚreturncó´—|r#tj|«std|›�«‚tj d|«j «}t t|«S)Nzname is invalid: Ú-)Ú_validate_regexÚmatchrÚ_canonicalize_regexÚsubÚlowerrr)rrÚvalues rÚcanonicalize_namer(+sM€Ùœ×-Ñ-¨dÔ3ÜÐ-¨d¨XÐ6Ó7Ð7ä × #Ñ # C¨Ó .× 4Ñ 4Ó 6€EÜ ” Ó &Ð&rcó0—tj|«duS©N)Ú_normalized_regexr#)rs rÚis_normalized_namer,3s€Ü × "Ñ " 4Ó (°Ð 4Ð4rT)Ústrip_trailing_zeroÚversionr-cóð—t|t«r t|«}n|}g}|jdk7r|j |j›d�«dj d„|jD««}|rtjdd|«}|j |«|j�1|j dj d„|jD«««|j�|j d|j›�«|j�|j d |j›�«|j�|j d |j›�«dj |«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Ú!Ú.c3ó2K—|]}t|«–—Œy­wr*©Ústr©Ú.0Úxs rÚ z'canonicalize_version..Nsèø€Ð>©~¨!œs 1Ÿv©~ùó‚z(\.0)+$Úc3ó2K—|]}t|«–—Œy­wr*r3r5s rr8z'canonicalize_version..Vsèø€Ð8©Z¨œS ŸV©Zùr9z.postz.devÚ+)Ú isinstancer4r r ÚepochÚappendÚjoinÚreleaseÚrer%ÚpreÚpostÚdevÚlocal)r.r-ÚparsedÚpartsÚrelease_segments rÚcanonicalize_versionrJ7sB€ô�'œ3Ôð ܘWÓ%‰Fð ˆà €Eð‡|�|�qÒØ � ‰ ˜Ÿ ™ �~ QÐ'Ô(ð—h‘hÑ>¨v¯~ª~Ó>Ó>€OÙäŸ&™& ¨R°ÓAˆØ ‡L�L�Ô!ð‡z�zÐØ � ‰ �R—W‘WÑ8¨V¯ZªZÓ8Ó8Ô9ð‡{�{ÐØ � ‰ �u˜VŸ[™[˜MÐ*Ô+ð‡z�zÐØ � ‰ �t˜FŸJ™J˜<Ð(Ô)ð‡|�|ÐØ � ‰ �q˜Ÿ™˜Ð'Ô(à �7‰7�5‹>ÐøôGò àŠNð ús’ E'Å' E5Å4E5Úfilenamecó¬—|jd«std|›�«‚|dd}|jd«}|dvrtd|›�«‚|jd|dz «}|d}d |vs%t j d |tj «€td |›�«‚t|«} t|d «}|dk(rh|d}tj |«}|€td|›d|›d�«‚ttt|jd ««|jd«f«} nd} t|d«} ||| | fS#t$r}td |›�«|‚d}~wwxYw)Nz.whlz3Invalid wheel filename (extension must be '.whl'): éüÿÿÿr!)ééz0Invalid wheel filename (wrong number of parts): érÚ__z ^[\w\d._]*$zInvalid project name: rz*Invalid wheel filename (invalid version): rOzInvalid build number: z in 'Ú'r éÿÿÿÿ)ÚendswithrÚcountÚsplitrBr#ÚUNICODEr(r r Ú_build_tag_regexrÚBuildTagÚintÚgroupr ) rKÚdashesrHÚ name_partrr.ÚeÚ build_partÚ build_matchÚbuildÚtagss rÚparse_wheel_filenamercgs“€ð × Ñ ˜VÔ $Ü"ØAÀ(ÀÐ Ló ð 𘘈}€HØ �^‰^˜CÓ €FØ �VÑÜ"Ø>¸x¸jÐ Ió ð ð �N‰N˜3 ¨¡ Ó +€EØ�a‘€Ià ˆyÑœBŸH™H ^°YÄÇ Á ÓKÐSÜ"Ð%;¸H¸:Ð#FÓGÐGÜ ˜YÓ '€Dðܘ% ™(Ó#ˆð �‚{ؘ1‘Xˆ Ü&×,Ñ,¨ZÓ8ˆ Ø Ð Ü&Ø(¨¨ °E¸(¸À1ÐEóð ô”X¤ K×$5Ñ$5°aÓ$8Ó 9¸;×;LÑ;LÈQÓ;OÐPÓQ‰àˆÜ �U˜2‘YÓ €DØ �'˜5 $Ð 'Ð'øô! òÜ"Ø8¸¸ Ð Có àð ûðúsÂ%D6Ä6 EÄ?EÅEcób—|jd«r|dtd« }n/|jd«r|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): )rTÚlenrÚ rpartitionr(r r )rKÚ file_stemr]ÚsepÚ version_partrr.r^s rÚparse_sdist_filenamerj’s߀Ø×јÔ#ØÐ.¤ I£˜Ð/‰ Ø × Ñ ˜6Ô "ؘ^¤ F£ ˜|Ð,‰ ä"ð؈zð ó ð ð$-×#7Ñ#7¸Ó#<Ñ €Iˆs�LÙ Ü"Ð%=¸h¸ZÐ#HÓIÐIä ˜YÓ '€Dðܘ,Ó'ˆð �'ˆ?Ðøô òÜ"Ø8¸¸ Ð Có àð ûðús B B.ÂB)Â)B.)!rBÚtypingrrrrrrbr r r.r r rZr4rYrÚ ValueErrorrrrÚcompileÚ IGNORECASEr"r$r+rXÚboolr(r,rJrcrjr rrÚrpsXðó  ß9Õ9ç ß,à ��r‘˜E # s (™OÐ+Ñ ,€ÙÐ)¨3Ó/€ô�*ôô ˜:ôô ˜:ôð�"—*‘*Ø0°"·-±-ó€ð!�b—j‘j Ó+ÐØ�B—J‘JÐQÓRÐà�2—:‘:˜lÓ+Ðð6;ò'˜Cð'¨dð'¸~ó'ð5˜Sð5 Tó5ð BFò-Ø �7˜C�<Ñ ð-Ø:>ð-àó-ð`((Øð((à ˆ>˜7 H¨i¸©nÐ <Ñ=ó((ðV 3ð¨5°ÀÐ1HÑ+Iôr