o
    SDi                     @   sH   d dl mZ d dlmZmZ ddlmZ ddlmZ G dd deZ	dS )	    )Any)MetaData
SchemaItem   )CustomTableBase)CustomTablePrefixc                
       s|   e Zd ZU dZejgZdZee	d< dZ
dededededd	f
 fd
dZdededededd	f
ddZdefddZ  ZS )HybridTablea]  
    A class representing a hybrid table with configurable options and settings.

    The `HybridTable` class allows for the creation and querying of OLTP Snowflake Tables .

    While it does not support reflection at this time, it provides a flexible
    interface for creating hybrid tables and management.

    For further information on this clause, please refer to: https://docs.snowflake.com/en/sql-reference/sql/create-hybrid-table

    Example usage:
    HybridTable(
        table_name,
        metadata,
        Column("id", Integer, primary_key=True),
        Column("name", String)
    )
    T_enforce_primary_keysnamemetadataargskwreturnNc                    s0   | ddrd S t j||g|R i | d S )N_no_initT)getsuper__init__selfr
   r   r   r   	__class__ l/var/www/Datamplify/venv/lib/python3.10/site-packages/snowflake/sqlalchemy/sql/custom_schema/hybrid_table.pyr   %   s    zHybridTable.__init__c                 O   s"   | j ||g|R ddi| d S )Nr   F)r   r   r   r   r   _init0   s   "zHybridTable._initc                    sD   dd t jgt jg dd  jD   fdddD   S )NzHybridTable(%s)z, c                 S   s   g | ]}t |qS r   )repr).0xr   r   r   
<listcomp>=   s    z(HybridTable.__repr__.<locals>.<listcomp>c                    s$   g | ]}| d t t | qS )=)r   getattr)r   kr   r   r   r   >   s   $ )schema)joinr   r
   r   columnsr!   r   r!   r   __repr__9   s   

zHybridTable.__repr__)__name__
__module____qualname____doc__r   HYBRID__table_prefixes__r	   bool__annotations___support_structured_typesstrr   r   r   r   r   r%   __classcell__r   r   r   r   r      s8   
 
	r   N)
typingr   sqlalchemy.sql.schemar   r   custom_table_baser   custom_table_prefixr   r   r   r   r   r   <module>   s
   