Ë
    ðmxiÖM  ã                  ó*  — 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«      Z1dKd„Z2dKd„Z3dKd„Z4dKd„Z5dKd„Z6dKd„Z7dKd„Z8dKd„Z9dKd„Z:dKd„Z;dKd„Z<dKd„Z=dKd„Z>dKd„Z?dKd„Z@dKd„ZAdLd„ZBdMd„ZCdNd„ZDdOd„ZEdPd „ZFdQd!„ZGdRd"„ZHdSd#„ZIdTd$„ZJdUd%„ZKdVd&„ZLdWd'„ZMdXd(„ZNdYd)„ZOdZd*„ZPd[d+„ZQd\d,„ZRd]d-„ZSd^d.„ZTd_d/„ZUd`d0„ZVdad1„ZWdbd2„ZXdcd3„ZYddd4„ZZded5„Z[dfd6„Z\dgd7„Z]dhd8„Z^did9„Z_djd:„Z`djd;„Zadkd<„Zbdld=„Zcdmd>„Zddnd?„Zedod@„ZfdpdA„Zg	 	 	 	 dqdB„ZhdrdC„ZidsdD„Zj	 	 	 	 dtdE„Zk	 	 	 	 dudF„ZldvdG„ZmdvdH„Zn	 	 	 	 dvdI„Zog dJ¢Zpy)wé    )ÚannotationsN)ÚTYPE_CHECKINGÚAny)Úissue_warning©Ú	DataFrame)Ú	TypeGuardÚTypeIs)ÚSQLFrameDataFrame)r   Ú	LazyFrame©ÚSeries)
ÚIntoDataFrameTÚIntoLazyFrameTÚIntoSeriesTÚPandasLikeDTypeÚ_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© ó    úL/home/htdocs/ttos/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'   4   r$   r!   c                 óB   — t         j                  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Ð0r!   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                 óŠ   — t        «       x} �t        | d«      r| j                  S t        j                  j                  dd«      S )z>Get dask_expr module (if already imported - else return None).NÚ	dask_expr)r<   ÚhasattrrD   r   r   r   )Údds    r"   Úget_dask_exprrG   f   s8   € ä Ó"Ð"ˆÐ/´G¸BÀÔ4LØ�|‰|ÐÜ�;‰;�?‰?˜;¨Ó-Ð-r!   c                 óB   — t         j                  j                  dd«      S )z<Get pyspark module (if already imported - else return None).ÚpysparkNr   r    r!   r"   Úget_pysparkrJ   m   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_sqlrL   r   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_connectrN   w   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_sqlframerQ   |   s   € ä�;‰;�?‰?˜: tÓ,Ð,r!   c                óp   — t        | «      st        | «      r dt        | «      › d�}t        |t        «       y y )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)ÚdfÚmsgs     r"   Ú_warn_if_narwhals_df_or_lfrZ   �   s?   € Ü˜RÔ Ô$9¸"Ô$=àœT "›X˜Jð 'Bð Bð 	ô
 	�cœ;Õ'ð %>r!   c                óZ   — t        | «      r dt        | «      › d�}t        |t        «       y y )NrS   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_seriesrV   r   rW   )ÚserrY   s     r"   Ú_warn_if_narwhals_seriesr^   ‹   s7   € Ü˜#ÔàœT #›Y˜Kð (@ð @ð 	ô
 	�cœ;Õ'ð r!   c                óž   ‡ ‡— t        ‰ «       t        «       x}duxr t        ‰ |j                  «      xs 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  — | ]J  }t         j                  j                  |d «      xŠd uxr  t        ‰‰j                  j
                  «      –— ŒL y ­w©N)r   r   r   Ú
