o
    QDi                     @  s   d dl mZ d dlmZ d dlmZmZmZmZm	Z	 d dl
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 ddlmZ erLddlmZ e
jdddG dd deZdddZdS )    )annotations)Pool)TYPE_CHECKINGClassVarListOptionalUnionN   )helperssettings)InquiryError)Metadata)platform)Report   InquiryTask)typesTF)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< 	 e	j
ed	Zd
ed< 	 dddddZdZeZddgdejddejdddiddidddidddZedddZdS )InquiryzInquiry representation.NzOptional[str]namezClassVar[Union[str, None]]typetitledescription)factoryzList[InquiryTask]tasksF)parallelr   boolc          
      C  s   t  }g }|s| jD ]}| }|| qn.t #}dd | jD }|t|}|D ]
}	|t	|	 q,W d   n1 sAw   Y  tj
|j|d}| j|_| j|_| j|_|S )zValidate inquiry

        Parameters:
            parallel? (bool): enable multiprocessing

        Returns:
            Report: validation report
        c                 S  s   g | ]}|  qS  )to_descriptor).0taskr   r   U/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/inquiry/inquiry.py
<listcomp>K   s    z$Inquiry.validate.<locals>.<listcomp>N)timereports)r
   Timerr   validateappendr   mapvalidate_parallelr   from_descriptorfrom_validation_reportsr%   r   r   r   )
selfr   timerr&   r"   reportpooltask_descriptorsreport_descriptorsreport_descriptorr   r   r#   r(   4   s&   
zInquiry.validateinquiryobjectstring)r   patternarray)r   items)r   r   r   r   r   )r   required
propertiesstrc                 C  s   |dkrt S d S )Nr   r   )clsr   r   r   r#   metadata_select_property_classg   s   z&Inquiry.metadata_select_property_class)r   r   )r   r=   )__name__
__module____qualname____doc__r   __annotations__r   r   r   attrsfieldlistr   r(   metadata_typer   metadata_Errorr   NAME_PATTERNTYPE_PATTERNmetadata_profileclassmethodr?   r   r   r   r#   r      s4   
 %

r   
descriptortypes.IDescriptorreturnc                 C  s   t jj| }| }| S )N)r   frictionlessr   r,   r(   r    )rN   r"   r0   r   r   r#   r+   p   s   r+   )rN   rO   rP   rO   )
__future__r   multiprocessingr   typingr   r   r   r   r   rE    r
   r   errorsr   metadatar   r   r0   r   r"   r   r   definer   r+   r   r   r   r#   <module>   s    \