§
    ŠhþhsL  ã                  ó  — d dl mZ d dlZd dlmZmZ d dlmZ erdd 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mZ d dlm Z  d dl!mZm"Z" d d	l#m$Z$ d d
l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/  e0dg¦  «        Z1d�d„Z2d�d„Z3d�d„Z4d�d„Z5d�d„Z6d�d„Z7d�d„Z8d�d„Z9d�d„Z:d�d„Z;d�d„Z<d�d„Z=d�d„Z>d�d„Z?d�d„Z@d�d„ZAd‚d „ZBdƒd"„ZCd„d$„ZDd…d&„ZEd†d)„ZFd‡d+„ZGdˆd-„ZHd‰d/„ZIdŠd1„ZJd‹d3„ZKdŒd5„ZLd�d8„ZMdŽd:„ZNd�d<„ZOd�d>„ZPd‘d@„ZQd’dB„ZRd“dD„ZSd”dF„ZTd•dH„ZUd–dJ„ZVd—dL„ZWd˜dN„ZXd™dP„ZYdšdR„ZZd›dT„Z[dœdV„Z\d�dX„Z]džd\„Z^dŸd^„Z_d d`„Z`d¡db„Zad¢de„Zbd£df„Zcd¤dg„Zdd¥dh„Zed¦dj„Zfd§dl„Zgd¨dp„Zhd©dt„Zidªdw„Zjd«d{„Zkd¬d~„Zld¬d„Zmg d€¢ZndS )­é    )ÚannotationsN)ÚTYPE_CHECKINGÚAny)Úissue_warning©Ú	DataFrame)Ú	TypeGuardÚTypeIs)ÚSQLFrameDataFrame)r   Ú	LazyFrame©ÚSeries)
ÚIntoDataFrameTÚIntoLazyFrameTÚIntoSeriesTÚPandasLikeDTypeÚ_1DArrayÚ_1DArrayIntÚ_2DArrayÚ_NDArrayÚ_NumpyScalarÚ_ShapeTÚ	fireducksÚreturnr   c                 óB   — t           j                             dd¦  «        S )z;Get Polars module (if already imported - else return None).ÚpolarsN©ÚsysÚmodulesÚget© ó    úL/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/dependencies.pyÚ
get_polarsr$   /   ó   € åŒ;�?Š?˜8 TÑ*Ô*Ð*r"   c                 óB   — t           j                             dd¦  «        S )z;Get pandas module (if already imported - else return None).ÚpandasNr   r!   r"   r#   Ú
get_pandasr(   4   r%   r"   c                 óB   — t           j                             dd¦  «        S )zAGet modin.pandas module (if already imported - else return None).zmodin.pandasNr   r!   r"   r#   Ú	get_modinr*   9   s   € åŒ;�?Š?˜>¨4Ñ0Ô0Ð0r"   c                 óB   — t           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                             dd¦  «        S )z9Get cupy module (if already imported - else return None).ÚcupyNr   r!   r"   r#   Úget_cupyr1   C   r.   r"   c                 óB   — t           j                             dd¦  «        S )z<Get pyarrow module (if already imported - else return None).ÚpyarrowNr   r!   r"   r#   Úget_pyarrowr4   H   ó   € åŒ;�?Š?˜9 dÑ+Ô+Ð+r"   c                 óB   — t           j                             dd¦  «        S )z:Get numpy module (if already imported - else return None).ÚnumpyNr   r!   r"   r#   Ú	get_numpyr8   M   s   € åŒ;�?Š?˜7 DÑ)Ô)Ð)r"   c                 óB   — t           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                             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Ô2Ð2r"   c                 óB   — t           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                             dd¦  «        S )z9Get ibis module (if already imported - else return None).ÚibisNr   r!   r"   r#   Úget_ibisrC   a   r.   r"   c                 ó�   — t          ¦   «         x} �t          | d¦  «        r| j        S t          j                             dd¦  «        S )z>Get dask_expr module (if already imported - else return None).NÚ	dask_expr)r=   ÚhasattrrE   r   r   r    )Údds    r#   Úget_dask_exprrH   f   s@   € å Ñ"Ô"Ð"ˆÐ/µG¸BÀÑ4LÔ4LÐ/ØŒ|ÐÝŒ;�?Š?˜;¨Ñ-Ô-Ð-r"   c                 óB   — t           j                             dd¦  «        S )z<Get pyspark module (if already imported - else return None).ÚpysparkNr   r!   r"   r#   Úget_pysparkrK   m   r5   r"   c                 óB   — t           j                             dd¦  «        S )z@Get pyspark.sql module (if already imported - else return None).zpyspark.sqlNr   r!   r"   r#   Úget_pyspark_sqlrM   r   s   € åŒ;�?Š?˜=¨$Ñ/Ô/Ð/r"   c                 óB   — t           j                             dd¦  «        S )zHGet pyspark.sql.connect module (if already imported - else return None).zpyspark.sql.connectNr   r!   r"   r#   Úget_pyspark_connectrO   w   s   € åŒ;�?Š?Ð0°$Ñ7Ô7Ð7r"   c                 óB   — t           j                             dd¦  «        S )z=Get sqlframe module (if already imported - else return None).ÚsqlframeNr   r!   r"   r#   Úget_sqlframerR   |   s   € åŒ;�?Š?˜: tÑ,Ô,Ð,r"   ÚdfÚNonec                ó–   — t          | ¦  «        st          | ¦  «        r*dt          | ¦  «        › d�}t          |t          ¦  «         d S d S )NúYou passed a `z�` to `is_pandas_dataframe`.

Hint: Instead of e.g. `is_pandas_dataframe(df)`, did you mean `is_pandas_dataframe(df.to_native())`?)Úis_narwhals_dataframeÚis_narwhals_lazyframeÚtyper   ÚUserWarning)rS   Úmsgs     r#   Ú_warn_if_narwhals_df_or_lfr\   �   si   € Ý˜RÑ Ô ð (Õ$9¸"Ñ$=Ô$=ð (ðB�T "™XœXð Bð Bð Bð 	õ
 	�c�;Ñ'Ô'Ð'Ð'Ð'ð(ð (r"   Úserc                óx   — t          | ¦  «        r*dt          | ¦  «        › d�}t          |t          ¦  «         d S d S )NrV   zz` to `is_pandas_series`.

