Ë "Á 8e~ƒ{ã ó—dZddlZddlZddlZddlZddlmZmZmZm Z ddl m Z Gd„de«Z de d ee fd „Zej«d e d ee fd „«Zd e e d ee fd„Zedk(r–ddlZej(«Zej-d«sJd«‚ede«edeej0««edd¬«eej2ddej5dd«d««D] Zeed¬«Œyy)z�PEP 656 support. This module implements logic to detect if the currently running Python is linked against musl, and what musl version is used. éN)ÚIteratorÚ NamedTupleÚOptionalÚSequenceé)ÚELFFilecó"—eZdZUeed<eed<y)Ú _MuslVersionÚmajorÚminorN)Ú__name__Ú __module__Ú __qualname__ÚintÚ__annotations__©óú9/usr/lib/python3.12/site-packages/packaging/_musllinux.pyr r s …Ø ƒJØ „Jrr ÚoutputÚreturncó@—d„|j«D«D�cgc]}|sŒ|‘Œ }}t|«dks |ddddk7rytjd|d«}|syt t |j d««t |j d««¬«Scc}w) Nc3ó<K—|]}|j«–—Œy­w)N)Ústrip)Ú.0Úns rÚ z&_parse_musl_version..sèø€Ð@Ñ,? q˜Ÿ™ŸÑ,?ùs‚éréÚmuslzVersion (\d+)\.(\d+)r)r r )Ú splitlinesÚlenÚreÚmatchr rÚgroup)rrÚlinesÚms rÚ_parse_musl_versionr's�€Ù@¨F×,=Ñ,=Ô,?Ô@Ó FÑ@�1ÂAŠQÐ@€EÐ FÜ ˆ5ƒz�A‚~˜˜q™ " 1˜¨Ò/ØÜ �‰Ð(¨%°©(Ó3€AÙ ØÜ œc !§'¡'¨!£*›o´S¸¿¹À»³_Ô EÐEùò Gs šB¢BÚ executablecó*— t|d«5}t|«j}ddd«�d|vryt j|gt jd¬«}t|j«S#1swYŒLxYw#ttt f$rYywxYw)a`Detect currently-running musl runtime version. This is done by checking the specified executable's dynamic linking information, and invoking the loader to parse its output for a version string. If the loader is musl, the output would be something like:: musl libc (x86_64) Version 1.2.2 Dynamic Program Loader ÚrbNrT)ÚstderrÚtext) ÚopenrÚ interpreterÚOSErrorÚ TypeErrorÚ ValueErrorÚ subprocessÚrunÚPIPEr'r+)r(ÚfÚldÚprocs rÚ_get_musl_versionr8s€€ðÜ �*˜dÔ # qܘ“×'Ñ'ˆB÷$ð €z�V 2Ñ%ØÜ �>‰>˜2˜$¤z§¡¸TÔ B€DÜ ˜tŸ{™{Ó +Ð+÷$Ð #ûä ”Y¤ Ð +òÙðús'‚ A;ŽA/¤A;Á/A8Á4A;Á;BÂBÚarchsc#ó¸K—ttj«}|€y|D]5}t|jdd«D]}d|j ›d|›d|›�–—ŒŒ7y­w)aÆGenerate musllinux tags compatible to the current platform. :param archs: Sequence of compatible architectures. The first one shall be the closest to the actual architecture and be the part of platform tag after the ``linux_`` prefix, e.g. ``x86_64``. The ``linux_`` prefix is assumed as a prerequisite for the current platform to be musllinux-compatible. :returns: An iterator of compatible musllinux tags. NéÿÿÿÿÚ musllinux_Ú_)r8Úsysr(Úranger r )r9Úsys_muslÚarchr s rÚ platform_tagsrB6s^èø€ô!¤§¡Ó0€HØÐØÛˆÜ˜8Ÿ>™>¨2¨rÖ2ˆEؘxŸ~™~Ð.¨a°¨w°a¸°vÐ>Ó >ñ3ñùs‚AAÚ__main__zlinux-z not linuxzplat:zmusl:ztags:Ú )Úendz[.-]r=Ú-r;z )Ú__doc__Ú functoolsr"r2r>ÚtypingrrrrÚ_elffilerr Ústrr'Ú lru_cacher8rBr Ú sysconfigÚ get_platformÚplatÚ startswithÚprintr(ÚsubÚsplitÚtrrrÚrUs/ðñó Û ÛÛ ß;Ó;åô�:ôð F ðF¨°Ñ(>óFð€×ÑÓð, #ð,¨(°<Ñ*@ò,óð,ð,?˜ #™ð?¨8°C©=ó?ð& ˆzÒÛà !ˆ9× !Ñ !Ó #€DØ �?‰?˜8Ô $Ð1 kÓ1Ð $á ˆ'�4ÔÙ ˆ'Ñ$ S§^¡^Ó4Ô5Ù ˆ'�sÕÙ ˜6˜2Ÿ6™6 '¨3°· ± ¸3ÀÓ0BÀ2Ñ0FÓGÖ HˆÙ ˆa�ZÖ ñIðr