
    hha"                    0   U d dl mZ d dlmZ d dlmZmZ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 d dlmZmZ d dlmZmZmZ d dlmZmZ erMd dlmZm Z m!Z! d d	l"m#Z#m$Z$ d d
l%m&Z& d dl'm(Z(m)Z) d dlm*Z*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 eZ8de9d<   g dZ: G d deee
f                   Z; G d de;eef         eeef                   Z< G d de;eef         eeeef                   Z= G d de<eef         eeeeeef                   Z>dS )    )annotations)partial)TYPE_CHECKINGAnyProtocoloverload)
CompliantExprTCompliantFrameTCompliantLazyFrameTDepthTrackingExprTEagerDataFrameT
EagerExprTEagerSeriesT	LazyExprTNativeFrameTNativeSeriesT)is_expr	is_series)exclude_column_namesget_column_namespassthrough_column_names)is_numpy_arrayis_numpy_array_2d)	ContainerIterableSequence)	TypeAliasTypeIs)CompliantSelectorNamespace)CompliantWhen	EagerWhen)ImplementationVersion)Expr)Series)ConcatMethodInto1DArray	IntoDType
IntoSchemaNonNestedLiteral_1DArray_2DArrayr   
Incomplete)CompliantNamespaceDepthTrackingNamespaceEagerNamespaceLazyNamespacec                      e Zd ZU ded<   ded<   ed;d            Zd<dZd=dZd>dZd?dZ	d@dZ
d=dZdAdZdBd!ZdBd"ZdCd#ZdCd$ZdCd%ZdCd&ZdDd,ZdEd/ZdFd1ZedGd3            ZdCd4ZdHd6ZdId9Zd:S )Jr.   r"   _implementationr#   _versionreturntype[CompliantExprT]c                    d S N selfs    T/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_compliant/namespace.py_exprzCompliantNamespace._expr=       -0S    dataExpr | NonNestedLiteral | Any
str_as_litbool!CompliantExprT | NonNestedLiteralc                  t          |          r.|                    |           }t          || j                  sJ |S t          |t                    r|s|                     |          S |S r8   )r   _to_compliant_expr
isinstancer=   strcol)r;   r@   rB   exprs       r<   parse_into_exprz"CompliantNamespace.parse_into_expr?   sp     4== 	**400DdDJ/////KdC   	" 	"88D>>!r?   r	   c                D    | j                             t          |           S Ncontextr=   from_column_namesr   r:   s    r<   allzCompliantNamespace.allK   s    z++,<d+KKKr?   column_namesrH   c                T    | j                             t          |          |           S rM   r=   rQ   r   r;   rS   s     r<   rI   zCompliantNamespace.colN   s.    z++$\22D , 
 
 	
r?   excluded_namesContainer[str]c                b    | j                             t          t          |          |           S )NnamesrN   r=   rQ   r   r   r;   rW   s     r<   excludezCompliantNamespace.excludeS   s4    z++(??? , 
 
 	
r?   column_indicesintc                &     | j         j        |d| iS )NrO   )r=   from_column_indices)r;   r_   s     r<   nthzCompliantNamespace.nthX   s    -tz-~LtLLLr?   c                    d S r8   r9   r:   s    r<   lenzCompliantNamespace.len[         r?   valuer*   dtypeIntoDType | Nonec                    d S r8   r9   )r;   rg   rh   s      r<   litzCompliantNamespace.lit\   rf   r?   exprsignore_nullsc                   d S r8   r9   r;   rm   rl   s      r<   all_horizontalz!CompliantNamespace.all_horizontal]       r?   c                   d S r8   r9   ro   s      r<   any_horizontalz!CompliantNamespace.any_horizontal`   rq   r?   c                    d S r8   r9   r;   rl   s     r<   sum_horizontalz!CompliantNamespace.sum_horizontalc   rf   r?   c                    d S r8   r9   ru   s     r<   mean_horizontalz"CompliantNamespace.mean_horizontald   rf   r?   c                    d S r8   r9   ru   s     r<   min_horizontalz!CompliantNamespace.min_horizontale   rf   r?   c                    d S r8   r9   ru   s     r<   max_horizontalz!CompliantNamespace.max_horizontalf   rf   r?   itemsIterable[CompliantFrameT]howr&   r
   c                   d S r8   r9   )r;   r}   r   s      r<   concatzCompliantNamespace.concatg   s    #r?   	predicate:CompliantWhen[CompliantFrameT, Incomplete, CompliantExprT]c                    d S r8   r9   r;   r   s     r<   whenzCompliantNamespace.whenj   s    EHSr?   	separatorc                   d S r8   r9   )r;   r   rm   rl   s       r<   
concat_strzCompliantNamespace.concat_strm   rq   r?   $CompliantSelectorNamespace[Any, Any]c                    d S r8   r9   r:   s    r<   	selectorszCompliantNamespace.selectorsp   s    ADr?   c                    d S r8   r9   ru   s     r<   coalescezCompliantNamespace.coalescer   rf   r?   r   c                   d S r8   r9   r;   r@   s     r<   from_nativezCompliantNamespace.from_nativet   rf   r?   objTypeIs[Any]c                   dS )z6Return `True` if `obj` can be passed to `from_native`.Nr9   r;   r   s     r<   	is_nativezCompliantNamespace.is_nativeu   s    r?   N)r5   r6   )r@   rA   rB   rC   r5   rD   )r5   r	   )rS   rH   r5   r	   )rW   rX   r5   r	   )r_   r`   r5   r	   )rg   r*   rh   ri   r5   r	   )rl   r	   rm   rC   r5   r	   )rl   r	   r5   r	   )r}   r~   r   r&   r5   r
   )r   r	   r5   r   )rl   r	   r   rH   rm   rC   r5   r	   )r5   r   )r@   r   r5   r   )r   r   r5   r   )__name__