Hint: Instead of e.g. `is_pandas_series(ser)`, did you mean `is_pandas_series(ser.to_native())`?)Úis_narwhals_seriesrY   r   rZ   )r]   r[   s     r#   Ú_warn_if_narwhals_seriesr`   ‹   sY   € Ý˜#ÑÔð (ð@�T #™YœYð @ð @ð @ð 	õ
 	�c�;Ñ'Ô'Ð'Ð'Ð'ð(ð (r"   úTypeIs[pd.DataFrame]c                ó´   ‡ ‡— t          ‰ ¦  «         t          ¦   «         x}durt          ‰ |j        ¦  «        p t	          ˆ ˆfd„t
          D ¦   «         ¦  «        S )z�Check whether `df` is a pandas DataFrame without importing pandas.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    Nc              3  ó”   •K  — | ]B}t           j                             |d ¦  «        xŠd uot          ‰‰j        j        ¦  «        V — ŒCd S ©N)r   r   r    Ú
isinstancer'   r   )Ú.0Úmodule_namerS   Úmods     €€r#   ú	<genexpr>z&is_pandas_dataframe.<locals>.<genexpr>œ   sr   øè è € ð Vð Vð õ ”—’ ¨TÑ2Ô2Ð	2ˆ¸4Ð?ð 	1Ý�r˜3œ:Ô/Ñ0Ô0ðVð Vð Vð Vð Vð Vr"   )r\   r(   re   r   ÚanyÚIMPORT_HOOKS)rS   Úpdrh   s   ` @r#   Úis_pandas_dataframerm   •   s„   øø€ õ ˜rÑ"Ô"Ð"Ý‘<”<ÐˆR¨Ð,ÐMµ¸BÀÄÑ1MÔ1Mð ÕRUð Vð Vð Vð Vð Võ (ðVñ Vô Vñ Sô Sð r"   úTypeIs[pd.Series[Any]]c                ó´   ‡ ‡— t          ‰ ¦  «         t          ¦   «         x}durt          ‰ |j        ¦  «        p t	          ˆˆ fd„t
          D ¦   «         ¦  «        S )zŒCheck whether `ser` is a pandas Series without importing pandas.

    Warning:
        This method cannot be called on Narwhals Series.
    Nc              3  ó”   •K  — | ]B}t           j                             |d ¦  «        xŠd uot          ‰‰j        j        ¦  «        V — ŒCd S rd   )r   r   r    re   r'   r   )rf   rg   rh   r]   s     €€r#   ri   z#is_pandas_series.<locals>.<genexpr>ª   sr   øè è € ð Tð Tð õ ”—’ ¨TÑ2Ô2Ð	2ˆ¸4Ð?ð 	/Ý�s˜CœJÔ-Ñ.Ô.ðTð Tð Tð Tð Tð Tr"   )r`   r(   re   r   rj   rk   )r]   rl   rh   s   ` @r#   Úis_pandas_seriesrq   £   s„   øø€ õ ˜SÑ!Ô!Ð!Ý‘<”<ÐˆR¨Ð,ÐKµ¸CÀÄÑ1KÔ1Kð ÕPSð Tð Tð Tð Tð Tõ (ðTñ Tô Tñ Qô Qð r"   ÚindexúTypeIs[pd.Index[Any]]c                ó–   ‡ ‡— t          ¦   «         x}durt          ‰ |j        ¦  «        p t          ˆ ˆfd„t          D ¦   «         ¦  «        S )zACheck whether `index` is a pandas Index without importing pandas.Nc              3  ó”   •K  — | ]B}t           j                             |d ¦  «        xŠd uot          ‰‰j        j        ¦  «        V — ŒCd S rd   )r   r   r    re   r'   ÚIndex)rf   rg   rr   rh   s     €€r#   ri   z"is_pandas_index.<locals>.<genexpr>³   sr   øè è € ð Uð Uð õ ”—’ ¨TÑ2Ô2Ð	2ˆ¸4Ð?ð 	0Ý�u˜cœjÔ.Ñ/Ô/ðUð Uð Uð Uð Uð Ur"   )r(   re   rv   rj   rk   )rr   rl   rh   s   ` @r#   Úis_pandas_indexrw   ±   st   øø€ å‘<”<ÐˆR¨Ð,ÐLµ¸EÀ2Ä8Ñ1LÔ1Lð ÕQTð Uð Uð Uð Uð Uõ (ðUñ Uô Uñ Rô Rð r"   úTypeIs[mpd.DataFrame]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )z›Check whether `df` is a modin DataFrame without importing modin.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    N)r\   r*   re   r   )rS   Úmpds     r#   Úis_modin_dataframer{   º   s7   € õ ˜rÑ"Ô"Ð"Ý‘;”;ÐˆC tÐ+ÐMµ
