
    gE                     0    d dl mZ d dlmZ  G d d      Zy)    )pack)crc32c                       e Zd ZdZd Zd Zd Zd Zd ZeZ	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZy)BinaryEncoderzEncoder for the avro binary format.

    NOTE: All attributes and methods on this class should be considered
    private.

    Parameters
    ----------
    fo: file-like
        Input stream

    c                     || _         y N)_fo)selffos     O/var/www/openai/venv/lib/python3.12/site-packages/fastavro/io/binary_encoder.py__init__zBinaryEncoder.__init__   s	        c                      y r    r
   s    r   flushzBinaryEncoder.flush       r   c                      y r   r   r   s    r   
write_nullzBinaryEncoder.write_null   r   r   c                 h    | j                   j                  t        d|rd             y d             y )NB   r   r	   writer   r
   datums     r   write_booleanzBinaryEncoder.write_boolean   s#    tCe3434r   c                     |dz  |dz	  z  }|dz  dk7  r9| j                   j                  t        d|dz  dz               |dz  }|dz  dk7  r9| j                   j                  t        d|             y )	Nr   ?   ir   r            r   r   s     r   	write_intzBinaryEncoder.write_int   sp    !,u}"HHNN4edld%:;<aKE u}" 	tC'(r   c                 N    | j                   j                  t        d|             y )Nz<fr   r   s     r   write_floatzBinaryEncoder.write_float'       tD%()r   c                 N    | j                   j                  t        d|             y )Nz<dr   r   s     r   write_doublezBinaryEncoder.write_double*   r&   r   c                 n    | j                  t        |             | j                  j                  |       y r   )
write_longlenr	   r   r   s     r   write_byteszBinaryEncoder.write_bytes-   s"    E
#ur   c                 x    	 |j                         }| j                  |       y # t        $ r t        d      w xY w)Nzmust be string)encodeAttributeError	TypeErrorr,   )r
   r   encodeds      r   
write_utf8zBinaryEncoder.write_utf81   s?    	.llnG 	!  	.,--	.s   $ 9c                 j    t        |      dz  }| j                  j                  t        d|             y )Nl    z>I)r   r	   r   r   )r
   r   datas      r   write_crc32zBinaryEncoder.write_crc328   s'    U|j(tD$'(r   c                 :    | j                   j                  |       y r   )r	   r   r   s     r   write_fixedzBinaryEncoder.write_fixed<   s    ur   c                 &    | j                  |       y r   )r#   )r
   indexs     r   
write_enumzBinaryEncoder.write_enum?   s    ur   c                      y r   r   r   s    r   write_array_startzBinaryEncoder.write_array_startB   r   r   c                 &    | j                  |       y r   r*   )r
   lengths     r   write_item_countzBinaryEncoder.write_item_countE   s    r   c                      y r   r   r   s    r   end_itemzBinaryEncoder.end_itemH   r   r   c                 &    | j                  d       y Nr   r>   r   s    r   write_array_endzBinaryEncoder.write_array_endK       r   c                      y r   r   r   s    r   write_map_startzBinaryEncoder.write_map_startN   r   r   c                 &    | j                  d       y rD   r>   r   s    r   write_map_endzBinaryEncoder.write_map_endQ   rF   r   Nc                 &    | j                  |       y r   r>   )r
   r9   schemas      r   write_indexzBinaryEncoder.write_indexT   s    r   r   )__name__
__module____qualname____doc__r   r   r   r   r#   r*   r%   r(   r,   r2   r5   r7   r:   r<   r@   rB   rE   rH   rJ   rM   r   r   r   r   r      sm    
5) J**") r   r   N)structr   binasciir   r   r   r   r   <module>rT      s     P Pr   