Ë
    z�h*<  ã                  óú  — d dl mZ d dlZd dlmZ d dlmZ erŠd dlZd dlmZ	 d dl
Z
d dlZd dlmZ d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lm Z  d d
l!m"Z" d dl#m$Z$ d dl#m%Z% d dl#m&Z& d dl#m'Z' d dl#m(Z( d dl#m)Z) d dl#m*Z* d dl#m+Z+ d dl#m,Z,  e-dg«      Z.dHd„Z/dHd„Z0dHd„Z1dHd„Z2dHd„Z3dHd„Z4dHd„Z5dHd„Z6dHd„Z7dHd„Z8dHd„Z9dHd „Z:dHd!„Z;dHd"„Z<dHd#„Z=dHd$„Z>dId%„Z?dJd&„Z@dKd'„ZAdLd(„ZBdMd)„ZCdNd*„ZDdOd+„ZEdPd,„ZFdQd-„ZGdRd.„ZHdSd/„ZIdTd0„ZJdUd1„ZKdVd2„ZLdWd3„ZMdXd4„ZNdYd5„ZOdZd6„ZPd[d7„ZQd\d8„ZRd]d9„ZSd^d:„ZTd_d;„ZUd`d<„ZVdad=„ZWdbd>„ZXdcd?„ZYddd@„ZZdedA„Z[dfdB„Z\	 	 	 	 dgdC„Z]dhdD„Z^didE„Z_didF„Z`g dG¢Zay)jé    )ÚannotationsN)ÚTYPE_CHECKING)ÚAny©Ú	DataFrame)Ú	TypeGuard)ÚTypeIs)ÚSQLFrameDataFrame©Ú	LazyFrame©ÚSeries)ÚFrameT)ÚIntoDataFrameT)ÚIntoSeriesT)Ú_1DArray)Ú_1DArrayInt)Ú_2DArray)Ú_NDArray)Ú_NumpyScalar)Ú_ShapeTÚ	fireducksc                 óB   — t         j                  j                  dd«      S )z;Get Polars module (if already imported - else return None).ÚpolarsN©ÚsysÚmodulesÚget© ó    úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/narwhals/dependencies.pyÚ
get_polarsr"   -   ó   € ä�;‰;�?‰?˜8 TÓ*Ð*r    c                 óB   — t         j                  j                  dd«      S )z;Get pandas module (if already imported - else return None).ÚpandasNr   r   r    r!   Ú
get_pandasr&   2   r#   r    c                 ó`   — t         j                  j                  dd«      x} �| j                  S y)zAGet modin.pandas module (if already imported - else return None).ÚmodinN)r   r   r   r%   )r(   s    r!   Ú	get_modinr)   7   s)   € ä—‘—‘ ¨$Ó/Ð/ˆÐ<Ø�|‰|ÐØr    c                 óB   — t         j                  j                  dd«      S )z9Get cudf module (if already imported - else return None).ÚcudfNr   r   r    r!   Úget_cudfr,   >   ó   € ä�;‰;�?‰?˜6 4Ó(Ð(r    c                 óB   — t         j                  j                  dd«      S )z9Get cupy module (if already imported - else return None).ÚcupyNr   r   r    r!   Úget_cupyr0   C   r-   r    c                 óB   — t         j                  j                  dd«      S )z<Get pyarrow module (if already imported - else return None).ÚpyarrowNr   r   r    r!   Úget_pyarrowr3   H   ó   € ä�;‰;�?‰?˜9 dÓ+Ð+r    c                 óB   — t         j                  j                  dd«      S )z:Get numpy module (if already imported - else return None).ÚnumpyNr   r   r    r!   Ú	get_numpyr7   M   s   € ä�;‰;�?‰?˜7 DÓ)Ð)r    c                 óB   — t         j                  j                  dd«      S )z2Get dask (if already imported - else return None).ÚdaskNr   r   r    r!   Úget_daskr:   R   r-   r    c                 óB   — t         j                  j                  dd«      S )zCGet dask.dataframe module (if already imported - else return None).zdask.dataframeNr   r   r    r!   Úget_dask_dataframer<   W   s   € ä�;‰;�?‰?Ð+¨TÓ2Ð2r    c                 óB   — t         j                  j                  dd«      S )z;Get duckdb module (if already imported - else return None).ÚduckdbNr   r   r    r!   Ú
get_duckdbr?   \   r#   r    c                 óB   — t         j                  j                  dd«      S )z9Get ibis module (if already imported - else return None).ÚibisNr   r   r    r!   Úget_ibisrB   a   r-   r    c                 óB   — t         j                  j                  dd«      S )z>Get dask_expr module (if already imported - else return None).Ú	dask_exprNr   r   r    r!   Úget_dask_exprrE   f   s   € ä�;‰;�?‰?˜;¨Ó-Ð-r    c                 óB   — t         j                  j                  dd«      S )z<Get pyspark module (if already imported - else return None).ÚpysparkNr   r   r    r!   Úget_pysparkrH   k   r4   r    c                 óB   — t         j                  j                  dd«      S )z@Get pyspark.sql module (if already imported - else return None).zpyspark.sqlNr   r   r    r!   Úget_pyspark_sqlrJ   p   s   € ä�;‰;�?‰?˜=¨$Ó/Ð/r    c                 óB   — t         j                  j                  dd«      S )zHGet pyspark.sql.connect module (if already imported - else return None).zpyspark.sql.connectNr   r   r    r!   Úget_pyspark_connectrL   u   s   € ä�;‰;�?‰?Ð0°$Ó7Ð7r    c                 óB   — t         j                  j                  dd«      S )z=Get sqlframe module (if already imported - else return None).ÚsqlframeNr   r   r    r!   Úget_sqlframerO   z   s   € ä�;‰;�?‰?˜: tÓ,Ð,r    c                óˆ   ‡ ‡— t        «       x}duxr t        ‰ |j                  «      xs t        ˆ ˆfd„t        D «       «      S )zBCheck whether `df` is a pandas DataFrame without importing pandas.Nc              3  óª   •K  — | ]J  }t         j                  j                  |d «      xŠd uxr  t        ‰‰j                  j
                  «      –— ŒL y ­w©N)r   r   r   Ú
