
    IiL	                     V    S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	   " S S\5      r
g)	    )absolute_import)BytesIO)AbstractType)Schema)
WeakMethodc                   f    \ rS rSr\" 5       rS r\S 5       rS r	\S 5       r
S rS rS rS	 rS
rg)Struct   c           	      X   [        U5      [        U R                  R                  5      :X  a:  [        U R                  R                  5       H  u  p4X   U R
                  U'   M     O[        U5      S:  a  [        S5      eU R                  R                   H"  nUR                  US 5      U R
                  U'   M$     U(       aM  [        S[        U R                  R                  5      < SSR                  UR                  5       5      < 35      e[        U R                  5      U l        g )Nr   z#Args must be empty or mirror schemazKeyword(s) not in schema z: , )lenSCHEMAfields	enumeratenames__dict__
ValueErrorpoplistjoinkeysr   _encode_selfencode)selfargskwargsinames        ;/venv/lib/python3.13/site-packages/kafka/protocol/struct.py__init__Struct.__init__   s    t9DKK..//$T[[%6%67&*gd# 8Y]BCC))&,jjt&<d# * $():):$;$(IIfkkm$<"> ? ? !!2!23    c                     / n[        U R                  R                  5       H'  u  p4UR                  UR	                  X   5      5        M)     SR                  U5      $ )Nr"   )r   r   r   appendr   r   )clsitembitsr   fields        r   r   Struct.encode"   sG    !#**"3"34HAKKTW-. 5xx~r"   c                     U R                   R                  U R                   R                   Vs/ s H  oR                  U   PM     sn5      $ s  snf N)r   r   r   r   r   r   s     r   r   Struct._encode_self)   sA    {{!!-1[[->->?->T]]4 ->?
 	
?s   Ac                     [        U[        5      (       a  [        U5      nU " U R                  R                   Vs/ s H  o"R                  U5      PM     sn6 $ s  snf r+   )
isinstancebytesr   r   r   decode)r%   datar(   s      r   r1   Struct.decode.   sH    dE""4=DSZZ5F5FG5FE\\$'5FGHHGs   Ac                 n    XR                   R                  ;  a  [        SU-  5      eU R                  U   $ )Nz%s is not in the schema)r   r   KeyErrorr   r,   s     r   get_itemStruct.get_item4   s2    {{(((4t;<<}}T""r"   c           	      D   / n[        U R                  R                  U R                  R                  5       H9  u  p#UR	                  U< SUR                  U R                  U   5      < 35        M;     U R                  R                  S-   SR                  U5      -   S-   $ )N=(r   ))
zipr   r   r   r$   reprr   	__class____name__r   )r   key_valsr   r(   s       r   __repr__Struct.__repr__9   sz    t{{00$++2D2DEKDOOtUZZd8K-LMN F~~&&,tyy/BBSHHr"   c                 4    [        U R                  5       5      $ r+   )hashr   )r   s    r   __hash__Struct.__hash__?   s    DKKM""r"   c                     U R                   UR                   :w  a  gU R                   R                   H%  nU R                  U   UR                  U   :w  d  M%    g   g)NFT)r   r   r   )r   otherattrs      r   __eq__Struct.__eq__B   sK    ;;%,,&KK%%D}}T"ennT&:: & r"   )r   N)r?   
__module____qualname____firstlineno__r   r   r    classmethodr   r   r1   r6   rA   rE   rJ   __static_attributes__ r"   r   r	   r	      sR    XF4(  

 I I
#
I#r"   r	   N)
__future__r   ior   kafka.protocol.abstractr   kafka.protocol.typesr   
kafka.utilr   r	   rQ   r"   r   <module>rW      s     &  0 ' !=\ =r"   