
    Wh7                    B   U d 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 ddlmZmZ ddlmZ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 erddlmZm Z  ddlm!Z! dd	l"Z"dd	l#Z$dd	l%Z&dd	l'Z(dd
l)m*Z*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG ddlHmIZImJZJmKZK  e	d      ZLdZMdeNd<   dZOdeNd<   eZPdeNd<    G d de e      ZQ G d deIeQe      ZR G d  d!eKeQe      ZS G d" d#eJe      ZT G d$ d%eRe      ZU G d& d'eSe      ZV G d( d)e      ZW G d* d+eRe      ZX G d, d-eSe      ZY G d. d/eJe      ZZd0Z[deNd1<   d2Z\deNd3<   d4Z]deNd5<   d6Z^deNd7<   d8Z_deNd9<   d:Z`deNd;<   d<ZadeNd=<   d>ZbdeNd?<   d@ZcdeNdA<   dBZddeNdC<   eZZedeNdD<   eZZfdeNdE<   dFZgdeNdG<   dHZhdeNdI<   dJZideNdK<   dLZjdeNdM<   dNgZk G dO dNee         Zld_dPZmd`dQZndadRZoeZpdSeNdT<   eZqdUeNdV<    e
dWe      Zr e
dXe      ZsdbdYZtdcdZZuddd[Zvded\Zwdfd]Zxdgd^Zyy	)hz2Narwhals-level equivalent of `CompliantNamespace`.    )annotations)TYPE_CHECKINGAnyCallableGenericProtocolTypeVarcastoverload)CompliantNamespaceAnyCompliantNamespaceT_co)ImplementationVersion)get_cudf	get_modin
get_pandas
get_polarsget_pyarrowis_dask_dataframeis_duckdb_relationis_ibis_tableis_pyspark_connect_dataframeis_pyspark_dataframeis_sqlframe_dataframe)
CollectionSized)ClassVarN)Self	TypeAliasTypeIsArrowNamespaceDaskNamespaceDuckDBNamespaceIbisNamespacePandasLikeNamespacePolarsNamespace)SQLFrameDataFrameSparkLikeNamespace)
ArrowBackendDaskDuckDBEagerAllowedIbisIntoBackend
PandasLikePolars	SparkLike)NativeDataFrameNativeLazyFrameNativeSeriesTzCallable[[Any], TypeIs[T]]r   _GuardzWNamespace[PandasLikeNamespace] | Namespace[ArrowNamespace] | Namespace[PolarsNamespace]EagerAllowedNamespace
Incompletec                  x    e Zd ZU ded<   	 ddZddZddZedd       Zedd       Z	ddd	dd
Z
dddZddZy)_BasePandasLiker   indexc                    y N )selfkeys     M/var/www/html/jupyter_env/lib/python3.12/site-packages/narwhals/_namespace.py__getitem__z_BasePandasLike.__getitem__K           c                    y rE   rF   rG   others     rI   __mul__z_BasePandasLike.__mul__L   rK   rL   c                    y rE   rF   rN   s     rI   __floordiv__z_BasePandasLike.__floordiv__M   rK   rL   c                     y rE   rF   rG   s    rI   locz_BasePandasLike.locN   s    !rL   c                     y rE   rF   rT   s    rI   shapez_BasePandasLike.shapeP   s    ,/rL   .)axiscopyc                    y rE   rF   )rG   labelsrX   rY   s       rI   set_axisz_BasePandasLike.set_axisR   rK   rL   c                     y rE   rF   )rG   deeps     rI   rY   z_BasePandasLike.copyS   rK   rL   c                     y)z`mypy` & `pyright` disagree on overloads.

            `Incomplete` used to fix [more important issue](https://github.com/narwhals-dev/narwhals/pull/3016#discussion_r2296139744).
            NrF   rG   argskwdss      rI   renamez_BasePandasLike.renameT   rK   rL   N)rH   r   returnr   )rO   z float | Collection[float] | Selfrd   r   )rd   r   )rd   ztuple[int, ...])r[   r   rX   r   rY   boolrd   r   .)r^   re   rd   r   )ra   r   rb   r   rd   Self | Incomplete)__name__
