
    hh                    B   d dl mZ d dlZd dlmZmZ er&d dlZd dlm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mZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d(d
Z&d)dZ'd*dZ(d+dZ)d,dZ*d-dZ+d.dZ,d/dZ-d0dZ.d1dZ/d2dZ0d3d!Z1d4d#Z2d5d%Z3d6d&Z4g d'Z5dS )7    )annotationsN)TYPE_CHECKINGAny)TypeIs)IMPORT_HOOKSget_cudfget_dask_dataframeget_ibis	get_modin	get_numpy
get_pandas
get_polarsget_pyarrowis_into_dataframeis_into_seriesis_narwhals_dataframeis_narwhals_lazyframeis_narwhals_seriesis_numpy_arrayis_pandas_indexdfr   returnTypeIs[pd.DataFrame]c                     t                      x}durt           |j                  p t           fdt          D                       S )zBCheck whether `df` is a pandas DataFrame without importing pandas.Nc              3     K   | ]B}t           j                            |d           xd uot          j        j                  V  Cd S N)sysmodulesget
isinstancepandas	DataFrame).0module_namer   mods     V/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/stable/v1/dependencies.py	<genexpr>z&is_pandas_dataframe.<locals>.<genexpr>'   sr       V V  T22	24? 	1r3:/00V V V V V V    )r   r    r"   anyr   )r   pdr%   s   ` @r&   is_pandas_dataframer+   %   st    <<R,MB1M1M RU V V V V V (V V V S S r(   serTypeIs[pd.Series[Any]]c                     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.Nc              3     K   | ]B}t           j                            |d           xd uot          j        j                  V  Cd S r   )r   r   r   r    r!   Series)r#   r$   r%   r,   s     r&   r'   z#is_pandas_series.<locals>.<genexpr>0   sr       T T  T22	24? 	/sCJ-..T T T T T Tr(   )r   r    r0   r)   r   )r,   r*   r%   s   ` @r&   is_pandas_seriesr1   .   st    <<R,KC1K1K PS T T T T T (T T T Q Q r(   TypeIs[mpd.DataFrame]c                P    t                      x}duot          | |j                  S )z@Check whether `df` is a modin DataFrame without importing modin.N)r   r    r"   )r   mpds     r&   is_modin_dataframer5   7   s'    ;;Ct+M
2s}0M0MMr(   TypeIs[mpd.Series]c                P    t                      x}duot          | |j                  S )z>Check whether `ser` is a modin Series without importing modin.N)r   r    r0   )r,   r4   s     r&   is_modin_seriesr8   <   s'    ;;Ct+K
3
0K0KKr(   TypeIs[cudf.DataFrame]c                P    t                      x}duot          | |j                  S )z>Check whether `df` is a cudf DataFrame without importing cudf.N)r   r    r"   )r   cudfs     r&   is_cudf_dataframer<   A   s'    JJDt+N
2t~0N0NNr(   TypeIs[cudf.Series[Any]]c                P    t                      x}duot          | |j                  S )z<Check whether `ser` is a cudf Series without importing cudf.N)r   r    r0   )r,   r;   s     r&   is_cudf_seriesr?   F   s'    JJDt+L
30L0LLr(   TypeIs[dd.DataFrame]c                P    t                      x}duot          | |j                  S )z>Check whether `df` is a Dask DataFrame without importing Dask.N)r	   r    r"   )r   dds     r&   is_dask_dataframerC   K   s)    $&&&Bt3T
2r|8T8TTr(   TypeIs[ibis.Table]c                d    t                      x}duot          | |j        j        j                  S )z:Check whether `df` is a Ibis Table without importing Ibis.N)r
   r    exprtypesTable)r   ibiss     r&   is_ibis_tablerJ   P   s,    JJDt+U
2ty?T0U0UUr(   TypeIs[pl.DataFrame]c                P    t                      x}duot          | |j                  S )zBCheck whether `df` is a Polars DataFrame without importing Polars.N)r   r    r"   r   pls     r&   is_polars_dataframerO   U   '    ,,Bt+L
2r|0L0LLr(   TypeIs[pl.LazyFrame]c                P    t                      x}duot          | |j                  S )zBCheck whether `df` is a Polars LazyFrame without importing Polars.N)r   r    	LazyFramerM   s     r&   is_polars_lazyframerT   Z   rP   r(   TypeIs[pl.Series]c                P    t                      x}duot          | |j                  S )z@Check whether `ser` is a Polars Series without importing Polars.N)r   r    r0   )r,   rN   s     r&   is_polars_seriesrW   _   s'    ,,Bt+J
3	0J0JJr(   TypeIs[pa.ChunkedArray[Any]]c                P    t                      x}duot          | |j                  S )zHCheck whether `ser` is a PyArrow ChunkedArray without importing PyArrow.N)r   r    ChunkedArray)r,   pas     r&   is_pyarrow_chunked_arrayr\   d   s'    --B,QC1Q1QQr(   TypeIs[pa.Table]c                P    t                      x}duot          | |j                  S )z@Check whether `df` is a PyArrow Table without importing PyArrow.N)r   r    rH   )r   r[   s     r&   is_pyarrow_tabler_   i   s'    --B,IB1I1IIr(   boolc                \    t          |           pt          |           pt          |           S )zCheck whether `df` is a pandas-like DataFrame without doing any imports.

    By "pandas-like", we mean: pandas, Modin, cuDF.
    )r+   r5   r<   )r   s    r&   is_pandas_like_dataframerb   n   s/    
 r""U&8&<&<U@QRT@U@UUr(   c                \    t          |           pt          |           pt          |           S )zCheck whether `ser` is a pandas-like Series without doing any imports.

    By "pandas-like", we mean: pandas, Modin, cuDF.
    )r1   r8   r?   )r,   s    r&   is_pandas_like_seriesrd   v   s,    
 C  OOC$8$8ON3<O<OOr(   )r   r
   r   r   r   r   r   r<   r?   rC   rJ   r   r   r5   r8   r   r   r   r   r+   r   rb   rd   r1   rO   rT   rW   r\   r_   )r   r   r   r   )r,   r   r   r-   )r   r   r   r2   )r,   r   r   r6   )r   r   r   r9   )r,   r   r   r=   )r   r   r   r@   )r   r   r   rD   )r   r   r   rK   )r   r   r   rQ   )r,   r   r   rU   )r,   r   r   rX   )r   r   r   r]   )r   r   r   r`   )r,   r   r   r`   )6
__future__r   r   typingr   r   r;   dask.dataframe	dataframerB   rI   modin.pandasr!   r4   r*   polarsrN   pyarrowr[   typing_extensionsr   narwhals.dependenciesr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r+   r1   r5   r8   r<   r?   rC   rJ   rO   rT   rW   r\   r_   rb   rd   __all__ r(   r&   <module>rp      s   " " " " " " 



 % % % % % % % % )KKKKKK((((((                                   (      N N N N
L L L L
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
R R R R
J J J J
V V V VP P P P  r(   