o
    $&]i!                     @  s  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rd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ZJG dd dee ZKdS )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                      s  e Zd ZU ded< ejZded< dZdd	Zd[ fddZd\ddZ	e
d]ddZe
d^ddZe
d_ddZeed`ddZeedad"dZeedbd%dZeedcd(dZeeddd+dZeeded.dZeedfd1dZeedgd4dZeedhd7dZedid;dZeedjd>d?ZeedkdBd?ZeedldDd?ZeedmdFd?ZeedndHd?ZeedodJd?ZeedpdLd?ZeedqdOd?ZeedrdRd?ZeedsdUd?ZeedtdWd?ZedudYd?Z  ZS )vrA   r	   _compliant_namespacezClassVar[Version]_version	namespacereturnNonec                C  s
   || _ d S NrB   )selfrD    rJ   Q/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/narwhals/_namespace.py__init__H   s   
zNamespace.__init__argsr   versionr&   kwdsc                  sD   t  j|i | t|tr|| _d S dt dt|j}t|)Nz	Expected z	 but got )super__init_subclass__
isinstancer&   rC   type__name__	TypeError)clsrN   rM   rO   msg	__class__rJ   rK   rQ   K   s
   

zNamespace.__init_subclass__strc                 C  s   dt | jj dS )Nz
Namespace[])rS   	compliantrT   rI   rJ   rJ   rK   __repr__T   s   zNamespace.__repr__c                 C     | j S rG   rH   r]   rJ   rJ   rK   r\   W      zNamespace.compliantr%   c                 C  s   | j jS rG   )r\   _implementationr]   rJ   rJ   rK   implementation[   s   zNamespace.implementationc                 C  r_   rG   )rC   r]   rJ   rJ   rK   rN   _   r`   zNamespace.versionbackendr=   Namespace[PandasLikeNamespace]c                C     d S rG   rJ   rV   rc   rJ   rJ   rK   from_backendc      zNamespace.from_backendr>   Namespace[PolarsNamespace]c                C  re   rG   rJ   rf   rJ   rJ   rK   rg   g   rh   r6   Namespace[ArrowNamespace]c                C  re   rG   rJ   rf   rJ   rJ   rK   rg   k   rh   r?   Namespace[SparkLikeNamespace]c                C  re   rG   rJ   rf   rJ   rJ   rK   rg   o   rh   r9   Namespace[DuckDBNamespace]c                C  re   rG   rJ   rf   rJ   rJ   rK   rg   s   rh   r8   Namespace[DaskNamespace]c                C  re   rG   rJ   rf   rJ   rJ   rK   rg   w   rh   r;   Namespace[IbisNamespace]c                C  re   rG   rJ   rf   rJ   rJ   rK   rg   {   rh   r:   r@   c                C  re   rG   rJ   rf   rJ   rJ   rK   rg      rh   IntoBackend[Backend] Namespace[CompliantNamespaceAny]c                C  re   rG   rJ   rf   rJ   rJ   rK   rg         rV   type[Namespace[Any]]Namespace[Any]c                C  s2  t |}| }| j}| r ddlm} |||d}| |S | r3ddlm	} ||d}| |S |
 rFddlm} ||d}| |S | rZddlm}	 |	||d}| |S | rmddlm}
 |
|d}| |S | rdd	lm} ||d}| |S | rdd
lm} ||d}| |S d}t|)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   r0   )rb   rN   r2   )rN   r(   r4   r,   r*   r.   zNot supported Implementation)r%   rg   _backend_versionrC   is_pandas_likenarwhals._pandas_like.namespacer1   	is_polarsnarwhals._polars.namespacer3   
is_pyarrownarwhals._arrow.namespacer)   is_spark_likenarwhals._spark_like.namespacer5   	is_duckdbnarwhals._duckdb.namespacer-   is_dasknarwhals._dask.namespacer+   is_ibisnarwhals._ibis.namespacer/   AssertionError)rV   rc   implbackend_versionrN   r1   nsr3   r)   r5   r-   r+   r/   rW   rJ   rJ   rK   rg      sB   





nativer   c                C  re   rG   rJ   rV   r   rJ   rJ   rK   from_native_object   rq   zNamespace.from_native_objectr   <Namespace[PandasLikeNamespace[pd.DataFrame, pd.Series[Any]]]c                C  re   rG   rJ   r   rJ   rJ   rK   r      rq   r   c                C  re   rG   rJ   r   rJ   rJ   rK   r      rh   r   c                C  re   rG   rJ   r   rJ   rJ   rK   r      rq   r   c                C  re   rG   rJ   r   rJ   rJ   rK   r      rq   r   c                C  re   rG   rJ   r   rJ   rJ   rK   r      rh   r   c                C  re   rG   rJ   r   rJ   rJ   rK   r      rh   r   =Namespace[PandasLikeNamespace[_ModinDataFrame, _ModinSeries]]c                C  re   rG   rJ   r   rJ   rJ   rK   r      rq   r   ;Namespace[PandasLikeNamespace[_CuDFDataFrame, _CuDFSeries]]c                C  re   rG   rJ   r   rJ   rJ   rK   r      rq   r   (Namespace[PandasLikeNamespace[Any, Any]]c                C  re   rG   rJ   r   rJ   rJ   rK   r      rq   r   c                C  re   rG   rJ   r   rJ   rJ   rK   r      rq   r
   c                C  s   t |rtj}nZt|rtj}nRt|rtj}nJt|r.t|r#tj	n	t
|r*tjntj}n4t|r6tj}n,t|r>tj}n$t|rFtj}nt|rNtj}nt|rVtj}ndt|j}t|| |S )NzUnsupported type: )r!   r%   POLARSr    PANDASr   PYARROWr#   r$   SQLFRAMEr"   PYSPARK_CONNECTPYSPARKr   DASKr   DUCKDBr   CUDFr   MODINr   IBISrS   __qualname__rU   rg   )rV   r   r   rW   rJ   rJ   rK   r      s4   
)rD   r	   rE   rF   )rM   r   rN   r&   rO   r   rE   rF   )rE   rZ   )rE   r	   )rE   r%   )rE   r&   )rc   r=   rE   rd   )rc   r>   rE   ri   )rc   r6   rE   rj   )rc   r?   rE   rk   )rc   r9   rE   rl   )rc   r8   rE   rm   )rc   r;   rE   rn   )rc   r:   rE   r@   )rc   ro   rE   rp   )rV   rr   rc   ro   rE   rs   )r   r   rE   ri   )r   r   rE   r   )r   r   rE   rj   )r   r   rE   rk   )r   r   rE   rl   )r   r   rE   rm   )r   r   rE   rn   )r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )r   r   rE   rp   )rV   rr   r   r
   rE   rs   )rT   
__module__r   __annotations__r&   MAINrC   rL   rQ   r^   propertyr\   rb   rN   r   classmethodrg   r   __classcell__rJ   rJ   rX   rK   rA   D   s   
 

	3)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'   rz   r)   r   r+   r~   r-   r   r/   rv   r1   rx   r3   r|   r5   narwhals._typingr6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r   __all__rA   rJ   rJ   rJ   rK   <module>   s(    t0