Ë
    >Øïiä&  ã                   óŒ   — d Z ddlZddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddlm
Z
mZmZ d„ Zerd„ Znd	„ Zd
„ Zd„ Zd„ Zd„ Zy)zAMQP Table Encoding/Decodingé    N)Údatetime)Ú
exceptions)ÚPY2Ú
basestring)Úunicode_typeÚlongÚas_bytesc                 óØ   — t        |«      }t        |«      }|dkD  rt        j                  |«      ‚| j	                  t        j                  d|«      «       | j	                  |«       d|z   S )zâEncode a string value as short string and append it to pieces list
    returning the size of the encoded value.

    :param list pieces: Already encoded values
    :param str value: String value to encode
    :rtype: int

    éÿ   ÚBé   )r	   Úlenr   ÚShortStringTooLongÚappendÚstructÚpack)ÚpiecesÚvalueÚencoded_valueÚlengths       úC/var/www/html/aiagents/fe/lib/python3.12/site-packages/pika/data.pyÚencode_short_stringr      s^   € ô ˜U“O€MÜ�Ó€Fð �‚|Ü×+Ñ+¨MÓ:Ð:à
‡M�M”&—+‘+˜c 6Ó*Ô+Ø
‡M�M�-Ô Øˆv‰:Ðó    c                 ó˜   — t        j                  d| |«      d   }|dz  }| |||z    }	 t        |«      }||z  }||fS # t        $ r Y Œw xY w)úIDecode a short string value from ``encoded`` data at ``offset``.
        r   r   r   )r   Úunpack_fromÚbytesÚUnicodeEncodeError©ÚencodedÚoffsetr   r   s       r   Údecode_short_stringr"   .   sp   € ô ×#Ñ# C¨°&Ó9¸!Ñ<ˆØ�!‰ˆð ˜˜v¨™Ð/ˆð	Ü˜%“LˆEð 	�&ÑˆØ�fˆ}Ðøô "ò 	Ùð	ús   ©= ½	A	ÁA	c                 ó¤   — t        j                  d| |«      d   }|dz  }| |||z    }	 |j                  d«      }||z  }||fS # t        $ r Y Œw xY w)r   r   r   r   Úutf8)r   r   ÚdecodeÚUnicodeDecodeErrorr   s       r   r"   r"   ?   ss   € ô ×#Ñ# C¨°&Ó9¸!Ñ<ˆØ�!‰ˆØ˜˜v¨™Ð/ˆð	Ø—L‘L Ó(ˆEð 	�&ÑˆØ�fˆ}Ðøô "ò 	Ùð	ús   ©A Á	AÁAc                 óò   — |xs i }t        | «      }| j                  d«       d}|j                  «       D ]#  \  }}|t        | |«      z  }|t	        | |«      z  }Œ% t        j                  d|«      | |<   |dz   S )zÑEncode a dict as an AMQP table appending the encded table to the
    pieces list passed in.

    :param list pieces: Already encoded frame pieces
    :param dict table: The dict to encode
    :rtype: int

    Nr   ú>Ié   )r   r   Úitemsr   Úencode_valuer   r   )r   ÚtableÚlength_indexÚ	tablesizeÚkeyr   s         r   Úencode_tabler0   M   s„   € ð ŠK�R€EÜ�v“;€LØ
‡M�M�$ÔØ€IØŸ™›ò 1‰ˆˆeØÔ(¨°Ó5Ñ5ˆ	Ø”\ &¨%Ó0Ñ0‰	ð1ô "Ÿ;™; t¨YÓ7€Fˆ<ÑØ�q‰=Ðr   c           
      ó¼	  — t         r€t        |t        «      �r<t        |t        «      r|j	                  d«      }| j                  t        j                  ddt        |«      «      «       | j                  |«       dt        |«      z   S t        |t        «      r_|j	                  d«      }| j                  t        j                  ddt        |«      «      «       | j                  |«       dt        |«      z   S t        |t        «      rN| j                  t        j                  ddt        |«      «      «       | j                  |«       dt        |«      z   S t        |t        «      r0| j                  t        j                  ddt        |«      «      «       yt        |t        «      rS|d	k  r'| j                  t        j                  d
