o
    QDi'
                     @  s^   d dl mZ d dlZd dlmZmZmZ d dlZddlm	Z	 ej
dddG d	d
 d
e	ZdS )    )annotationsN)AnyDictOptional   )FieldTF)kw_onlyreprc                      sd   e Zd ZU dZdZg dZejedZ	de
d< 	  fddZd	d
 Zdd ZddddiiiZ  ZS )
ArrayFieldarrayT)required	minLength	maxLengthenum)factoryzOptional[Dict[str, Any]]
array_itemc                   sj   t    d | jr+| j }|dd  |d| j |dd t|}| d	 fdd}|S )
N	arrayItemnametypeanycellr   c                   sv    | \} }| d ur7|s7r7t | D ]$\}}|\}}|r2|p!i }| D ]\}}d| ||< q&|| |< q| |fS )Nzarray item )	enumerateitems)r   notesindexitem	item_cell
item_notesr   notedefault_readerfield_reader R/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/fields/array.pycell_reader,   s   
z2ArrayField.create_cell_reader.<locals>.cell_readerr   r   )	supercreate_cell_readerr   copypop
setdefaultr   r   from_descriptor)self
descriptorfieldr$   	__class__r   r#   r'      s   


zArrayField.create_cell_readerc                 C     ddd}|S )Nr   r   c                 S  sh   t | ts2t | tr%zt| } W n
 ty   Y d S w t | ts#d S | S t | tr0t| } | S d S | S N)
isinstanceliststrjsonloads	Exceptiontupler   r"   r"   r#   value_reader<   s   



z4ArrayField.create_value_reader.<locals>.value_readerr%   r"   )r,   r;   r"   r"   r#   create_value_reader:   s   
zArrayField.create_value_readerc                 C  r1   )Nr   r   c                 S  s
   t | S r2   )r6   dumpsr:   r"   r"   r#   value_writerQ   s   
z4ArrayField.create_value_writer.<locals>.value_writerr%   r"   )r,   r>   r"   r"   r#   create_value_writerO   s   
zArrayField.create_value_writer
propertiesr   r   object)__name__
__module____qualname__r   builtinsupported_constraintsattrsr.   dictr   __annotations__r'   r<   r?   metadata_profile_patch__classcell__r"   r"   r/   r#   r
      s   
 
r
   )
__future__r   r6   typingr   r   r   rG   schemar   definer
   r"   r"   r"   r#   <module>   s    