¸2¸s¼}Ñ0MÔ0MÐMr"   úTypeIs[mpd.Series]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )zŠCheck whether `ser` is a modin Series without importing modin.

    Warning:
        This method cannot be called on Narwhals Series.
    N)r`   r*   re   r   )r]   rz   s     r#   Úis_modin_seriesr~   Ä   s7   € õ ˜SÑ!Ô!Ð!Ý‘;”;ÐˆC tÐ+ÐKµ
¸3ÀÄ
Ñ0KÔ0KÐKr"   úTypeIs[mpd.Index[Any]]c                óP   — t          ¦   «         x}duot          | |j        ¦  «        S )z?Check whether `index` is a modin Index without importing modin.N)r*   re   rv   )rr   rz   s     r#   Úis_modin_indexr�   Î   s'   € å‘;”;ÐˆC tÐ+ÐLµ
¸5À#Ä)Ñ0LÔ0LÐLr"   úTypeIs[cudf.DataFrame]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )z™Check whether `df` is a cudf DataFrame without importing cudf.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    N)r\   r-   re   r   )rS   r,   s     r#   Úis_cudf_dataframer„   Ó   s7   € õ ˜rÑ"Ô"Ð"Ý‘J”JÐˆD tÐ+ÐNµ
¸2¸t¼~Ñ0NÔ0NÐNr"   úTypeIs[cudf.Series[Any]]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )zˆCheck whether `ser` is a cudf Series without importing cudf.

    Warning:
        This method cannot be called on Narwhals Series.
    N)r`   r-   re   r   )r]   r,   s     r#   Úis_cudf_seriesr‡   Ý   s7   € õ ˜SÑ!Ô!Ð!Ý‘J”JÐˆD tÐ+ÐLµ
