Ë
    ÚÍ:j·  ã                  ó8  — 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 erd dlmZ d dlmZ 	 d d	lZ ej.                  «       Z eej3                  d«      «      Z G d„ de	ej6                     «      Zdd„ZdgZy	# e$ rZd
Z ee«      e‚d	Z[ww xY w)é    )Úannotations)ÚTYPE_CHECKINGÚLiteral)ÚDeferredTimeZoneÚnarwhals_to_native_dtype)Ú	LazyFrame)Ú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                  ó>   ‡ — 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.c                ó(   •— t         ‰| �  ||¬«       y )N©Úlevel)ÚsuperÚ__init__)ÚselfÚdfr   Ú	__class__s      €úa/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/narwhals/sql.pyr   zSQLTable.__init__    s   ø€ ô 	‰Ñ˜ 5ÐÕ)ó    F)Úprettyc               ó¶   — | j                  «       j                  «       }|s|S 	 ddl}|j                  |dd¬«      S # t        $ r}d}t	        |«      |‚d}~ww xY w)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%   sl   € ð  —N‘NÓ$×.Ñ.Ó0ˆ	ÙØÐð	5Ûð �‰˜y°4ÀgˆÓNÐNøô ò 	5ð;ð ô
 & cÓ*°Ð4ûð	5ús   ¤< ¼	AÁAÁA)r   r   r   z&Literal['full', 'interchange', 'lazy']ÚreturnÚNone)r   Úboolr'   Ústr)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r&   Ú__classcell__)r   s   @r   r   r      s4   ø„ Ù9ð*Ø'ð*Ø0Vð*à	õ*ð
 (-÷ Oñ Or   r   c           
     ó�  — |j                  «       D ��ci c]%  \  }}|t        |t        j                  t        «      “Œ' }}}dj                  d„ |j                  «       D «       «      }t        j                  d| › d|› d�«       t        t        j                  | «      «      }t        |j                  |j                  ¬«      S c c}}w )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           |
        â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
    z, c              3  ó2   K  — | ]  \  }}d |› d|› �–— Œ y­w)ú"z" N© )Ú.0ÚcolÚdtypes      r   ú	<genexpr>ztable.<locals>.<genexpr>`   s!   è ø€ ÒS©j¨c°5˜˜3˜%˜r % Ô)ÑSùs   ‚z
        CREATE TABLE "z"
        (z);
        r   )Úitemsr   r
   ÚMAINÚTZÚjoinÚCONNÚsqlr	   Útabler   Ú_compliant_frameÚ_level)ÚnameÚschemar5   r6   Úcolumn_mappingÚdtypesÚlfs          r   r>   r>   D   s¸   € ð4 !Ÿ,™,›.÷áˆC�ð 	Ô% e¬W¯\©\¼2Ó>Ñ>ð€Nñ ð �Y‰YÑS¸N×<PÑ<PÓ<RÔSÓS€FÜ‡H�Hð Ø�fð 
Ø
ˆð 	ðô ô 
”T—Z‘Z Ó%Ó	&€BÜ�B×'Ñ'¨r¯y©yÔ9Ð9ùós   ”*Cr>   )rA   r*   rB   r   r'   r   )Ú
__future__r   Útypingr   r   Únarwhals._duckdb.utilsr   r   Únarwhals.dataframer   Únarwhals.translater	   Únarwhals.utilsr
   Únarwhals._compliant.typingr   Únarwhals.typingr   Úduckdbr!   r$   r%   r"   Úconnectr<   r=   r:   ÚDuckDBPyRelationr   r>   Ú__all__r3   r   r   ú<module>rR      s¤   ðÝ "ç )ç MÝ (Ý *Ý "áÝ@Ý*ð-Ûð €v‡~�~Ó€ÙØ‡H�HÐJÓKó€ô
$Oˆy˜×0Ñ0Ñ1ô $OóN":ðJ ˆ)�øðs ò -ð	3ð ñ ˜cÓ
"¨Ð,ûð-ús   ¸B ÂBÂ	BÂB