o
    QDiz                     @  sx   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r2dd
lmZ G dd deZdS )    )annotations)TYPE_CHECKING   )FrictionlessException)platform)Parser   )
SqlAdapter)
SqlControl)TableResourcec                   @  s*   e Zd ZdZg dZdd Zd
ddZd	S )	SqlParserzSQL parser implementation.)booleandatedatetimeintegernumberstringtimec                 C  s|   | j jsJ t| j j}|jstdtj	| j j}t
||d}|s-td| j j | j js9||j| j _||S )Nz.Please provide "dialect.sql.table" for readingcontrolNot supported source: )resourcenormpathr
   from_dialectdialecttabler   r   
sqlalchemycreate_enginer	   schemaread_schemaread_cell_stream)selfr   engineadapter r$   X/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/formats/sql/parser.pyread_cell_stream_create   s   
z!SqlParser.read_cell_stream_createsourcer   c                 C  s   | j jsJ t| j j}|jstdtj	| j j}t
||d}|s-td| j j | |j|j|jd |j|j|jd W d    d S 1 sMw   Y  d S )Nz.Please provide "dialect.sql.table" for writingr   r   )
table_name)r   r   r
   r   r   r   r   r   r   r   r	   write_schemar   write_row_stream
row_stream)r!   r'   r   r"   r#   r$   r$   r%   r*   -   s   "zSqlParser.write_row_streamN)r'   r   )__name__
__module____qualname____doc__supported_typesr&   r*   r$   r$   r$   r%   r      s
    r   N)
__future__r   typingr   	exceptionr   r   systemr   r#   r	   r   r
   	resourcesr   r   r$   r$   r$   r%   <module>   s    