isinstancer%   r   )Ú.0Úmodule_nameÚdfÚmods     €€r!   ú	<genexpr>z&is_pandas_dataframe.<locals>.<genexpr>�   sT   øè ø€ ò Vð ô —‘—‘ ¨TÓ2Ð	2ˆ¸4Ð?ò 	1Ü�r˜3Ÿ:™:×/Ñ/Ó0ó	1ñVùó   ƒAA)r&   rS   r   ÚanyÚIMPORT_HOOKS)rV   ÚpdrW   s   ` @r!   Úis_pandas_dataframer]      sF   ù€ ä“<ÐˆR¨Ð,ÒM´¸BÀÇÁÓ1Mò ÔRUô Vô (ôVó Sð r    c                óˆ   ‡ ‡— t        «       x}duxr t        ‰ |j                  «      xs t        ˆˆ fd„t        D «       «      S )z@Check whether `ser` is a pandas Series without importing pandas.Nc              3  óª   •K  — | ]J  }t         j                  j                  |d «      xŠd uxr  t        ‰‰j                  j
                  «      –— ŒL y ­wrR   )r   r   r   rS   r%   r   )rT   rU   rW   Úsers     €€r!   rX   z#is_pandas_series.<locals>.<genexpr>Š   sT   øè ø€ ò Tð ô —‘—‘ ¨TÓ2Ð	2ˆ¸4Ð?ò 	/Ü�s˜CŸJ™J×-Ñ-Ó.ó	/ñTùrY   )r&   rS   r   rZ   r[   )r`   r\   rW   s   ` @r!   Úis_pandas_seriesra   ˆ   sF   ù€ ä“<ÐˆR¨Ð,ÒK´¸CÀÇÁÓ1Kò ÔPSô Tô (ôTó Qð r    c                óˆ   ‡ ‡— t        «       x}duxr t        ‰ |j                  «      xs t        ˆ ˆfd„t        D «       «      S )zACheck whether `index` is a pandas Index without importing pandas.Nc              3  óª   •K  — | ]J  }t         j                  j                  |d «      xŠd uxr  t        ‰‰j                  j
                  «      –— ŒL y ­wrR   )r   r   r   rS   r%   ÚIndex)rT   rU   ÚindexrW   s     €€r!   rX   z"is_pandas_index.<locals>.<genexpr>“   sT   øè ø€ ò Uð ô —‘—‘ ¨TÓ2Ð	2ˆ¸4Ð?ò 	0Ü�u˜cŸj™j×.Ñ.Ó/ó	0ñUùrY   )r&   rS   rd   rZ   r[   )re   r\   rW   s   ` @r!   Úis_pandas_indexrf   ‘   sF   ù€ ä“<ÐˆR¨Ð,ÒL´¸EÀ2Ç8Á8Ó1Lò ÔQTô Uô (ôUó Rð r    c                óN   — t        «       x}duxr t        | |j                  «      S )z@Check whether `df` is a modin DataFrame without importing modin.N)r)   rS   r   )rV   Úmpds     r!   Úis_modin_dataframeri   š   s$   € ä“;ÐˆC tÐ+ÒM´