__module____qualname____annotations__propertyr=   rK   rR   rI   r^   rc   re   rk   rp   rs   rv   rx   rz   r|   r   r   r   r   r   r   r   r9   r?   r<   r.   r.   8   s        ####000 X0	 	 	 	L L L L
 
 
 


 
 
 

M M M M )(((ZZZZ       LKKKLLLLKKKKKKKK   I I I I    DDD XDEEEE3333     r?   r.   c                  &    e Zd ZddZddZdd	Zd
S )r/   r5   r   c                F    | j                             t          d|           S )NrR   function_namerO   rP   r:   s    r<   rR   zDepthTrackingNamespace.all~   s(    z++E4 , 
 
 	
r?   rS   rH   c                V    | j                             t          |          d|           S )NrI   r   rU   rV   s     r<   rI   zDepthTrackingNamespace.col   s1    z++$\22%QU , 
 
 	
r?   rW   rX   c                d    | j                             t          t          |          d|           S )NrZ   r^   r   r\   r]   s     r<   r^   zDepthTrackingNamespace.exclude   s8    z++(???# , 
 
 	
r?   N)r5   r   )rS   rH   r5   r   )rW   rX   r5   r   )r   r   r   rR   rI   r^   r9   r?   r<   r/   r/   z   sP        
 
 
 


 
 
 


 
 
 
 
 
r?   r/   c                  N    e Zd Zedd            Zedd            Zdd	ZddZdS )r1   r5   tuple[int, ...]c                4    | j                                         S r8   r3   _backend_versionr:   s    r<   r   zLazyNamespace._backend_version       #44666r?   type[CompliantLazyFrameT]c                    d S r8   r9   r:   s    r<   
_lazyframezLazyNamespace._lazyframe   s    7:sr?   r   r   TypeIs[NativeFrameT]c               6    | j                             |          S r8   )r   
_is_nativer   s     r<   r   zLazyNamespace.is_native   s    ))#...r?   r@   NativeFrameT | Anyr   c                   | j                             |          r| j                             ||           S dt          |          j        }t          |          NrN   zUnsupported type: )r   r   r   typer   	TypeErrorr;   r@   msgs      r<   r   zLazyNamespace.from_native   sX    ?%%d++ 	C?..tT.BBB:4::#6::nnr?   Nr5   r   )r5   r   )r   r   r5   r   )r@   r   r5   r   )r   r   r   r   r   r   r   r   r9   r?   r<   r1   r1      st         7 7 7 X7 ::: X:/ / / /     r?   r1   c                      e Zd Zed5d            Zed6d            Zed7d            Zd8dZd9dZe	d:d            Z
e	d;d            Z
d<dZ
d= fdZe	d>d?d#            Ze	d@d&            Z	 dAdBd)ZdCd,ZdDd.ZdCd/ZdEd4Z xZS )Fr0   r5   r   c                4    | j                                         S r8   r   r:   s    r<   r   zEagerNamespace._backend_version   r   r?   type[EagerDataFrameT]c                    d S r8   r9   r:   s    r<   
_dataframezEagerNamespace._dataframe   s    363r?   type[EagerSeriesT]c                    d S r8   r9   r:   s    r<   _serieszEagerNamespace._series   r>   r?   r   r   CEagerWhen[EagerDataFrameT, EagerSeriesT, EagerExprT, NativeSeriesT]c                    d S r8   r9   r   s     r<   r   zEagerNamespace.when   s    NQcr?   r   r   $TypeIs[NativeFrameT | NativeSeriesT]c               j    | j                             |          p| j                            |          S r8   )r   r   r   r   s     r<   r   zEagerNamespace.is_native   s-    ))#..N$,2I2I#2N2NNr?   r@   r   r   c                   d S r8   r9   r   s     r<   r   zEagerNamespace.from_native   s    EHSr?   r   r   c                   d S r8   r9   r   s     r<   r   zEagerNamespace.from_native   s    CF3r?   "NativeFrameT | NativeSeriesT | AnyEagerDataFrameT | EagerSeriesTc               &   | j                             |          r| j                             ||           S | j                            |          r| j                            ||           S dt	          |          j        }t          |          r   )r   r   r   r   r   r   r   r   s      r<   r   zEagerNamespace.from_native   s     ?%%d++ 	C?..tT.BBB<""4(( 	@<++D$+???:4::#6::nnr?   :Expr | Series[NativeSeriesT] | _1DArray | NonNestedLiteralrB   rC   EagerExprT | NonNestedLiteralc                 t          |          s2t          |          s#t                                          ||          S | j                            t          |          r|j        n| j                            ||                     S )N)rB   rN   )	r   r   superrK   r=   _from_series_compliant_seriesr   
from_numpy)r;   r@   rB   	__class__s      r<   rK   zEagerNamespace.parse_into_expr   s     $ 	H>$#7#7 	H77**4J*GGGz&&=D""((t(<<
 
 	
r?   .schemaNoner'   c                   d S r8   r9   r;   r@   r   s      r<   r   zEagerNamespace.from_numpy   s    TWTWr?   !IntoSchema | Sequence[str] | Noner,   c                   d S r8   r9   r   s      r<   r   zEagerNamespace.from_numpy   s	     #r?   NInto1DArray | _2DArrayc                   t          |          r| j                            |||           S | j                            ||           S )N)r   rO   rN   )r   r   r   r   r   s      r<   r   zEagerNamespace.from_numpy   sM     T"" 	Q?--d64-PPP|&&tT&:::r?   dfsSequence[NativeFrameT]c                   d S r8   r9   r;   r   s     r<   _concat_diagonalzEagerNamespace._concat_diagonal   rf   r?   Sequence[NativeFrameT | Any]c                   d S r8   r9   r   s     r<   _concat_horizontalz!EagerNamespace._concat_horizontal   s    sr?   c                   d S r8   r9   r   s     r<   _concat_verticalzEagerNamespace._concat_vertical   rf   r?   r}   Iterable[EagerDataFrameT]r   r&   c                  d |D             }|dk    r|                      |          }n?|dk    r|                     |          }n#|dk    r|                     |          }nt          | j                            ||           S )Nc                    g | ]	}|j         
S r9   )native).0items     r<   
<listcomp>z)EagerNamespace.concat.<locals>.<listcomp>   s    ---tt{---r?   
horizontalverticaldiagonalrN   )r   r   r   NotImplementedErrorr   r   )r;   r}   r   r   r   s        r<   r   zEagerNamespace.concat   s     .-u---,,,S11FFJ**3//FFJ**3//FF%%**64*@@@r?   r   )r5   r   )r5   r   )r   r   r5   r   )r   r   r5   r   )r@   r   r5   r   )r@   r   r5   r   )r@   r   r5   r   )r@   r   rB   rC   r5   r   ).)r   r   r@   r'   r5   r   )r   r   r@   r,   r5   r   r8   )r   r   r@   r   r5   r   )r   r   r5   r   )r   r   r5   r   )r}   r   r   r&   r5   r   )r   r   r   r   r   r   r   r   r   r   r   rK   r   r   r   r   r   __classcell__)r   s   @r<   r0   r0      s        7 7 7 X7 666 X6000 X0R R R RO O O O HHH XHFFF XF   
 
 
 
 
 
 WWWW XW   X 59	; ; ; ; ; TSSS    TSSSA A A A A A A Ar?   r0   N)?
__future__r   	functoolsr   typingr   r   r   r   narwhals._compliant.typingr	   r
   r   r   r   r   r   r   r   r   narwhals._expression_parsingr   r   narwhals._utilsr   r   r   narwhals.dependenciesr   r   collections.abcr   r   r   typing_extensionsr   r   narwhals._compliant.selectorsr   narwhals._compliant.when_thenr    r!   r"   r#   narwhals.exprr$   narwhals.seriesr%   narwhals.typingr&   r'   r(   r)   r*   r+   r,   r-   r   __all__r.   r/   r1   r0   r9   r?   r<   <module>r      sv   " " " " " " "       9 9 9 9 9 9 9 9 9 9 9 9                        < ; ; ; ; ; ; ;         
 D C C C C C C C  ==========33333333HHHHHHFFFFFFFF77777777""""""&&&&&&                   J  ? ? ? ? ?/>"AB ? ? ?D
 
 
 
 
(::;_001
 
 
,    *I56 )\9:  (SA SA SA SA SA?J67_lJmSTSA SA SA SA SAr?   