o
    `j                     @   s\   d dl Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZmZ G dd deZdS )    N   )	BaseField)BitFieldBooleanBytesFloat64Int8Int16Int32Int64StringUnsignedInt16UUIDc                       s   e Zd Zeeeeeee	e
edeeedZedd Z fddZdd Zd	d
 ZdddZdddZdddZdddZdddZdd Zdd Z  ZS )SimpleFieldzutf-8)int8int16uint16int32int64float64booluuidstringbytesrecordsbitfieldc                 C   s&   d|vr|d | j v r| |S d S d S )Nfieldstype)TYPES)clsjson r!   b/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/kafka/protocol/schemas/fields/simple.py
parse_json   s   zSimpleField.parse_jsonc                    sH   d|v rt dt | | j| jvrt d| j | j| j | _d S )Nr   z"Fields not allowed in SimpleField!zUnrecognized type: %s)
ValueErrorsuper__init__	_type_strr   _type)selfr    	__class__r!   r"   r&       s   zSimpleField.__init__c                 C   s   t | jddS )N	batchableF)getattrr(   r)   r!   r!   r"   is_batchable(   s   zSimpleField.is_batchablec                 C   sL  | j tu r+|s	dS t|tr'| dkrdS | dkrdS td| j|f t|S | j tt	t
ttfv rR|s9dS t|trN| drJt|dS t|S t|S | j tu r`|s[d S t|S | j tu rm|sid	S t|S | j tu r|svd S tt|}|d
hkrd S |S |dkrd S t| j tr|S |s| j tu rdS d S td| j )NFfalsetrueTz(Invalid default for boolean field %s: %sr   0x   g           null    zFInvalid default for field %s. The only valid default is empty or null.)r(   r   
isinstancestrlowerr$   _namer   r   r	   r
   r   r   
startswithintr   r   r   floatr   from_32_bit_fieldr   r   )r)   defaultr!   r!   r"   _calculate_default+   sT   









zSimpleField._calculate_defaultNFc                 C      | j j||dS N)compact)r(   encode)r)   valueversionrC   taggedr!   r!   r"   rD   \      zSimpleField.encodec                 C   s   | j j|||d d S rB   )r(   encode_into)r)   rE   outrF   rC   rG   r!   r!   r"   rI   _   s   zSimpleField.encode_intoc                 C      | j j||||d d S rB   )r(   emit_encode_into)r)   ctxval_exprindentrF   rC   rG   r!   r!   r"   rL   b      zSimpleField.emit_encode_intoc                 C   rK   rB   )r(   emit_decode_from)r)   rM   var_namerO   rF   rC   rG   r!   r!   r"   rQ   e   rP   zSimpleField.emit_decode_fromc                 C   rA   rB   )r(   decode)r)   datarF   rC   rG   r!   r!   r"   rS   h   rH   zSimpleField.decodec                 C   s   |d u rd S | j tu rt|S | j tu r7t|tr| }t|dr&| S t|t	t
fs1| }|jddS | j tu r@t|S |S )Nto_dictbackslashreplace)errors)r(   r   r8   r   r7   
memoryviewtobyteshasattrrU   r   	bytearrayrD   rS   r   list)r)   valr!   r!   r"   to_jsonk   s   




zSimpleField.to_jsonc                 C   s
   d| j  S )NzSimpleField(%s))_jsonr.   r!   r!   r"   __repr__~   s   
zSimpleField.__repr__)NFF)__name__
__module____qualname__r   r	   r   r
   r   r   r   r   r   r   r   r   classmethodr#   r&   r/   r@   rD   rI   rL   rQ   rS   r^   r`   __classcell__r!   r!   r*   r"   r   
   s4    

1



r   )r   baser   codecsr   r   r   r   r   r	   r
   r   r   r   r   r   r!   r!   r!   r"   <module>   s    4