o
    h                  
   @  s`  U d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ erd dlm Z  d dl!m"Z" d dl#m$Z$ d dl#m%Z% d dl&m'Z' d dl(m)Z) d d l*m+Z+ d d!l*m,Z, d d"l*m-Z- d d#l*m.Z. d d$lm/Z/ d d%lm0Z0 eZ1d&e2d'< d(d)gZ3G d*d( d(e
eef Z4G d+d, d,e4eef e
eef Z5G d-d. d.e4eef e
eeef Z6G d/d) d)e5eef e
eeeeef Z7d0S )1    )annotations)partial)TYPE_CHECKING)Any)	Container)Iterable)Mapping)Protocol)Sequence)overload)CompliantExprT)CompliantFrameT)CompliantLazyFrameT)DepthTrackingExprT)EagerDataFrameT)
EagerExprT)EagerSeriesT)	LazyExprT)NativeFrameT)NativeFrameT_co)NativeSeriesT)is_numpy_array_2d)exclude_column_names)get_column_names)passthrough_column_names)	TypeAlias)CompliantSelectorNamespace)CompliantWhen)	EagerWhen)DType)Schema)ConcatMethod)Into1DArray)NonNestedLiteral)_2DArray)Implementation)Versionr   
IncompleteCompliantNamespaceEagerNamespacec                   @  s   e Zd ZU ded< ded< ded< dCd	d
ZdDddZdEddZdFddZdCddZdGddZ	dHd d!Z
dHd"d#ZdHd$d%ZdHd&d'ZdHd(d)ZdHd*d+ZdId1d2ZdJd5d6ZdKd:d;ZedLd=d>ZedMd@dAZdBS )Nr(   r%   _implementationztuple[int, ...]_backend_versionr&   _versionreturnr   c                 C  s   | j jt| dS Ncontext_exprfrom_column_namesr   self r6   Q/var/www/vscode/kcb/lib/python3.10/site-packages/narwhals/_compliant/namespace.pyall6   s   zCompliantNamespace.allcolumn_namesstrc                 G  s   | j jt|| dS r.   r2   r3   r   r5   r9   r6   r6   r7   col9   s   zCompliantNamespace.colexcluded_namesContainer[str]c                 C  s   | j jtt|d| dS )Nnamesr/   r2   r3   r   r   r5   r>   r6   r6   r7   exclude>   s   zCompliantNamespace.excludecolumn_indicesintc                 G  s   | j j|d| iS )Nr0   )r2   from_column_indices)r5   rE   r6   r6   r7   nthC   s   zCompliantNamespace.nthc                 C     d S Nr6   r4   r6   r6   r7   lenF       zCompliantNamespace.lenvaluer#   dtypeDType | type[DType] | Nonec                 C  rI   rJ   r6   )r5   rM   rN   r6   r6   r7   litG      zCompliantNamespace.litexprsc                 G  rI   rJ   r6   r5   rR   r6   r6   r7   all_horizontalJ   rL   z!CompliantNamespace.all_horizontalc                 G  rI   rJ   r6   rS   r6   r6   r7   any_horizontalK   rL   z!CompliantNamespace.any_horizontalc                 G  rI   rJ   r6   rS   r6   r6   r7   sum_horizontalL   rL   z!CompliantNamespace.sum_horizontalc                 G  rI   rJ   r6   rS   r6   r6   r7   mean_horizontalM   rL   z"CompliantNamespace.mean_horizontalc                 G  rI   rJ   r6   rS   r6   r6   r7   min_horizontalN   rL   z!CompliantNamespace.min_horizontalc                 G  rI   rJ   r6   rS   r6   r6   r7   max_horizontalO   rL   z!CompliantNamespace.max_horizontalitemsIterable[CompliantFrameT]howr!   r   c                C  rI   rJ   r6   )r5   rZ   r\   r6   r6   r7   concatP   rQ   zCompliantNamespace.concat	predicate:CompliantWhen[CompliantFrameT, Incomplete, CompliantExprT]c                 C  rI   rJ   r6   r5   r^   r6   r6   r7   whenS   rQ   zCompliantNamespace.when	separatorignore_nullsboolc                G  rI   rJ   r6   )r5   rb   rc   rR   r6   r6   r7   
concat_strV   s   zCompliantNamespace.concat_str$CompliantSelectorNamespace[Any, Any]c                 C  rI   rJ   r6   r4   r6   r6   r7   	selectors\      zCompliantNamespace.selectorstype[CompliantExprT]c                 C  rI   rJ   r6   r4   r6   r6   r7   r2   ^   rh   zCompliantNamespace._exprN)r-   r   )r9   r:   r-   r   )r>   r?   r-   r   )rE   rF   r-   r   )rM   r#   rN   rO   r-   r   )rR   r   r-   r   )rZ   r[   r\   r!   r-   r   )r^   r   r-   r_   )rR   r   rb   r:   rc   rd   r-   r   )r-   rf   )r-   ri   )__name__
__module____qualname____annotations__r8   r=   rD   rH   rK   rP   rT   rU   rV   rW   rX   rY   r]   ra   re   propertyrg   r2   r6   r6   r6   r7   r(   1   s.   
 














c                   @  s*   e Zd ZdddZdddZdddZdS )DepthTrackingNamespacer-   r   c                 C  s   | j jtd| dS )Nr8   function_namer0   r1   r4   r6   r6   r7   r8   f   s   zDepthTrackingNamespace.allr9   r:   c                 G  s   | j jt|d| dS )Nr=   rp   r;   r<   r6   r6   r7   r=   k   s   
zDepthTrackingNamespace.colr>   r?   c                 C  s   | j jtt|dd| dS )Nr@   rD   rp   rB   rC   r6   r6   r7   rD   p   s
   
zDepthTrackingNamespace.excludeN)r-   r   )r9   r:   r-   r   )r>   r?   r-   r   )rj   rk   rl   r8   r=   rD   r6   r6   r6   r7   ro   b   s    

ro   c                   @  s$   e Zd ZedddZddd	Zd
S )LazyNamespacer-   type[CompliantLazyFrameT]c                 C  rI   rJ   r6   r4   r6   r6   r7   
_lazyframe|   rh   zLazyNamespace._lazyframedataNativeFrameT_co | Anyr   c                C  s4   | j |r| j j|| dS dt|j}t|Nr/   zUnsupported type: )rt   
_is_nativefrom_nativetyperj   	TypeErrorr5   ru   msgr6   r6   r7   ry      s   zLazyNamespace.from_nativeN)r-   rs   )ru   rv   r-   r   )rj   rk   rl   rn   rt   ry   r6   r6   r6   r7   rr   x   s    rr   c                   @  s   e Zd Zed3ddZed4ddZd5ddZed6ddZed7ddZd8ddZe	d9d:ddZ	ed;d dZ		!d<d=d#dZ	d>d&d'Z
d?d)d*Zd>d+d,Zd@d1d2Zd!S )Ar)   r-   type[EagerDataFrameT]c                 C  rI   rJ   r6   r4   r6   r6   r7   
_dataframe   rh   zEagerNamespace._dataframetype[EagerSeriesT]c                 C  rI   rJ   r6   r4   r6   r6   r7   _series   rh   zEagerNamespace._seriesr^   r   CEagerWhen[EagerDataFrameT, EagerSeriesT, EagerExprT, NativeSeriesT]c                 C  rI   rJ   r6   r`   r6   r6   r7   ra      rQ   zEagerNamespace.whenru   r   r   c                C  rI   rJ   r6   r5   ru   r6   r6   r7   ry      rh   zEagerNamespace.from_nativer   r   c                C  rI   rJ   r6   r   r6   r6   r7   ry      rh   "NativeFrameT | NativeSeriesT | AnyEagerDataFrameT | EagerSeriesTc                C  sP   | j |r| j j|| dS | j|r| jj|| dS dt|j}t|rw   )r   rx   ry   r   rz   rj   r{   r|   r6   r6   r7   ry      s   .schemaNoner"   c                C  rI   rJ   r6   r5   ru   r   r6   r6   r7   
from_numpy      zEagerNamespace.from_numpy3Mapping[str, DType] | Schema | Sequence[str] | Noner$   c                C  rI   rJ   r6   r   r6   r6   r7   r      r   NInto1DArray | _2DArrayc                C  s*   t |r| jj||| dS | jj|| dS )N)r   r0   r/   )r   r   r   r   r   r6   r6   r7   r      s   dfsSequence[NativeFrameT]c                C  rI   rJ   r6   r5   r   r6   r6   r7   _concat_diagonal   rL   zEagerNamespace._concat_diagonalSequence[NativeFrameT | Any]c                C  rI   rJ   r6   r   r6   r6   r7   _concat_horizontal   rQ   z!EagerNamespace._concat_horizontalc                C  rI   rJ   r6   r   r6   r6   r7   _concat_vertical   rL   zEagerNamespace._concat_verticalrZ   Iterable[EagerDataFrameT]r\   r!   c                C  s^   dd |D }|dkr|  |}n|dkr| |}n|dkr%| |}nt| jj|| dS )Nc                 S  s   g | ]}|j qS r6   )native).0itemr6   r6   r7   
<listcomp>   s    z)EagerNamespace.concat.<locals>.<listcomp>
horizontalverticaldiagonalr/   )r   r   r   NotImplementedErrorr   ry   )r5   rZ   r\   r   r   r6   r6   r7   r]      s   zEagerNamespace.concat)r-   r~   )r-   r   )r^   r   r-   r   )ru   r   r-   r   )ru   r   r-   r   )ru   r   r-   r   ).)r   r   ru   r"   r-   r   )r   r   ru   r$   r-   r   rJ   )r   r   ru   r   r-   r   )r   r   r-   r   )r   r   r-   r   )rZ   r   r\   r!   r-   r   )rj   rk   rl   rn   r   r   ra   r   ry   r   r   r   r   r]   r6   r6   r6   r7   r)      s,    






N)8
__future__r   	functoolsr   typingr   r   r   r   r   r	   r
   r   narwhals._compliant.typingr   r   r   r   r   r   r   r   r   r   r   narwhals.dependenciesr   narwhals.utilsr   r   r   typing_extensionsr   narwhals._compliant.selectorsr   narwhals._compliant.when_thenr   r   narwhals.dtypesr   narwhals.schemar    narwhals.typingr!   r"   r#   r$   r%   r&   r'   rm   __all__r(   ro   rr   r)   r6   r6   r6   r7   <module>   sj    
1