d|«      «       y| j                  t        j                  dd|«      «       yt        |t        «      r*	 t        j                  dd|«      }| j                  |«       yt        |t        j                  «      rÅ|j!                  «       }|j#                  «       j$                  d	k  rg|j#                  «       j$                   }t        |t        j                  d«      |z  z  «      }| j                  t        j                  dd||«      «       y| j                  t        j                  ddd	t        |«      «      «       yt        |t&        «      rH| j                  t        j                  ddt)        j*                  |j-                  «       «      «      «       yt        |t.        «      r4| j                  t        j                  dd«      «       dt1        | |«      z   S t        |t2        «      rtg }|D ]  }t5        ||«       Œ dj7                  |«      }| j                  t        j                  ddt        |«      «      «       | j                  |«       dt        |«      z   S |€&| j                  t        j                  dd«      «       yt9        j:                  | |«      ‚# t        j                  $ rZ |d	k  r!t        j                  d
dt        |«      «      }n t        j                  ddt        |«      «      }| j                  |«       Y yw xY w)zÜEncode the value passed in and append it to the pieces list returning
    the the size of the encoded value.

    :param list pieces: Already encoded values
    :param any value: The value to encode
    :rtype: int

    zutf-8z>cIó   Sé   ó   xz>cBó   té   r   z>cqó   Lz>cQó   lé	   z>ció   Ié
   z>cBió   Dé   ó   Tz>có   Fr   r   ó   Aó   V)r   Ú
isinstancer   r   Úencoder   r   r   r   r   ÚboolÚintr   ÚerrorÚdecimalÚDecimalÚ	normalizeÚas_tupleÚexponentr   ÚcalendarÚtimegmÚutctimetupleÚdictr0   Úlistr+   Újoinr   ÚUnsupportedAMQPFieldException)r   r   ÚpackedÚdecimalsÚrawÚlist_piecesÚvalÚpieces           r   r+   r+   b   s¦  € õ Ü�eœZÕ(Ü˜%¤Ô.ØŸ™ WÓ-�Ø�M‰Mœ&Ÿ+™+ e¨T´3°u³:Ó>Ô?Ø�M‰M˜%Ô Ø”s˜5“z‘>Ð!ô �eœZÔ(Ø—L‘L Ó)ˆEØ�M‰Mœ&Ÿ+™+ e¨T´3°u³:Ó>Ô?Ø�M‰M˜%Ô Ø”s˜5“z‘>Ð!ä�eœUÔ#Ø�M‰Mœ&Ÿ+™+ e¨T´3°u³:Ó>Ô?Ø�M‰M˜%Ô Ø”s˜5“z‘>Ð!ä�%œÔØ�‰”f—k‘k %¨¬s°5«zÓ:Ô;ØÜ�%œÔØ�1Š9Ø�M‰Mœ&Ÿ+™+ e¨T°5Ó9Ô:ð ð �M‰Mœ&Ÿ+™+ e¨T°5Ó9Ô:ØÜ	�Eœ3Ô	ð
	Ü—[‘[ ¨¨eÓ4ˆFØ�M‰M˜&Ô!Øô 
�Eœ7Ÿ?™?Ô	+Ø—‘Ó!ˆØ�>‰>Ó×$Ñ$ qÒ(ØŸ™Ó(×1Ñ1Ð1ˆHÜ�eœwŸ™¨rÓ2°HÑ<Ñ=Ó>ˆCØ�M‰Mœ&Ÿ+™+ f¨d°H¸cÓBÔCð ð �M‰Mœ&Ÿ+™+ f¨d°A´s¸5³zÓBÔCØÜ	�Eœ8Ô	$Ø�‰Ü�K‰K˜˜t¤X§_¡_°U×5GÑ5GÓ5IÓ%JÓKô	MàÜ	�Eœ4Ô	 Ø�‰”f—k‘k $¨Ó-Ô.Ø”< ¨Ó.Ñ.Ð.Ü	�Eœ4Ô	 ØˆØò 	+ˆCÜ˜ cÕ*ð	+à—‘˜Ó%ˆØ�‰”f—k‘k %¨¬s°5«zÓ:Ô;Ø�‰�eÔØ”3�u“:‰~ÐØ	ˆØ�‰”f—k‘k $¨Ó-Ô.Øä×6Ñ6°v¸uÓEÐEøôI �|‰|ò 	Ø�qŠyÜŸ™ U¨D´$°u³+Ó>‘äŸ™ U¨D´$°u³+Ó>�Ø�M‰M˜&Ô!Ùð	ús   È(Q. Ñ.A*SÓSc                 ó²   — i }t        j                  d| |«      d   }|dz  }||z   }||k  r)t        | |«      \  }}t        | |«      \  }}|||<   ||k  rŒ)||fS )a  Decode the AMQP table passed in from the encoded value returning the
    decoded result and the number of bytes read plus the offset.

    :param str encoded: The binary encoded data to decode
    :param int offset: The starting byte offset
    :rtype: tuple

    r(   r   r)   )r   r   r"   Údecode_value)r    r!   Úresultr.   Úlimitr/   r   s          r   Údecode_tabler]   µ   sz   € ð €FÜ×"Ñ" 4¨°&Ó9¸!Ñ<€IØ
