o
    QDiE                     @  s   d dl mZ d dlZd dlmZmZ d dlZddlmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ejdddG dd deZdS )    )annotationsN)ListOptional   )errorshelperssettingstypes)	Checklist)Dialect)FrictionlessException)Metadata)Package)Report)Resource)Schema)systemTF)kw_onlyreprc                      s  e Zd ZU dZdZded< 	 dZded< 	 dZded< 	 dZded< 	 dZ	ded< 	 dZ
ded	< 	 dZded
< 	 dZded< 	 dZded< 	 dZded< 	 dZded< 	 dZded< 	 dZded< 	 dZded< 	 dZded< 	 dZded< 	 dZded< 	 dd ZdZejZdi ddejdddejddddidddidddid	ddid
ddidddidddidddidddidddiddddgiddddgiddddgiddddgiddddgid Zed*d"d#Z ed+d&d'Z!ed+ fd(d)Z"  Z#S ),InquiryTaskzInquiry task representation.NzOptional[str]nametypetitledescriptionpathschemeformatencoding	mediatypecompressionzOptional[List[str]]
extrapaths	innerpathzOptional[Dialect]dialectzOptional[Schema]schemazOptional[Checklist]	checklistresourcepackagec                 C  sL  t  }| jr4zt| j}W n ty- } z| }tj|j	|dW  Y d }~S d }~ww |
 }|S | jrdzt| j}W n ty] } z| }tj|j	|dW  Y d }~S d }~ww |
 }|S ztj| j| j| j| j| j| j| j| j| j| j| jd}W n ty } z| }tj|j	|dW  Y d }~S d }~ww |
 }|S )N)timer   )r   r   r   r   r   r   r    r!   r"   r#   r$   )r   Timerr&   r   from_descriptorr   	to_errorsr   from_validationr'   validater%   r   from_optionsr   r   r   r   r   r   r    r!   r"   r#   r$   )selftimerr&   	exceptionr   reportr%    r2   R/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/inquiry/task.pyr,   |   sT   
zInquiryTask.validatezinquiry-taskobjectstring)r   patternarray)r   
propertiesstrc                 C  s(   |dkrt S |dkrtS |dkrtS d S )Nr"   r#   r$   )r   r   r
   )clsr   r2   r2   r3   metadata_select_property_class   s   z*InquiryTask.metadata_select_property_class
descriptortypes.IDescriptorc                 C  sX   | dd }|r*| dd}|dkrdnd}||| d}|d7 }t|t d S d S )Nsourcer   r%   r&   zAInquiryTask "source" is deprecated in favor of "resource/package"z.(it will be removed in the next major version))pop
setdefaultwarningswarnUserWarning)r:   r<   r>   r   r   noter2   r2   r3   metadata_transform   s   zInquiryTask.metadata_transformc                 #  s    t t |}|r|E d H  d S tjsMg d}|D ]1}||}t|t r)|n|g}|D ]}|rKt|trKt	|sKt
jd| ddV    d S q.q|d}|d}	|d}
|d u rs|	d u ru|
d u rwd}t
j|dV  d S d S d S d S )	N)r   r%   r&   zpath "z" is not safe)rD   r   r%   r&   zBone of the properties "path", "resource", or "package" is required)listsupermetadata_validater   trustedget
isinstancer9   r   is_safe_pathr   InquiryTaskError)r:   r<   metadata_errorskeyskeyvalueitemsitemr   r%   r&   rD   	__class__r2   r3   rH      s.   




zInquiryTask.metadata_validate)r   r9   )r<   r=   )$__name__
__module____qualname____doc__r   __annotations__r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r,   metadata_typer   rM   metadata_Errorr   NAME_PATTERNTYPE_PATTERNmetadata_profileclassmethodr;   rE   rH   __classcell__r2   r2   rT   r3   r      s   
 .	
r   )
__future__r   rA   typingr   r   attrs r   r   r   r	   r$   r
   r"   r   r0   r   metadatar   r&   r   r1   r   r%   r   r#   r   r   definer   r2   r2   r2   r3   <module>   s     