Ë
    ^ãjß  ã                   ó,  — d Z ddlZddlmZ ddl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
Z ee	j$                  j&                  e	j$                  j(                  e	j$                  j*                  g«      ZdZeefd„Z G d„ d«      Zeeeeeeefd„Zy)z5Convert between frames and higher-level AMQP methods.é    N©Údefaultdict)ÚpackÚ	pack_intoÚunpack_fromé   )Úspec)ÚMessage)ÚUnexpectedFrame)Ústr_to_bytes)Úframe_handlerÚframe_writeré(   c                 óB   ‡ ‡‡‡‡‡— t        d„ «      Ši Šˆˆ ˆˆˆˆfd„}|S )z!Create closure that reads frames.c                   ó   — y)Nr   © r   ó    úU/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/amqp/method_framing.pyú<lambda>zframe_handler.<locals>.<lambda>    s   � r   c                 ó†  •— | \  }}}‰xj                   dz  c_         |‰	|   dfvrt        dj                  |‰	|   «      «      ‚|dk(  r0 ‰d|d«      }|‰v rt        ||¬«      ‰
|<   d‰	|<   y ‰|||d «       y
|dk(  r_‰
|   }|j	                  |«       |j
                  sd	‰	|<   yd‰	|<   ‰
j                  |d «        ‰||j                  |j                  |«       y
|d	k(  rZ‰
|   }|j                  |«       |j
                  syd‰	|<   ‰
j                  |d «        ‰||j                  |j                  |«       y
|dk(  ryy
)Nr   é   z*Received frame {} while expecting type: {}ú>HHr   )Úframe_methodÚ
frame_argsé   Fé   T)
Ú
bytes_recvr   Úformatr
   Úinbound_headerÚreadyÚpopr   r   Úinbound_body)ÚframeÚ
frame_typeÚchannelÚbufÚ
method_sigÚmsgÚcallbackÚ
connectionÚcontent_methodsÚexpected_typesÚpartial_messagesr   s         €€€€€€r   Úon_framezframe_handler.<locals>.on_frame#   sŒ  ø€ Ø#(Ñ ˆ
�G˜SØ×Ò Ñ"ÕØ˜n¨WÑ5°qÐ9Ñ9Ü!Ø<×CÑCØ ¨wÑ 7ó9óð ð ˜1Š_Ù$ U¨C°Ó3ˆJà˜_Ñ,ä,3Ø!+¸ô-Ð  Ñ)ð +,�˜wÑ'Øá�W˜j¨#¨tÔ4ð8 ð5 ˜1Š_Ø" 7Ñ+ˆCØ×Ñ˜sÔ#à—9’9à*+�˜wÑ'Øð '(ˆN˜7Ñ#Ø× Ñ  ¨$Ô/Ù�W˜c×.Ñ.°·±ÀÔDð ð ˜1Š_Ø" 7Ñ+ˆCØ×Ñ˜SÔ!Ø—9’9àØ&'ˆN˜7Ñ#Ø× Ñ  ¨$Ô/Ù�W˜c×.Ñ.°·±ÀÔDð ð ˜1Š_àØr   r   )r*   r)   r   r+   r.   r,   r-   s   ```` @@r   r   r      s'   ý€ ô !¡Ó+€NØÐ÷/ñ /ðb €Or   c                   óF   — e Zd Zd„ Zed„ «       Zej                  d„ «       Zy)ÚBufferc                 ó   — || _         y ©N)r&   ©Úselfr&   s     r   Ú__init__zBuffer.__init__X   s	   € Øˆ�r   c                 ó   — | j                   S r2   )Ú_buf)r4   s    r   r&   z
Buffer.buf[   s   € à�y‰yÐr   c                 ó2   — || _         t        |«      | _        y r2   )r7   Ú
memoryviewÚviewr3   s     r   r&   z
Buffer.buf_   s   € àˆŒ	ô ˜s“Oˆ�	r   N)Ú__name__Ú
__module__Ú__qualname__r5   Úpropertyr&   Úsetterr   r   r   r0   r0   W   s3   „ òð ñó ðð 	‡Z�Zñ$ó ñ$r   r0   c	                 óÀ   ‡ ‡‡‡‡‡‡
‡‡‡— |j                   Št        t        ‰ j                  dz
  «      «      Št	        j
                  «       Šˆ
ˆfd„}	ˆˆ ˆˆˆˆˆˆfd„Š
|	S )z"Create closure that writes frames.r   c                 óL   •— ‰5   ‰| ||||«      cd d d «       S # 1 sw Y   y xY wr2   r   )Útype_r%   r'   ÚargsÚcontentÚ_write_frameÚbuffer_locks        €€r   Úwrite_framez!frame_writer.<locals>.write_framex   s/   ø€ Øñ 	KÙ  w°
¸DÀ'ÓJ÷	K÷ 	Kò 	Kús   „š#c                 óö  •— ‰j                   dz
  }d}d } ‰|«      }|rˆ|j                  }t        |t        «      r-|j                  j                  dd«      }	|j                  |	«      }|j                  «       } ‰|«      }
 ‰|«      xs d} ‰|«      |z   |
