o
    QDi                     @   sz   d dl mZ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 edZG d	d
 d
eee ZdS )    )AnyGenericOptionalTypeVarcast   )helpers)Detector)Control)platform)systemTc                   @   sH   e Zd Z	ddddddee dedee dee ded	efd
dZdS )FactoryNFcontrolbasepath	packagifysourceparamsr   r   r   optionsc                O   s  |rJ t |}tj}|d ur6tj||||d}|r6| }	|	r6|	 }
|jd|
|	j	d|}t
t|S |d urw|}t|trHt j||d}|d}|sYtj||dd}|dkrw||t|trfdnd	< | d||d
|}t
t|S |d ur|dd  | j|f||d
|}t
t|S |d ur|dd }|d u r| }n
||jvr|| ||d< | dd|i|}t
t|S | tjju rtdtjjfi }|dd|i|}tj|jd}|dd|i|}t
t|S t
ttj| fd|i|S )Nr   )datar   )r   datatypeformat)r   resourcepathr   )r   r   dialectr   Router)r    )r   normalize_sourcer   frictionless_resourcesr   create_adapterread_packageto_descriptorPackageResourcer   r   r   
isinstancestrjoin_basepathgetr	   detect_metadata_typepopfrom_descriptor
to_dialectcontrolsadd_controlfrictionlessResourcetypeselect_resource_classr   __call__)clsr   r   r   r   r   r   	resourcesadapterpackager   r   r   md_typer   r   Classr   r   V/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/resource/factory.pyr2      sv   	











zFactory.__call__)N)	__name__
__module____qualname__r   r   r
   r%   boolr2   r   r   r   r9   r      s&    r   N)typingr   r   r   r   r    r   detectorr	   r   r
   r   r   r   r0   r   r   r   r   r9   <module>   s    