o
    FDi                     @   s<   d dl Z ddlmZ ddlmZ G dd deZdd ZdS )	    N   )Column)Stringc                       s>   e Zd ZefZi Z fddZdd Zdd Zdd Z	  Z
S )	
JsonColumnc                    s,   || _ tdi || _t jdi | d S )N )column_by_spec_getterr   string_columnsuper__init__)selfr   kwargs	__class__r   X/var/www/Datamplify/venv/lib/python3.10/site-packages/asynch/proto/columns/jsoncolumn.pyr
      s   zJsonColumn.__init__c                    s   | j dI d H  d S )Nr   )writerwrite_uint8)r   r   r   r   write_state_prefix   s   zJsonColumn.write_state_prefixc                    sJ   | j  I d H  | j  I d H }| |}| I d H  ||I d H S N)reader
read_uint8read_strr   read_state_prefix	read_data)r   n_itemsspeccolr   r   r   
read_items   s   
zJsonColumn.read_itemsc                    s&   dd |D }| j |I d H  d S )Nc                 S   s$   g | ]}t |tr|nt|qS r   )
isinstancestrjsondumps).0xr   r   r   
<listcomp>   s   $ z*JsonColumn.write_items.<locals>.<listcomp>)r   write_items)r   itemsr   r   r   r$      s   zJsonColumn.write_items)__name__
__module____qualname__dictpy_types
null_valuer
   r   r   r$   __classcell__r   r   r   r   r      s    r   c                 C   s   t |fi |S r   )r   )r   r   column_optionsr   r   r   create_json_column!   s   r.   )r   baser   stringcolumnr   r   r.   r   r   r   r   <module>   s
    