ˆa�K€FØ�YÑ€EØ
�5Š.Ü)¨'°6Ó:‰ˆˆVÜ$ W¨fÓ5‰ˆˆvØˆˆs‰ð �5‹.ð �6ˆ>Ðr   c                 óØ  — | ||dz    }|dz  }|dk(  r.t        j                  d| |«      d   }t        |«      }|dz  }||fS |dk(  r#t        j                  d| |«      d   }|dz  }||fS |dk(  r#t        j                  d| |«      d   }|dz  }||fS |dk(  r#t        j                  d	| |«      d   }|d
z  }||fS |dk(  r#t        j                  d| |«      d   }|d
z  }||fS |dk(  r#t        j                  d| |«      d   }|dz  }||fS |dk(  r#t        j                  d| |«      d   }|dz  }||fS |dk(  r,t        t        j                  d| |«      d   «      }|dz  }||fS |dk(  r,t        t        j                  d| |«      d   «      }|dz  }||fS |dk(  r,t        t        j                  d| |«      d   «      }|dz  }||fS |dk(  r,t        t        j                  d| |«      d   «      }|dz  }||fS |dk(  rqt        j                  d| |«      d   }|dz  }t        j                  d| |«      d   }|dz  }t	        j
                  |«      t	        j
                  d«      | z  z  }||fS |dk(  r#t        j                  d	| |«      d   }|d
z  }||fS |dk(  rBt        j                  d| |«      d   }|dz  }| |||z    }	 |j                  d «      }||z  }||fS |d!k(  r0t        j                  d| |«      d   }|dz  }| |||z    }||z  }||fS |d"k(  rUt        j                  d| |«      d   }|dz  }||z   }g }||k  r&t        | |«      \  }}|j                  |«       ||k  rŒ&||fS |d#k(  r6t        j                  t        j                  d| |«      d   «      }|dz  }||fS |d$k(  rt        | |«      \  }}||fS |d%k(  rd&}||fS t        j                  |«      ‚# t        $ r Y �Œw xY w)'a5  Decode the value passed in returning the decoded value and the number
    of bytes read in addition to the starting offset.

    :param str encoded: The binary encoded data to decode
    :param int offset: The starting byte offset
    :rtype: tuple
    :raises: pika.exceptions.InvalidFieldTypeException

    r   r5   z>Br   ó   bó   Bz>bó   Uz>hr6   ó   uz>Hr:   z>ir)   ó   ir(   r7   z>qé   r8   z>Qó   fz>fó   dz>dr<   r   r;   ó   sr2   r$   r4   r@   r>   r?   rA   N)r   r   rD   r   rG   rH   r%   r&   rZ   r   r   Úutcfromtimestampr]   r   ÚInvalidFieldTypeException)	r    r!   Úkindr   rT   rU   r   Ú