¸3ÀÄÑ0LÔ0LÐLr"   úTypeIs[cudf.Index]c                óP   — t          ¦   «         x}duot          | |j        ¦  «        S )z=Check whether `index` is a cudf Index without importing cudf.N)r-   re   rv   )rr   r,   s     r#   Úis_cudf_indexrŠ   ç   s0   € å‘J”JÐˆD tÐ+ð µ
ØˆtŒzñ1ô 1ð r"   ÚobjÚboolc                óf   — t          ¦   «         x}d uot          | |j        ¦  «        o
| j        dk    S )Né   )r1   re   ÚndarrayÚsize)r‹   r0   s     r#   Úis_cupy_scalarr‘   î   s:   € å‘”Ð	ˆ DÐ(ð 	Ý�s˜DœLÑ)Ô)ð	àŒH˜ŠMðr"   úTypeIs[dd.DataFrame]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )z™Check whether `df` is a Dask DataFrame without importing Dask.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    N)r\   r=   re   r   )rS   rG   s     r#   Úis_dask_dataframer”   ö   s9   € õ ˜rÑ"Ô"Ð"Ý$Ñ&Ô&Ð&ˆB¨tÐ3ÐT½
À2ÀrÄ|Ñ8TÔ8TÐTr"   úTypeIs[duckdb.DuckDBPyRelation]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )zšCheck whether `df` is a DuckDB Relation without importing DuckDB.

    Warning:
        This method cannot be called on Narwhals DataFrame/LazyFrame.
    N)r\   r@   re   ÚDuckDBPyRelation)rS   r?   s     r#   Úis_duckdb_relationr˜      sA   € õ ˜rÑ"Ô"Ð"Ý ‘l”lÐ"ˆF¨4Ð/ð µJØ
ˆFÔ#ñ5ô 5ð r"   úTypeIs[ibis.Table]c                ó‚   — t          | ¦  «         t          ¦   «         x}duot          | |j        j        j        ¦  «        S )z“Check whether `df` is a Ibis Table without importing Ibis.

    Warning:
        This method cannot be called on Narwhals DataFrame/LazyFrame.
    N)r\   rC   re   ÚexprÚtypesÚTable)rS   rB   s     r#   Úis_ibis_tablerž     s<   € õ ˜rÑ"Ô"Ð"Ý‘J”JÐˆD tÐ+ÐUµ
