o
    9f                     @   s2   d dl mZ d dlmZmZ G dd dejZdS )    )
reflection)Tableenginesc                       s.   e Zd Z fddZdd ZdddZ  ZS )	ClickHouseInspectorc                    s   t |ts|j| tj||dd}n|}tt| j|g|R i | | 	 }|
|}| |j|| W d    d S 1 sDw   Y  d S )N
_extend_on)r   )
isinstancer   metadataremove_make_from_standardgetsuperr   reflect_table_operation_contextschema_for_object_reflect_enginename)selftableargskwargsch_tableconnschema	__class__ a/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_sqlalchemy/drivers/reflection.pyr      s"   




"z!ClickHouseInspector.reflect_tablec           	      C   s   | j jo| j j}|sd S dd tjD }| j||jd}|s$td| ||d }|d ur?|j	|fi |}|
| d S d |_d S )Nc                 S   s   i | ]}|j |qS r   )__name__).0er   r   r   
<dictcomp>#   s    z7ClickHouseInspector._reflect_engine.<locals>.<dictcomp>)r   z!Cannot find engine for table '%s'engine)dialectsupports_engine_reflectionengine_reflectionr   __all__
get_enginer   
ValueErrorr   reflect_set_parentr!   )	r   
table_namer   r   should_reflectengine_cls_by_namer   
engine_clsr!   r   r   r   r      s   
z#ClickHouseInspector._reflect_engineNc                 K   sJ   |   }| jj||f|| jd|W  d    S 1 sw   Y  d S )N)r   
info_cache)r   r"   r&   r.   )r   r*   r   kwr   r   r   r   r&   0   s   
$zClickHouseInspector.get_engine)N)r   
__module____qualname__r   r   r&   __classcell__r   r   r   r   r      s    r   N)sqlalchemy.enginer   clickhouse_sqlalchemyr   r   	Inspectorr   r   r   r   r   <module>   s    