§
    cŠtjâ  ã                  óZ  — d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ erd dlmZ d d	lmZ 	 d d
lZn# e$ rZdZ ee¦  «        e‚d
Z[ww xY w ej        ¦   «         Z ee                     d¦  «        ¦  «        Z G d„ de	ej                 ¦  «        Zdd„ZdgZ d
S )é    )Úannotations)ÚTYPE_CHECKINGÚLiteral)ÚDeferredTimeZoneÚnarwhals_to_native_dtype)Ú	LazyFrame)ÚSchema)Úfrom_native)ÚVersion)ÚCompliantLazyFrameAny)Ú
IntoSchemaNzY`narwhals.sql` requires DuckDB to be installed.

Hint: run `pip install -U narwhals[sql]`z;select value from duckdb_settings() where name = 'TimeZone'c                  ó2   ‡ — e Zd ZdZdˆ fd„Zd	d
œdd„Zˆ xZS )ÚSQLTablez/A LazyFrame with an additional `to_sql` method.Údfr   Úlevelú&Literal['full', 'interchange', 'lazy']ÚreturnÚNonec                óN   •— t          ¦   «                              ||¬¦  «         d S )N©r   )ÚsuperÚ__init__)Úselfr   r   Ú	__class__s      €úJ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/narwhals/sql.pyr   zSQLTable.__init__!   s(   ø€ õ 	‰Œ×Ò˜ 5ÐÑ)Ô)Ð)Ð)Ð)ó    F)Úprettyr   ÚboolÚstrc               óÚ   — |                       ¦   «                              ¦   «         }|s|S 	 ddl}n$# t          $ r}d}t	          |¦  «        |‚d}~ww xY w|                     |dd¬¦  «        S )a4  Convert to SQL query.

        Arguments:
            pretty: Whether to pretty-print SQL query. If `True`, requires `sqlparse`
                to be installed.

        Examples:
            >>> import narwhals as nw
            >>> from narwhals.sql import table
            >>> schema = {"date": nw.Date, "price": nw.Int64, "symbol": nw.String}
            >>> assets = table("assets", schema)
            >>> result = assets.filter(nw.col("price") > 100)
            >>> print(result.to_sql())
            SELECT * FROM main.assets WHERE (price > 100)
        r   Nzr`SQLTable.to_sql` with `pretty=True`requires `sqlparse` to be installed.

Hint: run `pip install -U narwhals[sql]`TÚupper)ÚreindentÚkeyword_case)Ú	to_nativeÚ	sql_queryÚsqlparseÚImportErrorÚModuleNotFoundErrorÚformat)r   r   r%   r&   Ú_excÚmsgs         r   Úto_sqlzSQLTable.to_sql&   s’   € ð  —N’NÑ$Ô$×.Ò.Ñ0Ô0ˆ	Øð 	ØÐð	5ØˆOˆOˆOˆOøÝð 	5ð 	5ð 	5ð;ð õ
 & cÑ*Ô*°Ð4øøøøð	5øøøð �Š˜y°4ÀgˆÑNÔNÐNs   ¬1 ±
A»AÁA)r   r   r   r   r   r   )r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r,   Ú__classcell__)r   s   @r   r   r      sp   ø€ € € € € Ø9Ð9ð*ð *ð *ð *ð *ð *ð
 (-ð Oð Oð Oð Oð Oð Oð Oð Oð Oð Or   r   Únamer   Úschemar   r   c                ó€  — d„ t          |¦  «                             ¦   «         D ¦   «         }d                     d„ |                     ¦   «         D ¦   «         ¦  «        }t                               d| › d|› d�¦  «         t          t                               | ¦  «        ¦  «        }t          |j        |j	        ¬¦  «        S )uí  Generate standalone LazyFrame which you can use to generate SQL.

    Note that this requires DuckDB to be installed.

    Parameters:
        name: Table name.
        schema: Table schema.

    Examples:
        >>> import narwhals as nw
        >>> from narwhals.sql import table
        >>> schema = {"date": nw.Date, "price": nw.List(nw.Int64), "symbol": nw.String}
        >>> table("t", schema)
        â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”�
        |     Narwhals LazyFrame     |
        |----------------------------|
        |â”Œâ”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”�|
        |â”‚ date â”‚  price  â”‚ symbol  â”‚|
        |â”‚ date â”‚ int64[] â”‚ varchar â”‚|
        |â””â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜|
        |           0 rows           |
        â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
    c                óV   — i | ]&\  }}|t          |t          j        t          ¦  «        “Œ'S © )r   r   ÚMAINÚTZ©Ú.0ÚcolÚdtypes      r   ú
<dictcomp>ztable.<locals>.<dictcomp>]   s=   € ð ð ð áˆC�ð 	Õ% e­W¬\½2Ñ>Ô>ðð ð r   z, c              3  ó,   K  — | ]\  }}d |› d|› �V — ŒdS )ú"z" Nr6   r9   s      r   ú	<genexpr>ztable.<locals>.<genexpr>a   s7   è è € ÐSÐS©j¨c°5Ð)˜3Ð)Ð) %Ð)Ð)ÐSÐSÐSÐSÐSÐSr   z
        CREATE TABLE "z"
        (z);
        r   )
r	   ÚitemsÚjoinÚCONNÚsqlr
   Útabler   Ú_compliant_frameÚ_level)r2   r3   Úcolumn_mappingÚdtypesÚlfs        r   rE   rE   E   sÍ   € ð0ð å  ™.œ.×.Ò.Ñ0Ô0ðñ ô €Nð �YŠYÐSÐS¸N×<PÒ<PÑ<RÔ<RÐSÑSÔSÑSÔS€FÝ‡H‚Hð Øðð à
ðð ð ñ ô ð õ 
•T—Z’Z Ñ%Ô%Ñ	&Ô	&€BÝ�BÔ'¨r¬yÐ9Ñ9Ô9Ð9r   rE   )r2   r   r3   r   r   r   )!Ú
__future__r   Útypingr   r   Únarwhals._duckdb.utilsr   r   Únarwhals.dataframer   Únarwhals.schemar	   Únarwhals.translater
   Únarwhals.utilsr   Únarwhals._compliant.typingr   Únarwhals.typingr   Úduckdbr'   r*   r+   r(   ÚconnectrC   rD   r8   ÚDuckDBPyRelationr   rE   Ú__all__r6   r   r   ú<module>rX      s™  ðØ "Ð "Ð "Ð "Ð "Ð "à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ (Ð (Ð (Ð (Ð (Ð (Ø "Ð "Ð "Ð "Ð "Ð "Ø *Ð *Ð *Ð *Ð *Ð *Ø "Ð "Ð "Ð "Ð "Ð "àð +Ø@Ð@Ð@Ð@Ð@Ð@Ø*Ð*Ð*Ð*Ð*Ð*ð-Ø€M€M€M€MøØð -ð -ð -ð	3ð ð Ð
˜cÑ
"Ô
"¨Ð,øøøøð-øøøð €v„~ÑÔ€ØÐØ‡H‚HÐJÑKÔKñô €ð
$Oð $Oð $Oð $Oð $Oˆy˜Ô0Ô1ñ $Oô $Oð $OðN":ð ":ð ":ð ":ðJ ˆ)€€€s   ¾A ÁAÁAÁA