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 dd
lmZ ddlmZ erHddlmZ ddlmZ G dd de
ZdS )    )annotations)TYPE_CHECKINGAnyOptional)urlparse   )platform)Plugin   )settings)
SqlAdapter
SqlControl)	SqlParser)Control)Resourcec                   @  sD   e Zd ZdZdddddddZdddZdddZddddZdS )	SqlPluginzPlugin for SQLNF)controlbasepath	packagifysourcer   r   Optional[Control]r   Optional[str]r   boolc                C  sV   |r%t |tr't|}tjD ]}|j|r$tj	|}t
||d  S qd S d S d S )N)r   )
isinstancestrr   r   SCHEME_PREFIXESscheme
startswithr   
sqlalchemycreate_enginer   )selfr   r   r   r   parsedprefixengine r%   X/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/formats/sql/plugin.pycreate_adapter   s   

zSqlPlugin.create_adapterresourcer   c                 C  s   |j dkr	t|S d S Nsql)formatr   )r!   r(   r%   r%   r&   create_parser'   s   
zSqlPlugin.create_parserc                 C  s8   |j rtjD ]}|j |rd|_d|_ d S qd S d S )Nr*   table)r   r   r   r   r+   datatype)r!   r(   r#   r%   r%   r&   detect_resource+   s   
zSqlPlugin.detect_resourcetypec                 C  s   |dkrt S d S r)   r   )r!   r0   r%   r%   r&   select_control_class3   s   zSqlPlugin.select_control_class)r   r   r   r   r   r   r   r   )r(   r   )N)r0   r   )__name__
__module____qualname____doc__r'   r,   r/   r1   r%   r%   r%   r&   r      s    

r   N)
__future__r   typingr   r   r   urllib.parser   r   systemr	    r   adapterr   r   r   parserr   dialectr   r(   r   r   r%   r%   r%   r&   <module>   s    