o
    9âf5  ã                   @   sX   d dl mZ d dlmZmZmZ G dd„ deƒZG dd„ deeƒZG dd„ deeƒZd	S )
é    )ÚClauseElement)ÚColumnCollectionMixinÚ
SchemaItemÚ
Constraintc                   @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zedd	„ ƒZd
d„ Z	e
dd„ ƒZdS )ÚEngineÚenginec                 O   s   d S ©N© )ÚselfÚargsÚkwargsr	   r	   ú[/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_sqlalchemy/engines/base.pyÚ__init__   ó   zEngine.__init__c                 C   s   g S r   r	   ©r
   r	   r	   r   Úget_parameters   r   zEngine.get_parametersc                 G   s>   g }|D ]}t |ttfƒr| |¡ q|d ur| |¡ q|S r   )Ú
isinstanceÚtupleÚlistÚextendÚappend)r
   ÚparamsÚrvÚparamr	   r	   r   Úextend_parameters   s   
€zEngine.extend_parametersc                 C   s   | j jS r   )Ú	__class__Ú__name__r   r	   r	   r   Úname   s   zEngine.namec                 K   s   || _ | |_d S r   )Úparentr   )r
   r   r   r	   r	   r   Ú_set_parent   s   
zEngine._set_parentc                 K   s   t ‚r   )ÚNotImplementedError)ÚclsÚtableÚengine_fullr   r	   r	   r   Úreflect   s   zEngine.reflectN)r   Ú
__module__Ú__qualname__Ú__visit_name__r   r   r   Úpropertyr   r   Úclassmethodr$   r	   r	   r	   r   r      s    	
r   c                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )ÚTableColc                    s   t t| ƒj|gi |¤Ž d S r   )Úsuperr*   r   )r
   Úcolumnr   ©r   r	   r   r   %   s   zTableCol.__init__c                 C   s   t | jƒd S )Nr   )r   Úcolumnsr   r	   r	   r   Ú
get_column(   s   zTableCol.get_column)r   r%   r&   r   r/   Ú__classcell__r	   r	   r-   r   r*   $   s    r*   c                       s,   e Zd Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )ÚKeysExpressionOrColumnc                    s&   g | _ tt| ƒj|d| j i|¤Ž d S )NÚ_gather_expressions)Úexpressionsr+   r1   r   )r
   r3   r   r-   r	   r   r   -   s   
ÿÿ
ÿzKeysExpressionOrColumn.__init__c                 K   sP   t  | |¡ || _| j}|  |¡}t|ƒt|ƒksJ ‚dd„ t||ƒD ƒ| _d S )Nc                 S   s"   g | ]\}}t |tƒr|n|‘qS r	   )r   r   )Ú.0ÚexprÚcolexprr	   r	   r   Ú
<listcomp><   s    ÿÿz6KeysExpressionOrColumn._set_parent.<locals>.<listcomp>)r   r   r"   r3   Ú_col_expressionsÚlenÚzip)r
   r"   Úkwr3   Úcol_expressionsr	   r	   r   r   4   s   
þz"KeysExpressionOrColumn._set_parentc                 C   s   | j S r   )r3   r   r	   r	   r   Úget_expressions_or_columnsA   s   z1KeysExpressionOrColumn.get_expressions_or_columns)r   r%   r&   r   r   r=   r0   r	   r	   r-   r   r1   ,   s    r1   N)	Úsqlalchemy.sqlr   Úsqlalchemy.sql.schemar   r   r   r   r*   r1   r	   r	   r	   r   Ú<module>   s
    