
    /_i!                       U d Z ddlmZ ddlmZmZmZ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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l(m)Z)m*Z* erSddl+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ZHdeId<   dgZJ G d dee         ZKy)z2Narwhals-level equivalent of `CompliantNamespace`.    )annotations)TYPE_CHECKINGAnyClassVarGenericoverload)CompliantNamespaceAnyCompliantNamespaceT_co)	NativeAnyNativeArrow
NativeCuDF
NativeDaskNativeDuckDB
NativeIbisNativeModinNativePandasNativePandasLikeNativePolarsNativeSparkLikeNativeUnknown_CuDFDataFrame_CuDFSeries_ModinDataFrame_ModinSeriesis_native_arrowis_native_cudfis_native_daskis_native_duckdbis_native_ibisis_native_modinis_native_pandasis_native_polarsis_native_pyspark_connectis_native_spark_likeis_native_sqlframe)ImplementationVersionN)	TypeAliasArrowNamespaceDaskNamespaceDuckDBNamespaceIbisNamespacePandasLikeNamespacePolarsNamespaceSparkLikeNamespace)
ArrowBackendDaskDuckDBEagerAllowedIbisIntoBackend
PandasLikePolars	SparkLikezWNamespace[PandasLikeNamespace] | Namespace[ArrowNamespace] | Namespace[PolarsNamespace]r(   EagerAllowedNamespace	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 )=rB   r
   _compliant_namespacezClassVar[Version]_versionc                   || _         y NrD   )self	namespaces     R/var/www/html/land_sniper/venv/lib/python3.12/site-packages/narwhals/_namespace.py__init__zNamespace.__init__H   s
    $-!    c                   t        |   |i | t        |t              r|| _        y dt         dt        |      j                  }t        |      )Nz	Expected z	 but got )super__init_subclass__
isinstancer'   rE   type__name__	TypeError)clsversionargskwdsmsg	__class__s        rK   rP   zNamespace.__init_subclass__K   sM    !4040gw'"CLgYiW0F0F/IJCC. rM   c                H    dt        | j                        j                   dS )Nz
Namespace[])rR   	compliantrS   rI   s    rK   __repr__zNamespace.__repr__T   s!    D099:!<<rM   c                    | j                   S rG   rH   r^   s    rK   r]   zNamespace.compliantW   s    (((rM   c                .    | j                   j                  S rG   )r]   _implementationr^   s    rK   implementationzNamespace.implementation[   s    ~~---rM   c                    | j                   S rG   )rE   r^   s    rK   rV   zNamespace.version_   s    }}rM   c                    y rG    rU   backends     rK   from_backendzNamespace.from_backendc   s    UXrM   c                    y rG   rf   rg   s     rK   ri   zNamespace.from_backendg       MPrM   c                    y rG   rf   rg   s     rK   ri   zNamespace.from_backendk   s    KNrM   c                    y rG   rf   rg   s     rK   ri   zNamespace.from_backendo   s    SVrM   c                    y rG   rf   rg   s     rK   ri   zNamespace.from_backends   rk   rM   c                    y rG   rf   rg   s     rK   ri   zNamespace.from_backendw       ILrM   c                    y rG   rf   rg   s     rK   ri   zNamespace.from_backend{   rp   rM   c                    y rG   rf   rg   s     rK   ri   zNamespace.from_backend   s    NQrM   c                    y rG   rf   rg   s     rK   ri   zNamespace.from_backend        ,/rM   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   r1   )rc   rV   r3   )rV   r)   r5   r-   r+   r/   zNot supported Implementation)r&   ri   _backend_versionrE   is_pandas_likenarwhals._pandas_like.namespacer2   	is_polarsnarwhals._polars.namespacer4   
is_pyarrownarwhals._arrow.namespacer*   is_spark_likenarwhals._spark_like.namespacer6   	is_duckdbnarwhals._duckdb.namespacer.   is_dasknarwhals._dask.namespacer,   is_ibisnarwhals._ibis.namespacer0   AssertionError)rU   rh   implbackend_versionrV   r2   nsr4   r*   r6   r.   r,   r0   rY   s                 rK   ri   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rM   c                    y rG   rf   rU   natives     rK   from_native_objectzNamespace.from_native_object        &)rM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   s	     HKrM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   s    VYrM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   s     ),rM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   r   rM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object       TWrM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   r   rM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   s	     ILrM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   s	     GJrM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   s     47rM   c                    y rG   rf   r   s     rK   r   zNamespace.from_native_object   rt   rM   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: )r"   r&   POLARSr!   PANDASr   PYARROWr$   r%   SQLFRAMEr#   PYSPARK_CONNECTPYSPARKr   DASKr   DUCKDBr   CUDFr    MODINr   IBISrR   __qualname__rT   ri   )rU   r   r   rY   s       rK   r   zNamespace.from_native_object   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. %%rM   )rJ   r
   returnNone)rW   r   rV   r'   rX   r   r   r   )r   str)r   r
   )r   r&   )r   r'   )rh   r>   r   zNamespace[PandasLikeNamespace])rh   r?   r   Namespace[PolarsNamespace])rh   r7   r   Namespace[ArrowNamespace])rh   r@   r   Namespace[SparkLikeNamespace])rh   r:   r   Namespace[DuckDBNamespace])rh   r9   r   Namespace[DaskNamespace])rh   r<   r   Namespace[IbisNamespace])rh   r;   r   rA   )rh   IntoBackend[Backend]r    Namespace[CompliantNamespaceAny])rU   type[Namespace[Any]]rh   r   r   Namespace[Any])r   r   r   r   )r   r   r   z<Namespace[PandasLikeNamespace[pd.DataFrame, pd.Series[Any]]])r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   z=Namespace[PandasLikeNamespace[_ModinDataFrame, _ModinSeries]])r   r   r   z;Namespace[PandasLikeNamespace[_CuDFDataFrame, _CuDFSeries]])r   r   r   z(Namespace[PandasLikeNamespace[Any, Any]])r   r   r   r   )rU   r   r   r   r   r   )rS   
__module__r   __annotations__r'   MAINrE   rL   rP   r_   propertyr]   rc   rV   r   classmethodri   r   __classcell__)rZ   s   @rK   rB   rB   D   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 Y  Y,$,	&,  , )!)	#)  ) W  WW  WL L	FL  L JJ	DJ  J 7%7	17  7 /"/	)/  / &!&+4&	& &rM   )L__doc__
__future__r   typingr   r   r   r   r   narwhals._compliant.typingr	   r
   narwhals._nativer   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%   narwhals._utilsr&   r'   pandaspdtyping_extensionsr(   r|   r*   r   r,   r   r.   r   r0   rx   r2   rz   r4   r~   r6   narwhals._typingr7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   r   __all__rB   rf   rM   rK   <module>r      s    8 " B B T       : 4+86:6C:A   (A9  A-U&./ U&rM   