isinstancer&   r   )Ú.0Úmodule_namerX   Úmods     €€r"   ú	<genexpr>z&is_pandas_dataframe.<locals>.<genexpr>œ   sT   øè ø€ ò Vð ô —‘—‘ ¨TÓ2Ð	2ˆ¸4Ð?ò 	1Ü�r˜3Ÿ:™:×/Ñ/Ó0ó	1ñVùó   ƒAA)rZ   r'   rb   r   ÚanyÚIMPORT_HOOKS)rX   Úpdre   s   ` @r"   Úis_pandas_dataframerk   •   sP   ù€ ô ˜rÔ"Ü“<ÐˆR¨Ð,ÒM´¸BÀÇÁÓ1Mò ÔRUô Vô (ôVó Sð r!   c                óž   ‡ ‡— t        ‰ «       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.

    Warning:
        This method cannot be called on Narwhals Series.
    Nc              3  óª   •K  — | ]J  }t         j                  j                  |d «      xŠd uxr  t        ‰‰j                  j
                  «      –— ŒL y ­wra   )r   r   r   rb   r&   r   )rc   rd   re   r]   s     €€r"   rf   z#is_pandas_series.<locals>.<genexpr>ª   sT   øè ø€ ò Tð ô —‘—‘ ¨TÓ2Ð	2ˆ¸4Ð?ò 	/Ü�s˜CŸJ™J×-Ñ-Ó.ó	/ñTùrg   )r^   r'   rb   r   rh   ri   )r]   rj   re   s   ` @r"   Úis_pandas_seriesrn   £   sP   ù€ ô ˜SÔ!Ü“<Ðˆ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ra   )r   r   r   rb   r&   ÚIndex)rc   rd   Úindexre   s     €€r"   rf   z"is_pandas_index.<locals>.<genexpr>³   sT   øè ø€ ò Uð ô —‘—‘ ¨TÓ2Ð	2ˆ¸4Ð?ò 	0Ü�u˜cŸj™j×.Ñ.Ó/ó	0ñUùrg   )r'   rb   rq   rh   ri   )rr   rj   re   s   ` @r"   Úis_pandas_indexrs   ±   sF   ù€ ä“<ÐˆR¨Ð,ÒL´¸EÀ2Ç8Á8Ó1Lò ÔQTô Uô (ôUó Rð r!   c                ód   — t        | «       t        «       x}duxr 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)rZ   r)   rb   r   )rX   Úmpds     r"   Úis_modin_dataframerv   º   s.   € ô ˜rÔ"Ü“;ÐˆC tÐ+ÒM´
