o
    QDi                     @  s   d dl mZ d dlZd dlmZmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZmZ d
dlmZ ddlmZ G dd deZdS )    )annotationsN)AnyList   )errorstypes)FrictionlessException)platform)TableResource)Parsersystem   )InlineControl   )YamlControlc                   @  s0   e Zd ZdZdZg dZdddZdd
dZdS )
YamlParserzYaml parser implementation.T)arraybooleangeojsonintegerobjectstringyearreturntypes.ICellStreamc              	   c  s    t | jj}tj| jj}|j	r||j	 }t
|jd}t|d|d;}zt|jV  W n tyE   d| jj d}ttj|dw t
|j}|jrRd|_|jE d H  W d    d S 1 scw   Y  d S )N)keysinline)dataformatcontrolz'cannot extract YAML tabular data from "")noteT)r   from_dialectresourcedialectr	   yaml	safe_loadloaderbyte_streampropertyr   r   r
   nextcell_streamStopIterationnormpathr   r   SourceErrorkeyed)selfr   sourceinline_controlr#   r!    r3   Y/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/formats/yaml/parser.pyread_cell_stream_create   s*   
"z"YamlParser.read_cell_stream_creater1   r
   c           	      C  s   g }t | jj}|5 | jjjr|js||jj |j	D ]}|j
dd}|jr1tt|j|n|}|| qW d    n1 sCw   Y  tjddd}tj|| W d    n1 saw   Y  t| j}||j d S )NT)jsonwtF)delete)r   r"   r#   r$   headerr/   appendschemafield_names
row_streamto_listdictziptempfileNamedTemporaryFiler	   r%   dumpr   create_loaderwrite_byte_streamname)	r0   r1   r   r   rowcellsitemfiler'   r3   r3   r4   write_row_stream4   s    
zYamlParser.write_row_streamN)r   r   )r1   r
   )__name__
__module____qualname____doc__requires_loadersupported_typesr5   rK   r3   r3   r3   r4   r      s    
r   )
__future__r   rA   typingr   r    r   r   	exceptionr   r	   	resourcesr
   r   r   r   r   r   r   r   r3   r3   r3   r4   <module>   s    