¸2¸s¿}¹}Ó0MÐMr    c                óN   — t        «       x}duxr t        | |j                  «      S )z>Check whether `ser` is a modin Series without importing modin.N)r)   rS   r   )r`   rh   s     r!   Úis_modin_seriesrk   Ÿ   s$   € ä“;ÐˆC tÐ+ÒK´
¸3ÀÇ
Á
Ó0KÐKr    c                óN   — t        «       x}duxr t        | |j                  «      S )z?Check whether `index` is a modin Index without importing modin.N)r)   rS   rd   )re   rh   s     r!   Úis_modin_indexrm   ¤   s+   € ä“;ÐˆC tÐ+ò ´
Øˆs�y‰yó1ð r    c                óN   — t        «       x}duxr t        | |j                  «      S )z>Check whether `df` is a cudf DataFrame without importing cudf.N)r,   rS   r   )rV   r+   s     r!   Úis_cudf_dataframero   «   s$   € ä“JÐˆD tÐ+ÒN´
¸2¸t¿~¹~Ó0NÐNr    c                óN   — t        «       x}duxr t        | |j                  «      S )z<Check whether `ser` is a cudf Series without importing cudf.N)r,   rS   r   )r`   r+   s     r!   Úis_cudf_seriesrq   °   s$   € ä“JÐˆD tÐ+ÒL´
¸3ÀÇÁÓ0LÐLr    c                óN   — t        «       x}duxr t        | |j                  «      S )z=Check whether `index` is a cudf Index without importing cudf.N)r,   rS   rd   )re   r+   s     r!   Úis_cudf_indexrs   µ   s+   € ä“JÐˆD tÐ+ò ´
Øˆt�z‰zó1ð r    c                óN   — t        «       x}duxr t        | |j                  «      S )z>Check whether `df` is a Dask DataFrame without importing Dask.N)r<   rS   r   )rV   Údds     r!   Úis_dask_dataframerv   ¼   s%   € ä$Ó&Ð&ˆB¨tÐ3ÒT¼
À2ÀrÇ|Á|Ó8TÐTr    c                óN   — t        «       x}duxr t        | |j                  «      S )zACheck whether `df` is a DuckDB Relation without importing DuckDB.N)r?   rS   ÚDuckDBPyRelation)rV   r>   s     r!   Úis_duckdb_relationry   Á   s-   € ä “lÐ"ˆF¨4Ð/ò ´JØ
ˆF×#Ñ#ó5ð r    c                óv   — t        «       x}duxr* t        | |j                  j                  j                  «      S )z:Check whether `df` is a Ibis Table without importing Ibis.N)rB   rS   ÚexprÚtypesÚTable)rV   rA   s     r!   Úis_ibis_tabler~   È   s.   € ä“JÐˆD tÐ+ÒU´
¸2¸t¿y¹y¿¹×?TÑ?TÓ0UÐUr    c                óN   — t        «       x}duxr t        | |j                  «      S )zBCheck whether `df` is a Polars DataFrame without importing Polars.N)r"   rS   r   ©rV   Úpls     r!   Úis_polars_dataframer‚   Í   ó$   € ä“,ÐˆB tÐ+ÒL´
¸2¸r¿|¹|Ó0LÐLr    c                óN   — t        «       x}duxr t        | |j                  «      S )zBCheck whether `df` is a Polars LazyFrame without importing Polars.N)r"   rS   r   r€   s     r!   Úis_polars_lazyframer…   Ò   rƒ   r    c                óN   — t        «       x}duxr t        | |j                  «      S )z@Check whether `ser` is a Polars Series without importing Polars.N)r"   rS   r   )r`   r�   s     r!   Úis_polars_seriesr‡   ×   s$   € ä“,ÐˆB tÐ+ÒJ´
¸3ÀÇ	Á	Ó0JÐJr    c                óN   — t        «       x}duxr t        | |j                  «      S )zHCheck whether `ser` is a PyArrow ChunkedArray without importing PyArrow.N)r3   rS   ÚChunkedArray)r`   Úpas     r!   Úis_pyarrow_chunked_arrayr‹   Ü   s$   € ä“-ÐˆB¨Ð,ÒQ´¸CÀÇÁÓ1QÐQr    c                óN   — t        «       x}duxr t        | |j                  «      S )z@Check whether `df` is a PyArrow Table without importing PyArrow.N)r3   rS   r}   )rV   rŠ   s     r!   Úis_pyarrow_tabler�   á   s$   € ä“-ÐˆB¨Ð,ÒI´¸BÀÇÁÓ1IÐIr    c                ó`   — t        t        «       x}duxr t        | |j                  «      «      S )zDCheck whether `df` is a PySpark DataFrame without importing PySpark.N)ÚboolrJ   rS   r   )rV   Úpyspark_sqls     r!   Úis_pyspark_dataframer‘   æ   s4   € äÜ'Ó)Ð	)ˆ°$Ð6ò 	2Ü�r˜;×0Ñ0Ó1óð r    c                ót   — t        t        «       x}duxr  t        | |j                  j                  «      «      S )zLCheck whether `df` is a PySpark Connect DataFrame without importing PySpark.N)r�   rL   rS   Ú	dataframer   )rV   Úpyspark_connects     r!   Úis_pyspark_connect_dataframer•   î   s;   € äÜ/Ó1Ð	1ˆ¸$Ð>ò 	@Ü�r˜?×4Ñ4×>Ñ>Ó?óð r    c                ó<   — t        «       �ddlm} t        | |«      S y)zFCheck whether `df` is a SQLFrame DataFrame without importing SQLFrame.r   )ÚBaseDataFrameF)rO   Úsqlframe.base.dataframer—   rS   )rV   r—   s     r!   Úis_sqlframe_dataframer™   ö   s   € äƒ~Ð!Ý9ä˜"˜mÓ,Ð,Ør    c                óN   — t        «       x}duxr t        | |j                  «      S )z=Check whether `arr` is a NumPy Array without importing NumPy.N)r7   rS   Úndarray©ÚarrÚnps     r!   Úis_numpy_arrayrŸ   ÿ   s$   € ä“+ÐˆB dÐ*ÒJ¬z¸#¸r¿z¹zÓ/JÐJr    c                ó:   — t        | «      xr | j                  dk(  S )z@Check whether `arr` is a 1D NumPy Array without importing NumPy.é   ©rŸ   Úndim©r�   s    r!   Úis_numpy_array_1dr¥     ó   € ä˜#ÓÒ0 3§8¡8¨q¡=Ð0r    c                ó„   — t        «       x}xr3 t        | «      xr& |j                  | j                  |j                  «      S rR   )r7   r¥   Ú
issubdtypeÚdtypeÚintegerrœ   s     r!   Úis_numpy_array_1d_intr«   	  s9   € ä‹{Ð	ˆò 	1Ü˜cÓ"ò	1à�M‰M˜#Ÿ)™) R§Z¡ZÓ0ðr    c                ó:   — t        | «      xr | j                  dk(  S )z@Check whether `arr` is a 2D NumPy Array without importing NumPy.é   r¢   r¤   s    r!   Úis_numpy_array_2dr®     r¦   r    c                óN   — t        «       x}duxr t        | |j                  «      S )zACheck whether `scalar` is a NumPy Scalar without importing NumPy.N)r7   rS   Úgeneric)Úscalarrž   s     r!   Úis_numpy_scalarr²     s&   € ô
 “+ÐˆB dÐ*ÒM¬z¸&À"Ç*Á*Ó/MÐMr    c                óL   — t        | «      xs t        | «      xs t        | «      S )z‚Check whether `df` is a pandas-like DataFrame without doing any imports.

    By "pandas-like", we mean: pandas, Modin, cuDF.
    )r]   ri   ro   )rV   s    r!   Úis_pandas_like_dataframer´     s&   € ô
 ˜rÓ"ÒUÔ&8¸Ó&<ÒUÔ@QÐRTÓ@UÐUr    c                óL   — t        | «      xs t        | «      xs t        | «      S )z€Check whether `ser` is a pandas-like Series without doing any imports.

    By "pandas-like", we mean: pandas, Modin, cuDF.
    )ra   rk   rq   ©r`   s    r!   Úis_pandas_like_seriesr·   &  s#   € ô
 ˜CÓ ÒO¤O°CÓ$8ÒO¼NÈ3Ó<OÐOr    c                óL   — t        | «      xs t        | «      xs t        | «      S )z�Check whether `index` is a pandas-like Index without doing any imports.

    By "pandas-like", we mean: pandas, Modin, cuDF.
    )rf   rm   rs   )re   s    r!   Úis_pandas_like_indexr¹   .  s%   € ô 	˜ÓÒO¤.°Ó"7ÒO¼=ÈÓ;Oðr    c                ó�   — ddl m} t        | |«      xs3 t        | d«      xs% t	        | «      xs t        | «      xs t        | «      S )a·  Check whether `native_series` can be converted to a Narwhals Series.

    Arguments:
        native_series: The object to check.

    Returns:
        `True` if `native_series` can be converted to a Narwhals Series, `False` otherwise.

    Examples:
        >>> import pandas as pd
        >>> import polars as pl
        >>> import numpy as np
        >>> import narwhals as nw

        >>> s_pd = pd.Series([1, 2, 3])
        >>> s_pl = pl.Series([1, 2, 3])
        >>> np_arr = np.array([1, 2, 3])

        >>> nw.dependencies.is_into_series(s_pd)
        True
        >>> nw.dependencies.is_into_series(s_pl)
        True
        >>> nw.dependencies.is_into_series(np_arr)
        False
    r   r   Ú__narwhals_series__)Únarwhals.seriesr   rS   Úhasattrr‡   r‹   r·   )Únative_seriesr   s     r!   Úis_into_seriesr¿   8  sS   € õ4 'ô 	�= &Ó)ò 	0Ü�=Ð"7Ó8ò	0ä˜MÓ*ò	0ô $ MÓ2ò	0ô ! Ó/ðr    c                ó�   — ddl m} t        | |«      xs3 t        | d«      xs% t	        | «      xs t        | «      xs t        | «      S )a  Check whether `native_dataframe` can be converted to a Narwhals DataFrame.

    Arguments:
        native_dataframe: The object to check.

    Returns:
        `True` if `native_dataframe` can be converted to a Narwhals DataFrame, `False` otherwise.

    Examples:
        >>> import pandas as pd
        >>> import polars as pl
        >>> import numpy as np
        >>> from narwhals.dependencies import is_into_dataframe

        >>> df_pd = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
        >>> df_pl = pl.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
        >>> np_arr = np.array([[1, 4], [2, 5], [3, 6]])

        >>> is_into_dataframe(df_pd)
        True
        >>> is_into_dataframe(df_pl)
        True
        >>> is_into_dataframe(np_arr)
        False
    r   r   Ú__narwhals_dataframe__)Únarwhals.dataframer   rS   r½   r‚   r�   r´   )Únative_dataframer   s     r!   Úis_into_dataframerÄ   ]  sX   € õ4 -ô 	Ð# YÓ/ò 	6ÜÐ#Ð%=Ó>ò	6äÐ/Ó0ò	6ô Ð,Ó-ò	6ô $Ð$4Ó5ðr    c                ó&   — ddl m} t        | |«      S )zâCheck whether `df` is a Narwhals DataFrame.

    This is useful if you expect a user to pass in a Narwhals
    DataFrame directly, and you want to catch both ``narwhals.DataFrame``
    and ``narwhals.stable.v1.DataFrame`.
    r   r   )rÂ   r   rS   )rV   r   s     r!   Úis_narwhals_dataframerÆ   ‚  s   € õ -ä�b˜)Ó$Ð$r    c                ó&   — ddl m} t        | |«      S )zâCheck whether `lf` is a Narwhals LazyFrame.

    This is useful if you expect a user to pass in a Narwhals
    LazyFrame directly, and you want to catch both ``narwhals.LazyFrame``
    and ``narwhals.stable.v1.LazyFrame`.
    r   r   )rÂ   r   rS   )Úlfr   s     r!   Úis_narwhals_lazyframerÉ   �  s   € õ -ä�b˜)Ó$Ð$r    c                ó&   — ddl m} t        | |«      S )z×Check whether `ser` is a Narwhals Series.

    This is useful if you expect a user to pass in a Narwhals
    Series directly, and you want to catch both ``narwhals.Series``
    and ``narwhals.stable.v1.Series`.
    r   r   )r¼   r   rS   )r`   r   s     r!   Úis_narwhals_seriesrË   œ  s   € õ 'ä�c˜6Ó"Ð"r    c                óP   — t        | «      xr | j                  j                  «       S rR   )rË   r©   Ú