¸2¸s¿}¹}Ó0MÐMr!   c                ód   — t        | «       t        «       x}duxr 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)   rb   r   )r]   ru   s     r"   Úis_modin_seriesrx   Ä   s.   € ô ˜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)   rb   rq   )rr   ru   s     r"   Úis_modin_indexrz   Î   s$   € ä“;ÐˆC tÐ+ÒL´
¸5À#Ç)Á)Ó0LÐLr!   c                ód   — t        | «       t        «       x}duxr 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)rZ   r,   rb   r   )rX   r+   s     r"   Úis_cudf_dataframer|   Ó   s.   € ô ˜rÔ"Ü“JÐˆD tÐ+ÒN´
¸2¸t¿~¹~Ó0NÐNr!   c                ód   — t        | «       t        «       x}duxr 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,   rb   r   )r]   r+   s     r"   Úis_cudf_seriesr~   Ý   s.   € ô ˜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,   rb   rq   )rr   r+   s     r"   Úis_cudf_indexr€   ç   s+   € ä“JÐˆD tÐ+ò ´
Øˆt�z‰zó1ð r!   c                óp   — t        «       x}d uxr' t        | |j                  «      xr | j                  dk(  S )Né   )r0   rb   ÚndarrayÚsize)Úobjr/   s     r"   Úis_cupy_scalarr†   î   s9   € ä“Ð	ˆ DÐ(ò 	Ü�s˜DŸL™LÓ)ò	à�H‰H˜‰Mðr!   c                ód   — t        | «       t        «       x}duxr 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)rZ   r<   rb   r   )rX   rF   s     r"   Úis_dask_dataframerˆ   ö   s/   € ô ˜rÔ"Ü$Ó&Ð&ˆB¨tÐ3ÒT¼
À2ÀrÇ|Á|Ó8TÐTr!   c                ód   — t        | «       t        «       x}duxr 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)rZ   r?   rb   ÚDuckDBPyRelation)rX   r>   s     r"   Úis_duckdb_relationr‹      s7   € ô ˜rÔ"Ü “lÐ"ˆF¨4Ð/ò ´JØ
ˆF×#Ñ#ó5ð r!   c                óŒ   — t        | «       t        «       x}duxr* 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)rZ   rB   rb   ÚexprÚtypesÚTable)rX   rA   s     r"   Úis_ibis_tabler�     s8   € ô ˜rÔ"Ü“JÐˆD tÐ+ÒU´
¸2¸t¿y¹y¿¹×?TÑ?TÓ0UÐUr!   c                ód   — t        | «       t        «       x}duxr 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)rZ   r#   rb   r   ©rX   Úpls     r"   Úis_polars_dataframer”     ó.   € ô ˜rÔ"Ü“,ÐˆB tÐ+ÒL´
¸2¸r¿|¹|Ó0LÐLr!   c                ód   — t        | «       t        «       x}duxr 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)rZ   r#   rb   r   r’   s     r"   Úis_polars_lazyframer—      r•   r!   c                ód   — t        | «       t        «       x}duxr 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#   rb   r   )r]   r“   s     r"   Úis_polars_seriesr™   *  s.   € ô ˜SÔ!Ü“,ÐˆB tÐ+ÒJ´
¸3ÀÇ	Á	Ó0JÐJr!   c                óx   — t        t        «       x}«      xr$ t        |d«      xr t        | |j                  «      S )NÚSchema)Úboolr#   rE   rb   r›   ©r…   r“   s     r"   Úis_polars_schemarž   4  s2   € ä”:“<ÐˆRÓ ÒY¤W¨R°Ó%:ÒY¼zÈ#ÈrÏyÉyÓ?Yðr!   c                ó\   — t        t        «       x}«      xr t        | |j                  «      S ra   )rœ   r#   rb   ÚDataTyper�   s     r"   Úis_polars_data_typer¡   ;  s$   € Ü”j“lÐ"�Ó#ÒD¬
°3¸¿¹Ó(DÐDr!   c                ód   — t        | «       t        «       x}duxr 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^   r3   rb   ÚChunkedArray)r]   Úpas     r"   Úis_pyarrow_chunked_arrayr¥   ?  s.   € ô ˜SÔ!Ü“-ÐˆB¨Ð,ÒQ´¸CÀÇÁÓ1QÐQr!   c                ód   — t        | «       t        «       x}duxr 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)rZ   r3   rb   r�   )rX   r¤   s     r"   Úis_pyarrow_tabler§   I  s.   € ô ˜rÔ"Ü“-ÐˆB¨Ð,ÒI´¸BÀÇÁÓ1IÐIr!   c                óN   — t        «       x}d uxr t        | |j                  «      S ra   )r3   rb   ÚScalar©r…   r¤   s     r"   Úis_pyarrow_scalarr«   S  s$   € Ü“-ÐˆB¨Ð,ÒK´¸CÀÇÁÓ1KÐKr!   c                ó\   — t        t        «       x}«      xr t        | |j                  «      S ra   )rœ   r3   rb   r›   rª   s     r"   Úis_pyarrow_schemar­   W  s$   € Ü”k“mÐ#�Ó$ÒC¬°C¸¿¹Ó)CÐCr!   c                ó\   — t        t        «       x}«      xr t        | |j                  «      S ra   )rœ   r3   rb   r    rª   s     r"   Úis_pyarrow_data_typer¯   [  s$   € Ü”k“mÐ#�Ó$ÒE¬°C¸¿¹Ó)EÐEr!   c                óv   — t        | «       t        t        «       x}duxr 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)rZ   rœ   rL   rb   r   )rX   Úpyspark_sqls     r"   Úis_pyspark_dataframer²   _  s>   € ô ˜rÔ"ÜÜ'Ó)Ð	)ˆ°$Ð6ò 	2Ü�r˜;×0Ñ0Ó1óð r!   c                ór   — t        | «       t        «       �	 ddlm} t        | |«      S y# t        $ r Y yw xY w)z§Check whether `df` is a PySpark Connect DataFrame without importing PySpark.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    r   r   F)rZ   rN   Úpyspark.sql.connect.dataframer   ÚImportErrorrb   ©rX   r   s     r"   Úis_pyspark_connect_dataframer·   l  sC   € ô ˜rÔ"ÜÓÐ(ð	Ý?ô ˜"˜iÓ(Ð(Øøô ò 	Ùð	ús   —* ª	6µ6c                óR   — t        | «       t        «       �ddlm} t	        | |«      S y)z¡Check whether `df` is a SQLFrame DataFrame without importing SQLFrame.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    r   )ÚBaseDataFrameF)rZ   rQ   Úsqlframe.base.dataframer¹   rb   )rX   r¹   s     r"   Úis_sqlframe_dataframer»   |  s'   € ô ˜rÔ"Üƒ~Ð!Ý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   rb   rƒ   ©Ú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‚   ©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 ra   )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}xr3 t        | «      xr& |j                  | j                  |j                  «      S ra   )r7   rÅ   rÈ   rÉ   Úbool_r½   s     r"   Úis_numpy_array_1d_boolrÎ   œ  s9   € ä‹{Ð	ˆò 	/Ü˜cÓ"ò	/à�M‰M˜#Ÿ)™) R§X¡XÓ.ð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   rb   Úgeneric)Úscalarr¿   s     r"   Úis_numpy_scalarrÕ   ©  s&   € ô
 “+ÐˆB dÐ*ÒM¬z¸&À"Ç*Á*Ó/MÐMr!   c                ób   — t        | «       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.

    Warning:
        This method cannot be called on a Narwhals DataFrame/LazyFrame.
    )rZ   rk   rv   r|   )rX   s    r"   Úis_pandas_like_dataframer×   ±  s.   € ô ˜rÔ"Ü˜rÓ"ÒUÔ&8¸Ó&<ÒUÔ@QÐRTÓ@UÐUr!   c                ób   — t        | «       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.

    Warning:
        This method cannot be called on Narwhals Series.
    )r^   rn   rx   r~   ©r]   s    r"   Úis_pandas_like_seriesrÚ   ½  s+   € ô ˜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.
    )rs   rz   r€   )rr   s    r"   Úis_pandas_like_indexrÜ   É  s%   € ô 	˜ÓÒO¤.°Ó"7ÒO¼=ÈÓ;Oðr!   c                ó¬   — t        t        «       x}«      xr> t        | |j                  j                  j
                  t        «       j                  f«      S ra   )rœ   r'   rb   ÚapiÚ
