Ë
    [íîfx  ã                   ó~   — d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ  G d
„ de«      Zy)ú8Enumeration to bytes and bytes to enumeration transform.é    )ÚIntEnum)ÚListÚOptionalÚTupleÚTypeé   )Úgetbytes)ÚByteOrderHint)ÚRecord)ÚInsufficientMemoryError)Ú	Transformc                   óJ  ‡ — e Zd ZU dZeed<   eeee	   ee
e
f   ed<   	 	 dddddœdee	   d	ed
ede
de
dee   ddfˆ fd„Zedefd„«       Zedee	   fd„«       Zede
fd„«       Zede
fd„«       Z	 ddedee   dee   ddfd„Z	 ddededee   deeef   fd„Zdedefd„Zˆ xZS )ÚEnumXr   Ú
__nbytes__Ú	__bdnss__FTN)ÚsignedÚstrictÚnameÚenumÚnbytesÚ	byteorderr   r   r   Úreturnc                ó8  •— |€Edj                  |j                  D cg c]  }|j                  ‘Œ c}«      }|j                  › d|› d}t        ‰	|   ||j                  ¬«       |dkD  sJ ‚|dv sJ ‚|| _        |||t        |«      t        |«      f| _        y c c}w )Nz, z (ú))Úhintr   >   ÚbigÚlittle)ÚjoinÚ	__bases__Ú__name__ÚsuperÚ__init__r   ÚboolÚ	__benss__)
Úselfr   r   r   r   r   r   ÚbÚ
base_namesÚ	__class__s
            €úX/mounts/lovelace/software/anaconda3/envs/py312/lib/python3.12/site-packages/plum/enum.pyr#   zEnumX.__init__   s”   ø€ ð ˆ<ØŸ™¸¿¹Ö#G°1 A§J£JÒ#GÓHˆJØ—m‘m_ B z l°!Ð4ˆDä‰Ñ˜ D§M¡MÐÔ2à˜ŠzÑØÐ-Ñ-Ñ-à ˆŒØ" D¨&´$°v³,ÄÀVÃÐLˆùò $Hs   Bc                 ó*   — | j                   \  }}}}}|S )zByte order ("little" or "big").©r%   )r&   r   Ú_enumÚ_nbytesÚ_signedÚ_stricts         r*   r   zEnumX.byteorder-   s   € ð 7;·n±nÑ3ˆ	5˜' 7¨GØÐó    c                 ó*   — | j                   \  }}}}}|S )zEnumeration.r,   )r&   Ú
_byteorderr   r.   r/   r0   s         r*   r   z
EnumX.enum3   s   € ð 7;·n±nÑ3ˆ
D˜' 7¨GØˆr1   c                 ó*   — | j                   \  }}}}}|S )zSigned integer.r,   )r&   r3   r-   r.   r   r0   s         r*   r   zEnumX.signed9   s   € ð 7;·n±nÑ3ˆ
E˜7 F¨GØˆr1   c                 ó*   — | j                   \  }}}}}|S )z4Values to pack/unpack must be an enumeration member.r,   )r&   r3   r-   r.   r/   r   s         r*   r   zEnumX.strict?   s   € ð 7;·n±nÑ3ˆ
E˜7 G¨VØˆr1   ÚvalueÚpiecesÚdumpc                 ó  — | j                   \  }}}}}	 	  ||«      }t        j                  ||||¬«      }	|||_        |	|_        |j                  |	«       y # t        $ r |r‚ Y ŒIw xY w# t        $ r |t        |«      |_        ‚ w xY w)N©r   )	r%   Ú
ValueErrorÚintÚto_bytesÚ	ExceptionÚreprr6   ÚmemoryÚappend)
r&   r6   r7   r8   r   r   r   r   r   Úpieces
             r*   Ú__pack__zEnumX.__pack__E   s¥   € ð 37·.±.Ñ/ˆ	4˜ ¨ð	ðÙ˜U›ô
 —L‘L ¨°	À&LÓIˆEð ÐØˆDŒJØˆDŒKà‰eÕøô ò ÙØñ ðûô
 ò 	ØÐä! %›[”
Øð		ús(   •A A* ÁA'Á$A* Á&A'Á'A* Á*BÚbufferÚoffsetc                 ó’  — | j                   \  }}}}}|€D||z   }	t        |«      |	k  rt        d«      ‚t        j	                  |||	 ||¬«      }
	  ||
«      |	fS t        ||||«      \  }}	t        j	                  |||¬«      }
	  ||
«      }
|
|_        |
|	fS # t
        $ r	 |r‚ Y |
|	fS w xY w# t
        $ r |r‚ Y Œ.w xY w# |
|_        w xY w)Nztoo few bytes to unpackr:   )r%   Úlenr   r<   Ú
from_bytesr;   r
   r6   )r&   rD   rE   r8   r   r   r   r   r   Úendr6   rB   s               r*   Ú
__unpack__zEnumX.__unpack__^   s  € ð 37·.±.Ñ/ˆ	4˜ ¨àˆ<Ø˜6‘/ˆCä6‹{˜SÒ Ü-Ð.GÓHÐHä—N‘N 6¨&°Ð#5°yÈNÓPˆEðÙ˜E“{ CÐ'Ð'ô
 " &¨&°$¸Ó?‰JˆE3ä—N‘N 5¨)¸FNÓCˆEð#Ù˜U›ð
 #”
àcˆzÐøô! ò ÙØð ð cˆzÐð!ûô ò ÙØñ ðûð #•
ús6   Á	B ÂB+ ÂB(Â'B(Â+B:Â7B= Â9B:Â:B= Â=	Cc                 ón   — | j                   \  }}}}}|r ||«      S 	  ||«      S # t        $ r |cY S w xY w©N)r%   r;   )r&   r6   r3   r   r.   r/   r   s          r*   Ú__call__zEnumX.__call__   sF   € Ø59·^±^Ñ2ˆ
D˜' 7¨FáÙ˜“;Ðð	Ù˜“;ÐøÜò 	ØŠLð	ús   ž& ¦4³4)r	   r   rL   )r!   Ú
__module__Ú__qualname__Ú__doc__r<   Ú__annotations__r   r   r   r   r$   r   Ústrr#   Úpropertyr   r   r   r   r   Úbytesr   rC   rJ   rM   Ú__classcell__)r)   s   @r*   r   r      s‰  ø… áBàƒOØ] D¨¡M°3¸¸dÐBÑCÓCð
 Ø#+ð	Mð ØØ"òMà7‰mðMð ðMð !ð	Mð ðMð ðMð s‰mðMð 
õMð, ð˜=ò ó ðð
 ðd˜7‘mò ó ðð
 ð˜ò ó ðð
 ð˜ò ó ðð IMñØðØ"& u¡+ðØ5=¸fÑ5Eðà	óð4 DHñØðØ%(ðØ08¸Ñ0@ðà	ˆsCˆx‰óðB	˜cð 	 c÷ 	r1   r   N)rP   r   r   Útypingr   r   r   r   Ú	_getbytesr
   Ú_typingr   r8   r   Ú
exceptionsr   Ú	transformr   r   © r1   r*   ú<module>r\      s0   ðñ ?å ß .Ó .å Ý "Ý Ý /Ý  ôxˆIõ xr1   