o
    9âf  ã                   @   s\   d dl Zd dlmZ ddlmZmZ ddlmZ dZ	G dd	„ d	eƒZ
G d
d„ deƒZeZdS )é    N)Úasboolé   )ÚClickHouseDialectÚClickHouseExecutionContextBaseé   ©Ú	connector)r   r   r   Nc                   @   s   e Zd Zdd„ ZdS )ÚClickHouseExecutionContextc                 C   s   d S ©N© )Úselfr   r   ú`/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_sqlalchemy/drivers/http/base.pyÚpre_exec   s   z#ClickHouseExecutionContext.pre_execN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r	      s    r	   c                   @   s6   e Zd ZdZeZdZedd„ ƒZdd„ Z	ddd	„Z
d
S )ÚClickHouseDialect_httpÚhttpTc                 C   s   t S r
   r   )Úclsr   r   r   Úimport_dbapi   s   z#ClickHouseDialect_http.import_dbapic                 C   s˜   i }|j  dd¡}|jpd}|jpd}|j  dd¡}t|j  dd¡ƒ| _| |j ¡ | d	¡r9|d	 d
v r9d|d	< d||j||f }|||j|j	f|fS )NÚprotocolr   i»  ÚdefaultÚendpointÚ Úengine_reflectionÚtrueÚverify)ÚFalseÚfalseFz%s://%s:%d/%s)
ÚqueryÚgetÚportÚdatabaser   r   ÚupdateÚhostÚusernameÚpassword)r   ÚurlÚkwargsr   r!   Údb_namer   Údb_urlr   r   r   Úcreate_connect_args   s   

ÿz*ClickHouseDialect_http.create_connect_argsFc                 K   s2   t |tƒrtjj |¡}|r|jn|j}|||ƒS r
   )Ú
isinstanceÚstrÚsaÚsqlÚelementsÚ
TextClauseÚscalarÚexecute)r   Ú
connectionr/   r2   r(   Úfr   r   r   Ú_execute.   s   

zClickHouseDialect_http._executeN)F)r   r   r   Údriverr	   Úexecution_ctx_clsÚsupports_statement_cacheÚclassmethodr   r+   r6   r   r   r   r   r      s    
r   )Ú
sqlalchemyr.   Úsqlalchemy.utilr   Úbaser   r   r   r   ÚVERSIONr	   r   Údialectr   r   r   r   Ú<module>   s    &