
    i~                     P    S SK r S SKJr  Su  rrrrrr	r
/ SQr\\4r " S S5      rg)    N)json)r                     )OPENCLOSEPINGPONGMESSAGEUPGRADENOOPc                   <    \ rS rSrSr\r\SS4S jrSS jr	S r
Srg)	Packet
   zEngine.IO packet.Nc                 6   Xl         X l        S U l        [        U[        5      (       a  SU l        O$[        U[        5      (       a  SU l        OSU l        U R
                  (       a  U R                   [        :w  a  [        S5      eUb  U R                  U5        g g )NFTz*Binary packets can only be of type MESSAGE)
packet_typedataencode_cache
isinstancestrbinarybinary_typesr   
ValueErrordecode)selfr   r   encoded_packets       L/home/admin/cozy_coffee/venv/lib/python3.13/site-packages/engineio/packet.py__init__Packet.__init__   s{    &	 dC  DKl++DKDK;;4++w6IJJ%KK' &    c                    U R                   (       a  U R                   $ U R                  (       aG  U(       a3  S[        R                  " U R                  5      R                  S5      -   nOU R                  nO[        U R                  5      n[        U R                  [        5      (       a  X R                  -  nO[        U R                  [        5      (       d  [        U R                  [        5      (       a'  X R                  R                  U R                  SS9-  nO%U R                  b  U[        U R                  5      -  nX l         U$ )zEncode the packet for transmission.

Note: as a performance optimization, subsequent calls to this method
will return a cached encoded packet, even if the data has changed.
bzutf-8),:)
separators)r   r   base64	b64encoder   r   r   r   r   dictlistr   dumps)r   b64r   s      r    encodePacket.encode   s     $$$;;!$v'7'7		'B'I'I( " "& !1!12N$))S))))+DIIt,,
499d0K0K))//$))=G #2 #I I&#dii.0*r#   c                    [        U[        5      U l        U R                  (       d  [        U5      S:X  a  [	        S5      eU R                  (       + =(       a    US   S:H  nU(       a1  SU l        [
        U l        [        R                  " USS 5      U l	        gU R                  (       a   [        U[        5      (       d  [        U5      nU R                  (       a  [
        U l        Xl	        g[        US   5      U l         US   R                  5       (       a  [        eU R                  R                  USS 5      U l	        g! [        [        4 a    USS U l	         gf = f)zDecode a transmitted package.r   zInvalid empty packet receivedr%   Tr   N)r   r   r   lenr   r   r   r)   	b64decoder   bytesint	isnumericr   loads
IndexError)r   r   r.   s      r    r   Packet.decode8   s    >{{s>2a7<==++o:."3s":DK&D(();<DI{{:ne#D#D!&~!6{{#* *	#&~a'8#9 3%a(2244 )( $		qr0B CDI"J/ 3 .qr 2DI3s   AE E E )r   r   r   r   )F)__name__
__module____qualname____firstlineno____doc___jsonr   r   r!   r/   r   __static_attributes__ r#   r    r   r   
   s     D#'d4 (43r#   r   )r)   engineior   r?   r
   r   r   r   r   r   r   packet_namesr4   	bytearrayr   r   rA   r#   r    <module>rE      s:     "4I 1udD'7DNy!H3 H3r#   