offset_endrW   s	            r   rZ   rZ   É   s<  € ð �6˜& 1™*Ð%€DØ
ˆa�K€Fð ˆt‚|Ü×"Ñ" 4¨°&Ó9¸!Ñ<ˆÜ�U“ˆØ�!‰ˆðZ �&ˆ=ÐðU 
�ŠÜ×"Ñ" 4¨°&Ó9¸!Ñ<ˆØ�!‰ˆðP �&ˆ=ÐðK 
�ŠÜ×"Ñ" 4¨°&Ó9¸!Ñ<ˆØ�!‰ˆðF �&ˆ=ÐðA 
�ŠÜ×"Ñ" 4¨°&Ó9¸!Ñ<ˆØ�!‰ˆð| �&ˆ=Ððw 
�ŠÜ×"Ñ" 4¨°&Ó9¸!Ñ<ˆØ�!‰ˆðr �&ˆ=Ððm 
�ŠÜ×"Ñ" 4¨°&Ó9¸!Ñ<ˆØ�!‰ˆðh �&ˆ=Ððc 
�ŠÜ×"Ñ" 4¨°&Ó9¸!Ñ<ˆØ�!‰ˆð^ �&ˆ=ÐðY 
�ŠÜ”V×'Ñ'¨¨g°vÓ>¸qÑAÓBˆØ�!‰ˆðT �&ˆ=ÐðO 
�ŠÜ”V×'Ñ'¨¨g°vÓ>¸qÑAÓBˆØ�!‰ˆðJ �&ˆ=ÐðE 
�ŠÜ”V×'Ñ'¨¨g°vÓ>¸qÑAÓBˆØ�!‰ˆð@ �&ˆ=Ðð{ 
�ŠÜ”V×'Ñ'¨¨g°vÓ>¸qÑAÓBˆØ�!‰ˆðv �&ˆ=Ððq 
�ŠÜ×%Ñ% c¨7°FÓ;¸AÑ>ˆØ�!‰ˆÜ× Ñ   w°Ó7¸Ñ:ˆØ�!‰ˆÜ—‘ Ó$¬¯©¸Ó(;¸h¸YÑ(FÑGˆðf �&ˆ=Ðð_ 
�ŠÜ×"Ñ" 4¨°&Ó9¸!Ñ<ˆØ�!‰ˆðZ �&ˆ=ÐðU 
�ŠÜ×#Ñ# D¨'°6Ó:¸1Ñ=ˆØ�!‰ˆØ˜˜v¨™Ð/ˆð	Ø—L‘L Ó(ˆEð 	�&ÑˆðD �&ˆ=ÐðA 
�ŠÜ×#Ñ# D¨'°6Ó:¸1Ñ=ˆØ�!‰ˆØ˜˜v¨™Ð/ˆØ�&Ñˆð8 �&ˆ=Ðð3 
�ŠÜ×#Ñ# D¨'°6Ó:¸1Ñ=ˆØ�!‰ˆØ˜f‘_ˆ
ØˆØ�zÒ!Ü& w°Ó7‰KˆC�Ø�L‰L˜Ôð �zÓ!ð( �&ˆ=Ðð 
�ŠÜ×)Ñ)Ü×Ñ˜t W¨fÓ5°aÑ8ó:ˆà�!‰ˆð �&ˆ=Ðð 
�ŠÜ& w°Ó7‰ˆ�ð �&ˆ=Ðð 
�ŠØˆð �&ˆ=Ðô ×2Ñ2°4Ó8Ð8øôE "ò 	Úð	ús   Ë O Ï	O)Ï(O))Ú__doc__r   rG   rL   r   Úpikar   Úpika.compatr   r   r   r   r	   r   r"   r0   r+   r]   rZ   © r   r   ú<module>rp      sL   ðÙ "Û Û Û å å ß 'ß 4Ñ 4òñ> óò"òò*PFòfó(r   