+
    SBir
              
          R t ^ RIt^ RIt^ RIt^ RIt^ RIHtHtHtH	t	 ^RI
Ht  ! R R]4      tR R lt]P                  R R	 l4       tR
 R lt]R8X  d   ^ RIt]P&                  ! 4       t]P+                  R4      '       g   Q R4       h]! R]4       ]! R]! ]P.                  4      4       ]! RRR7       ]! ]P0                  ! RR]P3                  R^4      R,          4      4       F  t]! ]RR7       K  	  R# R# )zPEP 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                   ,   a  ] tR t^t o V 3R ltRtV tR# )_MuslVersionc                2   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   # )   majorminor)int)format__classdict__s   "H/usr/lib/python3.14/site-packages/wheel/vendored/packaging/_musllinux.py__annotate___MuslVersion.__annotate__   s     J J      N)__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__)r   s   @r   r   r      s      r   r   c                F    V ^8  d   QhR\         R\        \        ,          /# )r
   outputreturnstrr   r   )r   s   "r   r   r      s#     F F F(> Fr   c                    R  V P                  4        4        Uu. uF  q'       g   K  VNK  	  pp\        V4      ^8  g   V^ ,          R,          R8w  d   R# \        P                  ! RV^,          4      pV'       g   R# \	        \        VP                  ^4      4      \        VP                  ^4      4      R7      # u upi )c              3   @   "   T F  qP                  4       x  K  	  R # 5i)N)strip).0ns   & r   	<genexpr>&_parse_musl_version.<locals>.<genexpr>   s     @,?q,?s   :N   NmuslNzVersion (\d+)\.(\d+))r   r   )
splitlineslenrematchr   r   group)r   r%   linesms   &   r   _parse_musl_versionr1      s    @F,=,=,?@F@1AQQ@EF
5zA~q"/
(%(3Ac!''!*oS_EE Gs
   	B<B<c                F    V ^8  d   QhR\         R\        \        ,          /# )r
   
executabler   r   )r   s   "r   r   r       s     , ,# ,(<*@ ,r   c                \    \        V R4      ;_uu_ 4       p\        V4      P                  pRRR4       Xe   RT9  d   R# \        P                  ! T.\        P                  RR7      p\        TP                  4      #   + '       g   i     LZ; i  \        \        \
        3 d     R# i ; i)aD  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
rbNr)   T)stderrtext)openr   interpreterOSError	TypeError
ValueError
subprocessrunPIPEr1   r6   )r3   fldprocs   &   r   _get_musl_versionrC      s    *d##q''B $ 
zV2%>>2$zTBDt{{++ $#Y
+ s-   B A>B >B		B B B+*B+c                \    V ^8  d   QhR\         \        ,          R\        \        ,          /# )r
   archsr   )r   r    r   )r   s   "r   r   r   6   s"     ? ?# ?8C= ?r   c              #     "   \        \        P                  4      pVf   R# V  F8  p\        VP                  RR4       F  pRVP
                   RV RV 2x  K  	  K:  	  R# 5i)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__)rC   sysr3   ranger   r   )rE   sys_muslarchr   s   &   r   platform_tagsrN   6   s]      !0H8>>2r2Ex~~.awav>> 3 s   A A"__main__zlinux-z	not linuxzplat:zmusl:ztags: )endz[.-]rH   -z
      rI   )__doc__	functoolsr,   r=   rJ   typingr   r   r   r   _elffiler   r   r1   	lru_cacherC   rN   r   	sysconfigget_platformplat
startswithprintr3   subsplittr   r   r   <module>r`      s     	  
 ; ; : 
F , ,,?& z!!#D??8$$1k1$	'4	'$S^^45	's266'3

30B20FGHaZ  I r   