o
    QDi                     @  s   d dl mZ d dl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rBdd
lmZ ddlmZ ddlmZ G dd de	ZdS )    )annotations)TYPE_CHECKINGAnyOptional   )helpers)Plugin   )LocalAdapterLocalControl)LocalLoader)Control)Resource)Loaderc                   @  s:   e Zd ZdZdddddddZdddZddddZdS )LocalPluginzPlugin for Local DataNF)controlbasepath	packagifysourcer   r   Optional[Control]r   Optional[str]r   boolc                C  sL   |d ur"|}t |trtj||d}t|st|r$t||dS d S d S )N)r   )
isinstancestrr   join_basepathis_directory_sourceis_expandable_sourcer
   )selfr   r   r   r   path r    Z/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/schemes/local/plugin.pycreate_adapter   s   
zLocalPlugin.create_adapterresourcer   returnOptional[Loader]c                 C  s*   |j dkrt|jpdst|S d S d S )Nfile )schemer   is_remote_pathr   r   )r   r#   r    r    r!   create_loader%   s
   
zLocalPlugin.create_loadertypec                 C  s   |dkrt S d S )Nlocalr   )r   r+   r    r    r!   select_control_class*   s   z LocalPlugin.select_control_class)r   r   r   r   r   r   r   r   )r#   r   r$   r%   )N)r+   r   )__name__
__module____qualname____doc__r"   r*   r-   r    r    r    r!   r      s    
r   N)
__future__r   typingr   r   r   r'   r   systemr   adapterr
   r   r   loaderr   dialectr   r#   r   r   r   r    r    r    r!   <module>   s    