¸2¸t¼y¼Ô?TÑ0UÔ0UÐUr"   úTypeIs[pl.DataFrame]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )z�Check whether `df` is a Polars DataFrame without importing Polars.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    N)r\   r$   re   r   ©rS   Úpls     r#   Úis_polars_dataframer£     ó7   € õ ˜rÑ"Ô"Ð"Ý‘,”,ÐˆB tÐ+ÐLµ
¸2¸r¼|Ñ0LÔ0LÐLr"   úTypeIs[pl.LazyFrame]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )z›Check whether `df` is a Polars LazyFrame without importing Polars.

    Warning:
        This method cannot be called on Narwhals DataFrame/LazyFrame.
    N)r\   r$   re   r   r¡   s     r#   Úis_polars_lazyframer§      r¤   r"   úTypeIs[pl.Series]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )zŒCheck whether `ser` is a Polars Series without importing Polars.

    Warning:
        This method cannot be called on Narwhals Series.
    N)r`   r$   re   r   )r]   r¢   s     r#   Úis_polars_seriesrª   *  s7   € õ ˜SÑ!Ô!Ð!Ý‘,”,ÐˆB tÐ+ÐJµ
¸3ÀÄ	Ñ0JÔ0JÐJr"   úTypeIs[pl.Schema]c                ó†   — t          t          ¦   «         x}¦  «        o$t          |d¦  «        ot          | |j        ¦  «        S )NÚSchema)rŒ   r$   rF   re   r­   ©r‹   r¢   s     r#   Úis_polars_schemar¯   4  s;   € å•:‘<”<ÐˆRÑ Ô ÐY¥W¨R°Ñ%:Ô%:ÐY½zÈ#ÈrÌyÑ?YÔ?Yðr"   úTypeIs[pl.DataType]c                óf   — t          t          ¦   «         x}¦  «        ot          | |j        ¦  «        S rd   )rŒ   r$   re   ÚDataTyper®   s     r#   Úis_polars_data_typer³   ;  s*   € Ý•j‘l”lÐ"�Ñ#Ô#ÐD­
°3¸¼Ñ(DÔ(DÐDr"   úTypeIs[pa.ChunkedArray[Any]]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )z”Check whether `ser` is a PyArrow ChunkedArray without importing PyArrow.

    Warning:
        This method cannot be called on Narwhals Series.
    N)r`   r4   re   ÚChunkedArray)r]   Úpas     r#   Úis_pyarrow_chunked_arrayr¸   ?  s7   € õ ˜SÑ!Ô!Ð!Ý‘-”-ÐˆB¨Ð,ÐQµ¸CÀÄÑ1QÔ1QÐQr"   úTypeIs[pa.Table]c                ón   — t          | ¦  «         t          ¦   «         x}duot          | |j        ¦  «        S )z™Check whether `df` is a PyArrow Table without importing PyArrow.

    Warning:
        This method cannot be called on Narwhals DataFrame/LazyFrame.
    N)r\   r4   re   r�   )rS   r·   s     r#   Úis_pyarrow_tabler»   I  s7   € õ ˜rÑ"Ô"Ð"Ý‘-”-ÐˆB¨Ð,ÐIµ¸BÀÄÑ1IÔ1IÐIr"   úTypeIs[pa.Scalar[Any]]c                óP   — t          ¦   «         x}d uot          | |j        ¦  «        S rd   )r4   re   ÚScalar©r‹   r·   s     r#   Úis_pyarrow_scalarrÀ   S  s'   € Ý‘-”-ÐˆB¨Ð,ÐKµ¸CÀÄÑ1KÔ1KÐKr"   úTypeIs[pa.Schema]c                óf   — t          t          ¦   «         x}¦  «        ot          | |j        ¦  «        S rd   )rŒ   r4   re   r­   r¿   s     r#   Úis_pyarrow_schemarÃ   W  s*   € Ý•k‘m”mÐ#�Ñ$Ô$ÐC­°C¸¼Ñ)CÔ)CÐCr"   úTypeIs[pa.DataType]c                óf   — t          t          ¦   «         x}¦  «        ot          | |j        ¦  «        S rd   )rŒ   r4   re   r²   r¿   s     r#   Úis_pyarrow_data_typerÆ   [  s*   € Ý•k‘m”mÐ#�Ñ$Ô$ÐE­°C¸¼Ñ)EÔ)EÐEr"   úTypeIs[pyspark_sql.DataFrame]c                óˆ   — t          | ¦  «         t          t          ¦   «         x}duot          | |j        ¦  «        ¦  «        S )zŸCheck whether `df` is a PySpark DataFrame without importing PySpark.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    N)r\   rŒ   rM   re   r   )rS   Úpyspark_sqls     r#   Úis_pyspark_dataframerÊ   _  sL   € õ ˜rÑ"Ô"Ð"ÝÝ'Ñ)Ô)Ð	)ˆ°$Ð6ð 	2Ý�r˜;Ô0Ñ1Ô1ñô ð r"   úTypeIs[PySparkConnectDataFrame]c                ó’   — t          | ¦  «         t          ¦   «         �)	 ddlm} n# t          $ r Y dS w xY wt          | |¦  «        S dS )z§Check whether `df` is a PySpark Connect DataFrame without importing PySpark.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    Nr   r   F)r\   rO   Úpyspark.sql.connect.dataframer   ÚImportErrorre   ©rS   r   s     r#   Úis_pyspark_connect_dataframerÐ   l  so   € õ ˜rÑ"Ô"Ð"ÝÑÔÐ(ð	Ø?Ð?Ð?Ð?Ð?Ð?Ð?øÝð 	ð 	ð 	Ø�5�5ð	øøøå˜"˜iÑ(Ô(Ð(Øˆ5s   Ÿ& ¦