z   t        z   }||kD  }nd\  }}
}|r»| dk(  rdj                   ‰dg|¢­Ž |g«      nd} ‰|«      } ‰ ‰d	|z  | |||d
«      «       |�rtdj                   ‰d|d   d ‰|«      «      |g«      } ‰|«      } ‰ ‰d	|z  d|||d
«      «        ‰d|
|«      D ](  }||||z    } ‰|«      } ‰ ‰d	|z  d|||d
«      «       Œ* nû| ‰‰j                  «      kD  rt        |«      ‰_
        ‰j                  }| dk(  rdj                   ‰dg|¢­Ž |g«      nd} ‰|«      } ‰d	|z  ||| |||d
«       |d|z   z  }|�pdj                   ‰d|d   d ‰|«      «      |g«      } ‰|«      } ‰d	|z  ||d|||d
«       |d|z   z  } ‰|«      }
|
dkD  r|
} ‰d	|z  ||d|||d
«       |d|z   z  } ‰‰j                  d | «       ‰xj                  dz  c_        y )Nr   r   Úcontent_encodingzutf-8)Nr   r   r   r   r   z>BHI%dsBéÎ   z>HHQr   r   )Ú	frame_maxÚbodyÚ
isinstanceÚstrÚ
propertiesÚ
setdefaultÚencodeÚ_serialize_propertiesÚFRAME_OVERHEADÚjoinr&   Ú	bytearrayr:   Ú
bytes_sent)rB   r%   r'   rC   rD   Ú
chunk_sizeÚoffsetrO   rL   ÚencodingÚbodylenÚproperties_lenÚframelenÚbigbodyr#   Úir&   Úbuffer_storer*   Úlenr   r   Úranger   Úwrites                    €€€€€€€€r   rE   z"frame_writer.<locals>._write_frame|   s%  ø€ Ø×)Ñ)¨AÑ-ˆ
ØˆØˆ
Ù˜DÓ!ˆÙØ—<‘<ˆDÜ˜$¤Ô$Ø"×-Ñ-×8Ñ8Ø&¨ó1�à—{‘{ 8Ó,�Ø ×6Ñ6Ó8ˆJÙ˜$“iˆGÙ  ›_Ò1°ˆNÙ˜4“y >Ñ1°GÑ;¼nÑLˆHØ Ñ+‰Gà%/Ñ"ˆD�'˜7áð  š
ð —X‘X™t EÐ7¨JÒ7¸Ð>Ô?Ø(+ð á˜5“zˆHÙ‘$�z HÑ,Ø˜g x°¸ó>ô ?âØŸ™Ù˜ ¨A¡°±3°t³9Ó=Øð"ó �ñ ˜u›:�Ù‘d˜:¨Ñ0Ø˜g x°¸ó>ô ?ñ ˜q '¨:Ó6ò -�AØ   1 z¡>Ð2�EÙ" 5›z�HÙ™$˜z¨HÑ4Ø  '¨8Ø$ dó,õ -ñ-ð ™C × 0Ñ 0Ó1Ò1Ü#,¨ZÓ#8�Ô Ø×"Ñ"ˆCð  š
ð —X‘X™t EÐ7¨JÒ7¸Ð>Ô?Ø(+ð á˜5“zˆHÙ�j 8Ñ+¨S°&Ø˜W h°°tô=à�a˜(‘lÑ"ˆFØÐØŸ™Ù˜ ¨A¡°±3°t³9Ó=Øð"ó �ñ ˜u›:�á˜* xÑ/°°fØ˜W h°°tô=à˜!˜h™,Ñ&�á˜d›)�Ø˜Q’;Ø&�HÙ˜j¨8Ñ3°S¸&Ø ¨(°D¸$ô@à˜a (™lÑ*�Fá�,×#Ñ# G VÐ,Ô-à×Ò Ñ"Ör   )rb   r0   rU   rK   Ú	threadingÚLock)r*   Ú	transportr   r   ra   r`   Úbytesr   Útext_trG   rE   rF   r_   rb   s   ` ```` `  @@@@r   r   r   h   sR   ÿù€ ð �O‰O€Eäœ) J×$8Ñ$8¸1Ñ$<Ó=Ó>€Lô —.‘.Ó"€KõK÷M#ó M#ð\ Ðr   )Ú__doc__rc   Úcollectionsr   Ústructr   r   r   Ú r	   Úbasic_messager
   Ú
exceptionsr   Úutilsr   Ú__all__Ú	frozensetÚBasicÚReturnÚDeliverÚGetOkÚ_CONTENT_METHODSrS   r   r0   ra   r`   rf   rN   r   r   r   r   ú<module>rv      s—   ðÙ ;ó Ý #ß /Ñ /å Ý "Ý 'Ý à
+€ñ Ø‡J�J×ÑØ‡J�J×ÑØ‡J�J×Ñðó Ð ð €ð *Ð;Kó7÷t$ñ $ð$  i°uÀ#Ø¨<Àôbr   