extensionsÚExtensionDtyper7   rÉ   ©r…   rj   s     r"   Úis_pandas_like_dtyperâ   Ó  sD   € Ü”j“lÐ"�Ó#ò ¬
Øˆb�f‰f×Ñ×.Ñ.´	³×0AÑ0AÐBó)ð r!   c                ó    — t        t        «       x}«      xr8 t        | |j                  j                  j
                  «      xr t        | d«      S )NÚto_arrow)rœ   r'   rb   rÞ   rß   rà   rE   rá   s     r"   Úis_cudf_dtyperå   Ù  sF   € ô 	”:“<ÐˆRÓ ò 	%Ü�s˜RŸV™V×.Ñ.×=Ñ=Ó?ò	%ä�C˜Ó$ðr!   c                ó�   — ddl m} t        | |«      xs3 t        | d«      xs% t	        | «      xs t        | «      xs 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   rb   rE   r™   r¥   rÚ   )Únative_seriesr   s     r"   Úis_into_seriesrê   ã  sS   € õ. 'ô 	�= &Ó)ò 	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.

    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   rb   rE   r”   r§   r×   )Únative_dataframer   s     r"   Úis_into_dataframerï     sX   € õ. -ô 	Ð# 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   rb   r¶   s     r"   rT   rT   '  ó   € õ -ä�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   rb   )Úlfr   s     r"   rU   rU   5  rñ   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   rb   )r]   r   s     r"   r\   r\   C  s   € õ 'ä�c˜6Ó"Ð"r!   c                óP   — t        | «      xr | j                  j                  «       S ra   )r\   rÉ   Ú
