o
    QDi                     @  s   d dl mZ d dl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 er2dd	lmZ ejd
ddG dd deZdS )    )annotations)TYPE_CHECKINGClassVarOptionalUnionN   )errorssettings)MetadataPackage   )CatalogTF)kw_onlyreprc                	   @  s&  e Zd ZU dZded< 	 ded< 	 dZded< 	 dZded	< 	 ejd
dZ	ded< 	 ejdddZ
ded< 	 dZded< 	 ed,ddZejd-ddZed.ddZejd/ddZddd0d d!Zd"d# Zd$ZejZd%dd
gd&ejd'd&ejd'dd&idd&idd%d&gid(d)Zed1d*d+ZdS )2DatasetzDataset representation.strnamezClassVar[str]typeNOptional[str]titledescriptionpackage)aliasUnion[Package, str]_packagebasepath)defaultr   	_basepathzOptional[Catalog]catalogreturnr   c                 C  s&   t | jtrtj| j| jd| _| jS )N)r   )
isinstancer   r   r   from_descriptorr   self r%   U/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/catalog/dataset.pyr   :   s   zDataset.packagevaluec                 C  
   || _ d S N)r   r$   r'   r%   r%   r&   r   @      
c                 C  s   | j r| j S | jr| jjS d S r)   )r   r   r   r#   r%   r%   r&   r   D   s
   zDataset.basepathc                 C  r(   r)   )r   r*   r%   r%   r&   r   K   r+   Fstatsr-   boolc                C  s   | j j|d dS )zyInfer dataset's metadata

        Parameters:
            stats? (bool): stream files completely and infer stats
        r,   N)r   infer)r$   r-   r%   r%   r&   r/   Q   s   zDataset.inferc                 C  s   d| j _d| j _dS )zDereference underlaying metadata

        If some of underlaying metadata is provided as a string
        it will replace it by the metadata object
        N)r   metadata_descriptor_pathmetadata_descriptor_initialr#   r%   r%   r&   dereference[   s   zDataset.dereferencedatasetobjectstring)r   pattern)r   r   r   r   r   )r   required
propertiesc                 C  s   |dkrt S d S )Nr   r   )clsr   r%   r%   r&   metadata_select_property_classt   s   z&Dataset.metadata_select_property_class)r    r   )r'   r   )r    r   )r'   r   )r-   r.   )r   r   )__name__
__module____qualname____doc____annotations__r   r   attrsfieldr   r   r   propertyr   setterr   r/   r2   metadata_typer   DatasetErrormetadata_Errorr	   NAME_PATTERNTYPE_PATTERNmetadata_profileclassmethodr:   r%   r%   r%   r&   r      sN   
 



r   )
__future__r   typingr   r   r   r   r@    r   r	   metadatar
   r   r   r   r   definer   r%   r%   r%   r&   <module>   s    