
    hh!                       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                   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                      e Zd ZU ded<   ej        Zded<   dRdZdS fdZdTdZ	e
dUd            Ze
dVd            Ze
dWd            ZeedXd                        ZeedYd                        ZeedZd                        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`d0                        Zedad4            Zeedbd7                        Zeedcd:                        Zeeddd<                        Zeeded>                        Zeedfd@                        ZeedgdB                        ZeedhdD                        ZeedidG                        ZeedjdJ                        ZeedkdM                        ZeedldO                        ZedmdQ            Z xZS )nrB   r
   _compliant_namespacezClassVar[Version]_version	namespacereturnNonec                   || _         d S NrD   )selfrF   s     J/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_namespace.py__init__zNamespace.__init__H   s    $-!!!    argsr   versionr'   kwdsc                    t                      j        |i | t          |t                    r	|| _        d S dt           dt          |          j        }t          |          )Nz	Expected z	 but got )super__init_subclass__
isinstancer'   rE   type__name__	TypeError)clsrQ   rP   rR   msg	__class__s        rM   rU   zNamespace.__init_subclass__K   sf    !!404000gw'' 	!"CLLLJgJJW0FJJCC.. rO   strc                <    dt          | j                  j         dS )Nz
Namespace[])rW   	compliantrX   rL   s    rM   __repr__zNamespace.__repr__T   s     <D009<<<<rO   c                    | j         S rJ   rK   ra   s    rM   r`   zNamespace.compliantW   s    ((rO   r&   c                    | j         j        S rJ   )r`   _implementationra   s    rM   implementationzNamespace.implementation[   s    ~--rO   c                    | j         S rJ   )rE   ra   s    rM   rQ   zNamespace.version_   s
    }rO   backendr>   Namespace[PandasLikeNamespace]c                   d S rJ    rZ   rh   s     rM   from_backendzNamespace.from_backendc   s    UXUXrO   r?   Namespace[PolarsNamespace]c                   d S rJ   rk   rl   s     rM   rm   zNamespace.from_backendg       MPSrO   r7   Namespace[ArrowNamespace]c                   d S rJ   rk   rl   s     rM   rm   zNamespace.from_backendk   s    KN3rO   r@   Namespace[SparkLikeNamespace]c                   d S rJ   rk   rl   s     rM   rm   zNamespace.from_backendo   s    SVSVrO   r:   Namespace[DuckDBNamespace]c                   d S rJ   rk   rl   s     rM   rm   zNamespace.from_backends   rp   rO   r9   Namespace[DaskNamespace]c                   d S rJ   rk   rl   s     rM   rm   zNamespace.from_backendw       ILrO   r<   Namespace[IbisNamespace]c                   d S rJ   rk   rl   s     rM   rm   zNamespace.from_backend{   ry   rO   r;   rA   c                   d S rJ   rk   rl   s     rM   rm   zNamespace.from_backend   s    NQcrO   IntoBackend[Backend] Namespace[CompliantNamespaceAny]c                   d S rJ   rk   rl   s     rM   rm   zNamespace.from_backend   	     ,/3rO   rZ   type[Namespace[Any]]Namespace[Any]c                  t          j        |          }|                                }| j        }|                                rddlm}  |||          }n|                                rddlm	}  ||          }n|
                                rddlm}  ||          }n|                                rddlm}	  |	||          }n|                                rddlm}
  |
|          }n_|                                rdd	lm}  ||          }n8|                                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   )rf   rQ   r3   )rQ   r)   r5   r-   r+   r/   zNot supported Implementation)r&   rm   _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)rZ   rh   implbackend_versionrQ   r2   nsr4   r*   r6   r.   r,   r0   r[   s                 rM   rm   zNamespace.from_backend   s    *733//11,   	&KKKKKK$$D'JJJBB^^ 	&BBBBBB 111BB__ 	&@@@@@@000BB!! 	&IIIIII##4IIIBB^^ 	&BBBBBB 111BB\\^^ 
	&>>>>>>w///BB\\^^ 	&>>>>>>w///BB0C %%%s2wwrO   nativer   c                   d S rJ   rk   rZ   r   s     rM   from_native_objectzNamespace.from_native_object   	     &)SrO   r   <Namespace[PandasLikeNamespace[pd.DataFrame, pd.Series[Any]]]c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   s     HKsrO   r   c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   s    VYVYrO   r   c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   s	     ),rO   r   c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   r   rO   r   c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object       TWTWrO   r   c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   r   rO   r   =Namespace[PandasLikeNamespace[_ModinDataFrame, _ModinSeries]]c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   s     ILrO   r   ;Namespace[PandasLikeNamespace[_CuDFDataFrame, _CuDFSeries]]c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   s     GJcrO   r   (Namespace[PandasLikeNamespace[Any, Any]]c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   s	     473rO   r   c                   d S rJ   rk   r   s     rM   r   zNamespace.from_native_object   r   rO   r   c                  t          |          rt          j        }n>t          |          rt          j        }n!t          |          rt          j        }nt          |          rCt          |          rt          j	        n&t          |          rt          j        nt          j        }nt          |          rt          j        }nt          |          rt          j        }nzt#          |          rt          j        }n^t'          |          rt          j        }nBt+          |          rt          j        }n&dt/          |          j        }t3          |          |                     |          S )NzUnsupported type: )r"   r&   POLARSr!   PANDASr   PYARROWr$   r%   SQLFRAMEr#   PYSPARK_CONNECTPYSPARKr   DASKr   DUCKDBr   CUDFr    MODINr   IBISrW   __qualname__rY   rm   )rZ   r   r   r[   s       rM   r   zNamespace.from_native_object   s]   
 F## 	!!(DDf%% 	!!(DDV$$ 	!!)DD!&)) 	! &f--,'' -V44,^33#+ D F## 	!!&DDf%% 
	!!(DDF## 	!!&DDV$$ 	!!'DDF## 	!!&DDDtF||'@DDCC.. %%%rO   )rF   r
   rG   rH   )rP   r   rQ   r'   rR   r   rG   rH   )rG   r]   )rG   r
   )rG   r&   )rG   r'   )rh   r>   rG   ri   )rh   r?   rG   rn   )rh   r7   rG   rq   )rh   r@   rG   rs   )rh   r:   rG   ru   )rh   r9   rG   rw   )rh   r<   rG   rz   )rh   r;   rG   rA   )rh   r}   rG   r~   )rZ   r   rh   r}   rG   r   )r   r   rG   rn   )r   r   rG   r   )r   r   rG   rq   )r   r   rG   rs   )r   r   rG   ru   )r   r   rG   rw   )r   r   rG   rz   )r   r   rG   r   )r   r   rG   r   )r   r   rG   r   )r   r   rG   r~   )rZ   r   r   r   rG   r   )rX   
__module__r   __annotations__r'   MAINrE   rN   rU   rb   propertyr`   rf   rQ   r   classmethodrm   r   __classcell__)r\   s   @rM   rB   rB   D   s        0000"),H..... . . .! ! ! ! ! != = = = ) ) ) X) . . . X.    X XXX [ XXPPP [ XPNNN [ XNVVV [ XVPPP [ XPLLL [ XLLLL [ XLQQQ [ XQ/ / / [ X/ 1 1 1 [1f ) ) ) [ X) K K K [ XK YYY [ XY, , , [ X, ) ) ) [ X) WWW [ XWWWW [ XWL L L [ XL J J J [ XJ 7 7 7 [ X7 / / / [ X/ & & & [& & & & &rO   )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   r   r2   r   r4   r   r6   narwhals._typingr7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   r   __all__rB   rk   rO   rM   <module>r      s'   8 8 8 " " " " " " B B B B B B B B B B B B B B T T T T T T T T                                                         : 4 3 3 3 3 3 3 3 A++++++888888666666::::::666666CCCCCC::::::AAAAAA                        (A  A  A  A  A-U& U& U& U& U&./ U& U& U& U& U&rO   