o
    QDi                     @  s   d dl mZ d dl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 er0dd	lmZ ejd
ddG dd deZdS )    )annotations)TYPE_CHECKINGClassVarOptionalN   )errorssettings)Metadata)platform   )DialectTF)kw_onlyreprc                   @  s   e Zd ZU dZdZded< 	 ded< 	 dZded< 	 dZded< 	 edddZ	dd Z
dZejZddgdejddejdddiddiddZedddZdS )ControlzControl representation.

    This class is the base class for all the control classes that are
    used to set the states of various different components.

    NOptional[str]namezClassVar[str]typetitledescriptiondialectr   c                 C  s6   | | js||   || j}t|| sJ |S N)has_controlr   add_controlget_control
isinstance)clsr   control r   U/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/dialect/control.pyfrom_dialect1   s
   zControl.from_dialectc                 C  s   t jj| gdS )N)controls)r
   frictionlessr   )selfr   r   r   
to_dialect9   s   zControl.to_dialectr   objectstring)r   pattern)r   r   r   r   )r   required
propertiesc                 C  s   t jj|S r   )r
   r!   systemselect_control_class)r   r   r   r   r   metadata_select_classK   s   zControl.metadata_select_class)r   r   )r   r   )__name__
__module____qualname____doc__r   __annotations__r   r   classmethodr   r#   metadata_typer   ControlErrormetadata_Errorr   NAME_PATTERNTYPE_PATTERNmetadata_profiler+   r   r   r   r   r      s2   
 

r   )
__future__r   typingr   r   r   attrs r   r   metadatar	   r
   r   r   definer   r   r   r   r   <module>   s    