is_integerrÙ   s    r"   Úis_narwhals_series_intr÷   O  s   € Ü˜cÓ"Ò= s§y¡y×';Ñ';Ó'=Ð=r!   c                óP   — t        | «      xr | j                  j                  «       S ra   )r\   rÉ   Ú
is_booleanrÙ   s    r"   Úis_narwhals_series_boolrú   S  s!   € ô ˜cÓ"Ò= s§y¡y×';Ñ';Ó'=Ð=r!   )r,   rB   r)   r7   r'   r#   r3   r|   r~   rˆ   r�   rï   rê   rv   rx   rT   rU   r\   rÀ   rk   rs   r×   rÚ   rn   r”   r—   r™   r¥   r§   )Úreturnr   )rX   r   rû   ÚNone)r]   r   rû   rü   )rX   r   rû   zTypeIs[pd.DataFrame])r]   r   rû   zTypeIs[pd.Series[Any]])rr   r   rû   zTypeIs[pd.Index[Any]])rX   r   rû   zTypeIs[mpd.DataFrame])r]   r   rû   zTypeIs[mpd.Series])rr   r   rû   zTypeIs[mpd.Index[Any]])rX   r   rû   zTypeIs[cudf.DataFrame])r]   r   rû   zTypeIs[cudf.Series[Any]])rr   r   rû   zTypeIs[cudf.Index])r…   r   rû   rœ   )rX   r   rû   zTypeIs[dd.DataFrame])rX   r   rû   zTypeIs[duckdb.DuckDBPyRelation])rX   r   rû   zTypeIs[ibis.Table])rX   r   rû   zTypeIs[pl.DataFrame])rX   r   rû   zTypeIs[pl.LazyFrame])r]   r   rû   zTypeIs[pl.Series])r…   r   rû   zTypeIs[pl.Schema])r…   r   rû   zTypeIs[pl.DataType])r]   r   rû   zTypeIs[pa.ChunkedArray[Any]])rX   r   rû   zTypeIs[pa.Table])r…   r   rû   zTypeIs[pa.Scalar[Any]])r…   r   rû   zTypeIs[pa.Schema])r…   r   rû   zTypeIs[pa.DataType])rX   r   rû   zTypeIs[pyspark_sql.DataFrame])rX   r   rû   zTypeIs[PySparkConnectDataFrame])rX   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])rX   r   rû   rœ   )r]   r   rû   rœ   )rr   r   rû   rœ   )r…   r   rû   zTypeIs[PandasLikeDType])r…   r   rû   z(TypeIs[pd.api.extensions.ExtensionDtype])ré   zAny | IntoSeriesTrû   zTypeIs[IntoSeriesT])rî   zAny | IntoDataFrameTrû   zTypeIs[IntoDataFrameT])rX   zDataFrame[IntoDataFrameT] | Anyrû   z!TypeIs[DataFrame[IntoDataFrameT]])ró   zAny | LazyFrame[IntoLazyFrameT]rû   z!TypeIs[LazyFrame[IntoLazyFrameT]])r]   zAny | Series[IntoSeriesT]rû   zTypeIs[Series[IntoSeriesT]])qÚ
__future__r   r   Útypingr   r   Únarwhals._exceptionsr   r+   Údask.dataframeÚ	dataframerF   r>   rA   Úmodin.pandasr&   ru   rj   r   r“   r2   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   Ú	frozensetri   r#   r'   r)   r,   r0   r3   r7   r:   r<   r?   rB   rG   rJ   rL   rN   rQ   rZ   r^   rk   rn   rs   rv   rx   rz   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ï   rT   rU   r\   r÷   rú   Ú__all__r    r!   r"   ú<module>r     sð  ðõ #ã 
ß %å .áÛÝÛÛÝÛÛÛÝ%ÝRß3å@ß7Ý&÷÷ ÷ ñ" ˜+˜Ó'€ó+ó
+ó
1ó
)ó
)ó
,ó
*ó
)ó
3ó
+ó
)ó
.ó,ó
0ó
8ó
-ó
(ó(óóóóNóLóMó
OóMóóóUó	óVóMóMóKóóEóRóJóLóDóFó
óó óKó
1ó
óó1ó
Nó	Vó	PóóðØ	ðà-óóóDðD%Ø'ð%à&ó%ð%Ø'ð%à&ó%ó	#ó>ð>Ø	"ð>à ó>ò�r!   