o
    h                     @   s8   d dl mZ d dlZd	ddZd
ddZeeddZdS )    )defaultdictNTc                 C   s   | d u rd S | j jdvrtd| j  | j tjkr| tj} | j tjkr+| tj} |r7| j	d s7t
| } t| t| j | jd t| jdkrMddS | jd dS )N)uifzunsupported dtype: %sC_CONTIGUOUSr      )valuedtypelengthsize)r	   kind
ValueErrornpfloat64astypefloat32int64int32flagsascontiguousarray
memoryviewstrshapelen)arobjforce_contiguous r   U/var/www/vscode/kcb/lib/python3.10/site-packages/pydeck/data_utils/binary_transfer.pyarray_to_binary   s"   
r   c                 C   s   | d u rd S t t}i }| D ]N}t|d }||d r-t||d  |d ||d < n|d ||d < ||d  dsFi ||d  d< |d |d |d d||d  d |d	 < q| D ]\}}|| || d< qa|S )
Nnp_datalayer_idr
   
attributesr   r	   r   )r   r	   r   accessor)r   dictr   getmaxitems)data_set_colsr   layersr
   colaccessor_attribute	layer_key_r   r   r   serialize_columns"   s$    r.   )to_json	from_json)NT)N)collectionsr   numpyr   r   r.   r$   data_buffer_serializationr   r   r   r   <module>   s
    