__module____qualname____annotations__rJ   rP   rR   propertyrU   rW   r\   rY   rc   rF   rL   rI   rB   rB   G   s?    
O6RW	! 
!	/ 
/7:Z5	rL   rB   c                      e Zd Zy)_BasePandasLikeFrameN)rh   ri   rj   rF   rL   rI   rn   rn   Z   s    rL   rn   c                      e Zd ZdddZy)_BasePandasLikeSeriesc                    y rE   rF   )rG   condrO   s      rI   wherez_BasePandasLikeSeries.where]   rK   rL   Nrf   )rr   r   rO   r   rd   rg   )rh   ri   rj   rs   rF   rL   rI   rp   rp   \   s    QrL   rp   c                      e Zd ZU ded<   y)_NativeDasktype[pd.DataFrame]_partition_typeNrh   ri   rj   rk   rF   rL   rI   ru   ru   _   s    ++rL   ru   c                      e Zd ZddZy)_CuDFDataFramec                     y rE   rF   r`   s      rI   to_pylibcudfz_CuDFDataFrame.to_pylibcudfc   rK   rL   Nra   r   rb   r   rd   r   rh   ri   rj   r|   rF   rL   rI   rz   rz   b       CrL   rz   c                      e Zd ZddZy)_CuDFSeriesc                     y rE   rF   r`   s      rI   r|   z_CuDFSeries.to_pylibcudff   rK   rL   Nr}   r~   rF   rL   rI   r   r   e   r   rL   r   c                  ,    e Zd ZddZddZddZddZy)_NativeIbisc                     y rE   rF   r`   s      rI   sqlz_NativeIbis.sqli   rK   rL   c                     y rE   rF   r`   s      rI   __pyarrow_result__z_NativeIbis.__pyarrow_result__j   rK   rL   c                     y rE   rF   r`   s      rI   __pandas_result__z_NativeIbis.__pandas_result__k   rK   rL   c                     y rE   rF   r`   s      rI   __polars_result__z_NativeIbis.__polars_result__l   rK   rL   Nr}   )rh   ri   rj   r   r   r   r   rF   rL   rI   r   r   h   s    :IHHrL   r   c                      e Zd ZU ded<   y)_ModinDataFramerv   _pandas_classNrx   rF   rL   rI   r   r   n   s    ))rL   r   c                      e Zd ZU ded<   y)_ModinSeriesztype[pd.Series[Any]]r   Nrx   rF   rL   rI   r   r   q   s    ++rL   r   c                      e Zd ZddZy)_PySparkDataFramec                     y rE   rF   )rG   argkwargss      rI   dropDuplicatesWithinWatermarkz/_PySparkDataFrame.dropDuplicatesWithinWatermarkx   rK   rL   N)r   r   r   r   rd   r   )rh   ri   rj   r   rF   rL   rI   r   r   u   s     	VrL   r   z'pl.DataFrame | pl.LazyFrame | pl.Series_NativePolarszpa.Table | pa.ChunkedArray[Any]_NativeArrowzduckdb.DuckDBPyRelation_NativeDuckDBzpd.DataFrame | pd.Series[Any]_NativePandasz_ModinDataFrame | _ModinSeries_NativeModinz_CuDFDataFrame | _CuDFSeries_NativeCuDFz+pd.Series[Any] | _CuDFSeries | _ModinSeries_NativePandasLikeSeriesz/pd.DataFrame | _CuDFDataFrame | _ModinDataFrame_NativePandasLikeDataFramez3_NativePandasLikeDataFrame |_NativePandasLikeSeries_NativePandasLiker-   _NativeSQLFrame_NativePySpark_NativePySparkConnectz8_NativeSQLFrame | _NativePySpark | _NativePySparkConnect_NativeSparkLikezo_NativePolars | _NativeArrow | _NativePandasLike | _NativeSparkLike | _NativeDuckDB | _NativeDask | _NativeIbisNativeKnownz0NativeDataFrame | NativeSeries | NativeLazyFrameNativeUnknownzNativeKnown | NativeUnknown	NativeAny	Namespacec                  H    e Zd ZU ded<   ej
                  Zded<   d!dZd" fdZd#dZ	e
d$d       Ze
d%d	       Ze
d&d
       Zeed'd              Zeed(d              Zeed)d              Zeed*d              Zeed+d              Zeed,d              Zeed-d              Zeed.d              Zee	 	 	 	 d/d              Ze	 	 	 	 	 	 d0d       Zee	 	 	 	 d1d              Zee	 	 	 	 d2d              Zeed3d              Zee	 	 	 	 d4d              Zee	 	 	 	 d5d              Zeed6d              Zeed7d              Zee	 	 	 	 d8d              Zee	 	 	 	 d9d              Zee	 	 	 	 d:d              Zee	 	 	 	 d;d              Ze	 	 	 	 	 	 d<d        Z xZS )=r   r   _compliant_namespacezClassVar[Version]_versionc                   || _         y rE   r   )rG   	namespaces     rI   __init__zNamespace.__init__   s
    $-!rL   c                   t        |   |i | t        |t              r|| _        y dt         dt        |      j                  }t        |      )Nz	Expected z	 but got )super__init_subclass__