4³4úTypeIs[SQLFrameDataFrame]c                ól   — t          | ¦  «         t          ¦   «         �ddlm} t	          | |¦  «        S dS )z¡Check whether `df` is a SQLFrame DataFrame without importing SQLFrame.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    Nr   )ÚBaseDataFrameF)r\   rR   Úsqlframe.base.dataframerÓ   re   )rS   rÓ   s     r#   Úis_sqlframe_dataframerÕ   |  sC   € õ ˜rÑ"Ô"Ð"Ý�~„~Ð!Ø9Ð9Ð9Ð9Ð9Ð9å˜"˜mÑ,Ô,Ð,Øˆ5r"   ÚarrúAny | _NDArray[_ShapeT]úTypeIs[_NDArray[_ShapeT]]c                óP   — t          ¦   «         x}duot          | |j        ¦  «        S )z=Check whether `arr` is a NumPy Array without importing NumPy.N)r8   re   r�   ©rÖ   Únps     r#   Úis_numpy_arrayrÜ   Š  s'   € å‘+”+ÐˆB dÐ*ÐJ­z¸#¸r¼zÑ/JÔ/JÐJr"   úTypeIs[_1DArray]c                ó6   — t          | ¦  «        o
| j        dk    S )z@Check whether `arr` is a 1D NumPy Array without importing NumPy.rŽ   ©rÜ   Úndim©rÖ   s    r#   Úis_numpy_array_1drâ   �  ó   € å˜#ÑÔÐ0 3¤8¨q¢=Ð0r"   úTypeIs[_1DArrayInt]c                ó€   — t          ¦   «         x}o.t          | ¦  «        o|                     | j        |j        ¦  «        S rd   )r8   râ   Ú
issubdtypeÚdtypeÚintegerrÚ   s     r#   Úis_numpy_array_1d_intré   ”  s=   € å‰{Œ{Ð	ˆð 	1Ý˜cÑ"Ô"ð	1à�MŠM˜#œ) R¤ZÑ0Ô0ðr"   úTypeIs[_2DArray]c                ó6   — t          | ¦  «        o
| 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"   ÚscalarúTypeGuard[_NumpyScalar]c                óP   — t          ¦   «         x}duot          | |j        ¦  «        S )zACheck whether `scalar` is a NumPy Scalar without importing NumPy.N)r8   re   Úgeneric)rî   rÛ   s     r#   Úis_numpy_scalarrò   ¡  s)   € õ
 ‘+”+ÐˆB dÐ*ÐM­z¸&À"Ä*Ñ/MÔ/MÐMr"   c                óz   — t          | ¦  «         t          | ¦  «        pt          | ¦  «        pt          | ¦  «        S )zØCheck whether `df` is a pandas-like DataFrame without doing any imports.

    By "pandas-like", we mean: pandas, Modin, cuDF.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    )r\   rm   r{   r„   )rS   s    r#   Úis_pandas_like_dataframerô   ©  s=   € õ ˜rÑ"Ô"Ð"Ý˜rÑ"Ô"ÐUÕ&8¸Ñ&<Ô&<ÐUÕ@QÐRTÑ@UÔ@UÐUr"   c                óz   — t          | ¦  «         t          | ¦  «        pt          | ¦  «        pt          | ¦  «        S )zÇCheck whether `ser` is a pandas-like Series without doing any imports.

    By "pandas-like", we mean: pandas, Modin, cuDF.

    Warning:
        This method cannot be called on Narwhals Series.
    )r`   rq   r~   r‡   ©r]   s    r#   Úis_pandas_like_seriesr÷   µ  s:   € õ ˜SÑ!Ô!Ð!Ý˜CÑ Ô ÐO¥O°CÑ$8Ô$8ÐO½NÈ3Ñ<OÔ<OÐOr"   c                ó\   — t          | ¦  «        pt          | ¦  «        pt          | ¦  «        S )z�Check whether `index` is a pandas-like Index without doing any imports.

    By "pandas-like", we mean: pandas, Modin, cuDF.
    )rw   r�   rŠ   )rr   s    r#   Úis_pandas_like_indexrù   Á  s.   € õ 	˜ÑÔÐO¥.°Ñ"7Ô"7ÐO½=ÈÑ;OÔ;Oðr"   úTypeIs[PandasLikeDType]c                ó    — t          t          ¦   «         x}¦  «        o1t          | |j        j        j        t          ¦   «         j        f¦  «        S rd   )rŒ   r(   re   ÚapiÚ
extensionsÚExtensionDtyper8   rç   ©r‹   rl   s     r#   Úis_pandas_like_dtyper   Ë  sE   € Ý•j‘l”lÐ"�Ñ#Ô#ð ­
ØˆbŒfÔÔ.µ	±´Ô0AÐBñ)ô )ð r"   ú(TypeIs[pd.api.extensions.ExtensionDtype]c                óš   — t          t          ¦   «         x}¦  «        o.t          | |j        j        j        ¦  «        ot          | d¦  «        S )NÚto_arrow)rŒ   r(   re   rü   rý   rþ   rF   rÿ   s     r#   Úis_cudf_dtyper  Ñ  sI   € õ 	•:‘<”<ÐˆRÑ Ô ð 	%Ý�s˜RœVÔ.Ô=Ñ?Ô?ð	%å�C˜Ñ$Ô$ðr"   Únative_seriesúAny | IntoSeriesTúTypeIs[IntoSeriesT]c                ó¨   — ddl m} t          | |¦  «        p<t          | d¦  «        p,t	          | ¦  «        pt          | ¦  «        pt          | ¦  «        S )aM  Check whether `native_series` can be converted to a Narwhals Series.

    Arguments:
        native_series: The object to check.

    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   re   rF   rª   r¸   r÷   )r  r   s     r#   Úis_into_seriesr  Û  sq   € ð. 'Ð&Ð&Ð&Ð&Ð&õ 	�= &Ñ)Ô)ð 	0Ý�=Ð"7Ñ8Ô8ð	0å˜MÑ*Ô*ð	0õ $ MÑ2Ô2ð	0õ ! Ñ/Ô/ðr"   Únative_dataframeúAny | IntoDataFrameTúTypeIs[IntoDataFrameT]c                ó¨   — ddl m} t          | |¦  «        p<t          | d¦  «        p,t	          | ¦  «        pt          | ¦  «        pt          | ¦  «        S )a”  Check whether `native_dataframe` can be converted to a Narwhals DataFrame.

    Arguments:
        native_dataframe: The object to check.

    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   re   rF   r£   r»   rô   )r  r   s     r#   Úis_into_dataframer  ý  sv   € ð. -Ð,Ð,Ð,Ð,Ð,õ 	Ð# YÑ/Ô/ð 	6ÝÐ#Ð%=Ñ>Ô>ð	6åÐ/Ñ0Ô0ð	6õ Ð,Ñ-Ô-ð	6õ $Ð$4Ñ5Ô5ðr"   úDataFrame[IntoDataFrameT] | Anyú!TypeIs[DataFrame[IntoDataFrameT]]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   re   rÏ   s     r#   rW   rW     ó&   € ð -Ð,Ð,Ð,Ð,Ð,å�b˜)Ñ$Ô$Ð$r"   ÚlfúAny | LazyFrame[IntoLazyFrameT]ú!TypeIs[LazyFrame[IntoLazyFrameT]]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   re   )r  r   s     r#   rX   rX   -  r  r"   úAny | Series[IntoSeriesT]úTypeIs[Series[IntoSeriesT]]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   re   )r]   r   s     r#   r_   r_   ;  s&   € ð 'Ð&Ð&Ð&Ð&Ð&å�c˜6Ñ"Ô"Ð"r"   c                óR   — t          | ¦  «        o| j                             ¦   «         S rd   )r_   rç   Ú
is_integerrö   s    r#   Úis_narwhals_series_intr   G  s#   € Ý˜cÑ"Ô"Ð= s¤y×';Ò';Ñ'=Ô'=Ð=r"   )r-   rC   r*   r8   r(   r$   r4   r„   r‡   r”   rž   r  r  r{   r~   rW   rX   r_   rÜ   rm   rw   rô   r÷   rq   r£   r§   rª   r¸   r»   )r   r   )rS   r   r   rT   )r]   r   r   rT   )rS   r   r   ra   )r]   r   r   rn   )rr   r   r   rs   )rS   r   r   rx   )r]   r   r   r|   )rr   r   r   r   )rS   r   r   r‚   )r]   r   r   r…   )rr   r   r   rˆ   )r‹   r   r   rŒ   )rS   r   r   r’   )rS   r   r   r•   )rS   r   r   r™   )rS   r   r   rŸ   )rS   r   r   r¥   )r]   r   r   r¨   )r‹   r   r   r«   )r‹   r   r   r°   )r]   r   r   r´   )rS   r   r   r¹   )r‹   r   r   r¼   )r‹   r   r   rÁ   )r‹   r   r   rÄ   )rS   r   r   rÇ   )rS   r   r   rË   )rS   r   r   rÑ   )rÖ   r×   r   rØ   )rÖ   r   r   rÝ   )rÖ   r   r   rä   )rÖ   r   r   rê   )rî   r   r   rï   )rS   r   r   rŒ   )r]   r   r   rŒ   )rr   r   r   rŒ   )r‹   r   r   rú   )r‹   r   r   r  )r  r  r   r  )r  r  r   r  )rS   r  r   r  )r  r  r   r  )r]   r  r   r  )oÚ
__future__r   r   Útypingr   r   Únarwhals._exceptionsr   r,   Údask.dataframeÚ	dataframerG   r?   rB   Úmodin.pandasr'   rz   rl   r   r¢   r3   r·   Úpyspark.sqlÚsqlrÉ   rÍ   r   ÚPySparkConnectDataFrameÚtyping_extensionsr	   r
   Únarwhals._spark_like.dataframer   r  r   r
  r   Únarwhals.typingr   r   r   r   r   r   r   r   r   r   Ú	frozensetrk   r$   r(   r*   r-   r1   r4   r8   r;   r=   r@   rC   rH   rK   rM   rO   rR   r\   r`   rm   rq   rw   r{   r~   r�   r„   r‡   rŠ   r‘   r”   r˜   rž   r£   r§   rª   r¯   r³   r¸   r»   rÀ   rÃ   rÆ   rÊ   rÐ   rÕ   rÜ   râ   ré   rí   rò   rô   r÷   rù   r   r  r  r  rW   rX   r_   r   Ú__all__r!   r"   r#   ú<module>r/     sÑ  ðð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à .Ð .Ð .Ð .Ð .Ð .àð Ø€K€K€KØÐÐÐÐÐØ€M€M€MØ€K€K€KØÐÐÐÐÐØÐÐÐØÐÐÐØÐÐÐØ%Ð%Ð%Ð%Ð%Ð%ØRÐRÐRÐRÐRÐRØ3Ð3Ð3Ð3Ð3Ð3Ð3Ð3à@Ð@Ð@Ð@Ð@Ð@Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ø&Ð&Ð&Ð&Ð&Ð&ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð" ˆy˜+˜Ñ'Ô'€ð+ð +ð +ð +ð
+ð +ð +ð +ð
1ð 1ð 1ð 1ð
)ð )ð )ð )ð
)ð )ð )ð )ð
,ð ,ð ,ð ,ð
*ð *ð *ð *ð
)ð )ð )ð )ð
3ð 3ð 3ð 3ð
+ð +ð +ð +ð
)ð )ð )ð )ð
.ð .ð .ð .ð,ð ,ð ,ð ,ð
0ð 0ð 0ð 0ð
8ð 8ð 8ð 8ð
-ð -ð -ð -ð
(ð (ð (ð (ð(ð (ð (ð (ðð ð ð ðð ð ð ðð ð ð ðNð Nð Nð NðLð Lð Lð LðMð Mð Mð Mð
Oð Oð Oð OðMð Mð Mð Mðð ð ð ðð ð ð ðUð Uð Uð Uð	ð 	ð 	ð 	ðVð Vð Vð VðMð Mð Mð MðMð Mð Mð MðKð Kð Kð Kðð ð ð ðEð Eð Eð EðRð Rð Rð RðJð Jð Jð JðLð Lð Lð LðDð Dð Dð DðFð Fð Fð Fð
ð 
ð 
ð 
ðð ð ð ð ð ð ð ðKð Kð Kð Kð
1ð 1ð 1ð 1ð
ð ð ð ð1ð 1ð 1ð 1ð
Nð Nð Nð Nð	Vð 	Vð 	Vð 	Vð	Pð 	Pð 	Pð 	Pðð ð ð ðð ð ð ðð ð ð ðð ð ð ðDð ð ð ðD%ð %ð %ð %ð%ð %ð %ð %ð	#ð 	#ð 	#ð 	#ð>ð >ð >ð >ðð ð €€€r"   