is_integerr¶   s    r!   Úis_narwhals_series_intrÎ   ¨  s   € Ü˜cÓ"Ò= s§y¡y×';Ñ';Ó'=Ð=r    )r,   rB   r)   r7   r&   r"   r3   ro   rq   rv   r~   rÄ   r¿   ri   rk   rÆ   rÉ   rË   rŸ   r]   rf   r´   r·   ra   r‚   r…   r‡   r‹   r�   )Úreturnr   )rV   r   rÏ   zTypeIs[pd.DataFrame])r`   r   rÏ   zTypeIs[pd.Series[Any]])re   r   rÏ   zTypeIs[pd.Index[Any]])rV   r   rÏ   zTypeIs[mpd.DataFrame])r`   r   rÏ   zTypeIs[mpd.Series])re   r   rÏ   zTypeIs[mpd.Index])rV   r   rÏ   zTypeIs[cudf.DataFrame])r`   r   rÏ   zTypeIs[cudf.Series[Any]])re   r   rÏ   zTypeIs[cudf.Index])rV   r   rÏ   zTypeIs[dd.DataFrame])rV   r   rÏ   zTypeIs[duckdb.DuckDBPyRelation])rV   r   rÏ   zTypeIs[ibis.Table])rV   r   rÏ   zTypeIs[pl.DataFrame])rV   r   rÏ   zTypeIs[pl.LazyFrame])r`   r   rÏ   zTypeIs[pl.Series])r`   r   rÏ   zTypeIs[pa.ChunkedArray[Any]])rV   r   rÏ   zTypeIs[pa.Table])rV   r   rÏ   zTypeIs[pyspark_sql.DataFrame])rV   r   rÏ   zTypeIs[PySparkConnectDataFrame])rV   r   rÏ   zTypeIs[SQLFrameDataFrame])r�   zAny | _NDArray[_ShapeT]rÏ   zTypeIs[_NDArray[_ShapeT]])r�   r   rÏ   zTypeIs[_1DArray])r�   r   rÏ   zTypeIs[_1DArrayInt])r�   r   rÏ   zTypeIs[_2DArray])r±   r   rÏ   zTypeGuard[_NumpyScalar])rV   r   rÏ   r�   )r`   r   rÏ   r�   )re   r   rÏ   r�   )r¾   zAny | IntoSeriesTrÏ   zTypeIs[IntoSeriesT])rÃ   zAny | IntoDataFrameTrÏ   zTypeIs[IntoDataFrameT])rV   zDataFrame[IntoDataFrameT] | AnyrÏ   z!TypeIs[DataFrame[IntoDataFrameT]])rÈ   zAny | LazyFrame[FrameT]rÏ   zTypeIs[LazyFrame[FrameT]])r`   zAny | Series[IntoSeriesT]rÏ   zTypeIs[Series[IntoSeriesT]])bÚ
__future__r   r   Útypingr   r   r+   Údask.dataframer“   ru   r>   rA   Úmodin.pandasr%   rh   r\   r   r�   r2   rŠ   Úpyspark.sqlÚsqlr�   Úpyspark.sql.connect.dataframer   ÚPySparkConnectDataFrameÚtyping_extensionsr   r	   Únarwhals._spark_like.dataframer
   rÂ   r   r¼   r   Únarwhals.typingr   r   r   r   r   r   r   r   r   Ú	frozensetr[   r"   r&   r)   r,   r0   r3   r7   r:   r<   r?   rB   rE   rH   rJ   rL   rO   r]   ra   rf   ri   rk   rm   ro   rq   rs   rv   ry   r~   r‚   r…   r‡   r‹   r�   r‘   r•   r™   rŸ   r¥   r«   r®   r²   r´   r·   r¹   r¿   rÄ   rÆ   rÉ   rË   rÎ   Ú__all__r   r    r!   ú<module>rÝ      s‘  ðõ #ã 
Ý  Ý áÛÝÛÛÝÛÛÛÝ%ÝRÝ+Ý(å@Ý,Ý,Ý&Ý&Ý.Ý+Ý(Ý+Ý(Ý(Ý,Ý'ñ ˜+˜Ó'€ó+ó
+ó
ó)ó
)ó
,ó
*ó
)ó
3ó
+ó
)ó
.ó
,ó
0ó
8ó
-ó
óóóNó
Ló
óOó
Mó
óUó
óVó
Mó
Mó
Kó
Ró
Jó
óóóKó
1ó
ó1ó
NóVóPóó"óJ"ðJ%Ø'ð%à&ó%ó	%ó	#ó>ò�r    