isinstancer   r   typerh   	TypeError)clsversionra   rb   msg	__class__s        rI   r   zNamespace.__init_subclass__   sM    !4040gw'"CLgYiW0F0F/IJCC. rL   c                H    dt        | j                        j                   dS )Nz
Namespace[])r   	compliantrh   rT   s    rI   __repr__zNamespace.__repr__   s!    D099:!<<rL   c                    | j                   S rE   r   rT   s    rI   r   zNamespace.compliant   s    (((rL   c                .    | j                   j                  S rE   )r   _implementationrT   s    rI   implementationzNamespace.implementation   s    ~~---rL   c                    | j                   S rE   )r   rT   s    rI   r   zNamespace.version   s    }}rL   c                    y rE   rF   r   backends     rI   from_backendzNamespace.from_backend       UXrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_backend       MPrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_backend   s    KNrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_backend   s    SVrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_backend   r   rL   c                    y rE   rF   r   s     rI   r   zNamespace.from_backend       ILrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_backend   r   rL   c                    y rE   rF   r   s     rI   r   zNamespace.from_backend   s    NQrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_backend        ,/rL   c               R   t        j                  |      }|j                         }| j                  }|j	                         rddlm}  |||      }n|j                         rddlm	}  ||      }n|j                         rddlm}  ||      }n|j                         rddlm}	  |	||      }nm|j!                         rddlm}
  |
|      }nM|j'                         rdd	lm}  ||      }n-|j-                         rdd
lm}  ||      }nd}t3        |       | |      S )aO  Instantiate from native namespace module, string, or Implementation.

        Arguments:
            backend: native namespace module, string, or Implementation.

        Examples:
            >>> from narwhals._namespace import Namespace
            >>> Namespace.from_backend("polars")
            Namespace[PolarsNamespace]
        r   r)   )r   r   r+   )r   r!   r.   r%   r#   r'   zNot supported Implementation)r   r   _backend_versionr   is_pandas_likenarwhals._pandas_like.namespacer*   	is_polarsnarwhals._polars.namespacer,   
is_pyarrownarwhals._arrow.namespacer"   is_spark_likenarwhals._spark_like.namespacer/   	is_duckdbnarwhals._duckdb.namespacer&   is_dasknarwhals._dask.namespacer$   is_ibisnarwhals._ibis.namespacer(   AssertionError)r   r   implbackend_versionr   r*   nsr,   r"   r/   r&   r$   r(   r   s                 rI   r   zNamespace.from_backend   s     **73//1,, K$D'JB^^B 1B__@0B!I#4IB^^B 1B\\^>w/B\\^>w/B0C %%2wrL   c                    y rE   rF   r   natives     rI   from_native_objectzNamespace.from_native_object       &)rL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object  s	     HKrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object  s    WZrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object  s     ),rL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object"  r   rL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object(  r   rL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object,  r   rL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object0  s	     ILrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object6  s	     GJrL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_object<  s     47rL   c                    y rE   rF   r   s     rI   r   zNamespace.from_native_objectB  r   rL   c                  t        |      rt        j                  }n;t        |      rt        j                  }nt        |      rt        j                  }nt        |      rGt        |      rt        j                  n*t        |      rt        j                  nt        j                  }nt        |      rt        j                  }nt        |      rt        j                   }nwt#        |      rt        j$                  }n[t'        |      rt        j(                  }n?t+        |      rt        j,                  }n#dt/        |      j0                  }t3        |      | j5                  |      S )NzUnsupported type: )is_native_polarsr   POLARSis_native_pandasPANDASis_native_arrowPYARROWis_native_spark_likeis_native_sqlframeSQLFRAMEis_native_pyspark_connectPYSPARK_CONNECTPYSPARKis_native_daskDASKis_native_duckdbDUCKDBis_native_cudfCUDFis_native_modinMODINis_native_ibisIBISr   rj   r   r   )r   r   r   r   s       rI   r   zNamespace.from_native_objectH  s   
 F#!((Df%!((DV$!))D!&) &f- '' -V4 $33#++  F#!&&Df%!((DF#!&&DV$!''DF#!&&D&tF|'@'@&CDCC. %%rL   )r   r   rd   None)ra   r   r   r   rb   r   rd   r  )rd   str)rd   r   )rd   r   )rd   r   )r   r7   rd   zNamespace[PandasLikeNamespace])r   r8   rd   Namespace[PolarsNamespace])r   r0   rd   Namespace[ArrowNamespace])r   r9   rd   Namespace[SparkLikeNamespace])r   r3   rd   Namespace[DuckDBNamespace])r   r2   rd   Namespace[DaskNamespace])r   r5   rd   Namespace[IbisNamespace])r   r4   rd   r?   )r   IntoBackend[Backend]rd    Namespace[CompliantNamespaceAny])r   type[Namespace[Any]]r   r  rd   Namespace[Any])r   r   rd   r  )r   r   rd   z<Namespace[PandasLikeNamespace[pd.DataFrame, pd.Series[Any]]])r   r   rd   r  )r   r   rd   r  )r   r   rd   r  )r   ru   rd   r  )r   r   rd   r  )r   r   rd   z=Namespace[PandasLikeNamespace[_ModinDataFrame, _ModinSeries]])r   r   rd   z;Namespace[PandasLikeNamespace[_CuDFDataFrame, _CuDFSeries]])r   r   rd   z(Namespace[PandasLikeNamespace[Any, Any]])r   r   rd   r  )r   r  r   r   rd   r  )rh   ri   rj   rk   r   MAINr   r   r   r   rl   r   r   r   r   classmethodr   r   __classcell__)r   s   @rI   r   r      sF   00"),,H..!= ) ) . .   X  XP  PN  NV  VP  PL  LL  LQ  Q/*/	)/  / 1!1,@1	1 1f )")	#)  ) K"K	EK  K Z  Z,%,	&,  , )")	#)  ) X  XX  XL!L	FL  L J J	DJ  J 7&7	17  7 /"/	)/  / &!&+4&	& &rL   c                |    t               x}d uxr- t        | |j                  |j                  |j                  f      S rE   )r   r   	DataFrameSeries	LazyFrame)objpls     rI   r   r   k  s:    ,Bt+ 
bllBIIr||41 rL   c                f    t               x}d uxr" t        | |j                  |j                  f      S rE   )r   r   TableChunkedArray)r   pas     rI   r   r   q  s4    -B, bhh(2 rL   c                    t        |       S rE   )r   r   s    rI   r  r  w  s    S!!rL   z_Guard[_NativeDuckDB]r  z_Guard[_NativeSQLFrame]r   z_Guard[_NativePySpark]z_Guard[_NativePySparkConnect]c                f    t               x}d uxr" t        | |j                  |j                  f      S rE   )r   r   r  r  )r   pds     rI   r   r     s-    ,Bt+Z
3ryy@Y0ZZrL   c                f    t               x}d uxr" t        | |j                  |j                  f      S rE   )r   r   r  r  )r   mpds     rI   r	  r	    s4    ;Ct+ 
cmmSZZ(1 rL   c                f    t               x}d uxr" t        | |j                  |j                  f      S rE   )r   r   r  r  )r   cudfs     rI   r  r    s4    JDt+ 
dnndkk*1 rL   c                L    t        |       xs t        |       xs t        |       S rE   )r   r  r	  r'  s    rI   is_native_pandas_liker/    s#    L!4L8LrL   c                L    t        |       xs t        |       xs t        |       S rE   )r   is_native_pysparkr   r'  s    rI   r   r     s)    3 	*S!	*$S)rL   c                    t        |       S rE   )r   r'  s    rI   r  r    s    rL   )r   r   rd   zTypeIs[_NativePolars])r   r   rd   zTypeIs[_NativeArrow])r   r   rd   zTypeIs[_NativeDask])r   r   rd   zTypeIs[_NativePandas])r   r   rd   zTypeIs[_NativeModin])r   r   rd   zTypeIs[_NativeCuDF])r   r   rd   zTypeIs[_NativePandasLike])r   r   rd   zTypeIs[_NativeSparkLike])r   r   rd   zTypeIs[_NativeIbis])z__doc__
__future__r   typingr   r   r   r   r   r	   r
   r   narwhals._compliant.typingr   r   narwhals._utilsr   r   narwhals.dependenciesr   r   r   r   r   r   r   r   r   r   r   collections.abcr   r   r   duckdbpandasr)  polarsr!  pyarrowr%  typing_extensionsr   r   r    r   r"   r   r$   r   r&   r   r(   r   r*   r   r,   narwhals._spark_like.dataframer-   r   r/   narwhals._typingr0   r1   r2   r3   r4   r5   r6   r7   r8   r9   narwhals.typingr:   r;   r<   r=   r>   rk   r?   r@   rB   rn   rp   ru   rz   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   r  r  r   r1  r   r   r	  r  r/  r   r  rF   rL   rI   <module>rC     s   8 "	 	 	 U 3    19986:6C:@A   ONA4FI4 (A9  AJ	% & PORox R,ox ,D-x DD+X DIh I*. *,,h ,VOX V
  IM9H?L)?8M98>M9>>L)>;K;)VYV9 	  $YyX!4OY4 1NI1'898B i  OK  OQM9Q8Iy8-U&./ U&p" += ' <.C + C13GH  #%A 
[rL   