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ZdZ	dKddZ
erMd dlZd dlmZ d dlmZ d dlmZ d dlmZ n*d dlZejdkr]d dlmZ ne
 rgd dlmZ nd dlmZ dddddLddZG d d! d!eZed"d#d$Zed%d#ed&Zed'd#d(ZG d)d* d*ee ZG d+d, d,ee ZG d-d. d.ee ee eeef Zed/d#ed&ZG d0d1 d1ee Zed2eeef d#d3d4Zed5eeef d#eeef d6Z G d7d8 d8ee Z!G d9d: d:ee  Z"G d;d< d<e!e e"e  eee f Z#d=Z$d>e%d?< 	 ed@d#d$Z&edAd#e$d&Z'G dBdC dCee& Z(G dDdE dEee' Z)G dFdG dGe(e& e)e' ee&e'f Z*edHZ+G dIdJ dJee+ Z,dS )M    )annotations)TYPE_CHECKING)Any)Iterable)Mapping)Protocol)   r   r   typing_extensionsreturnboolc                  C  s@   ddl m}  ddlm} ddlm} |tr|| ttkS dS )Nr   )version)	find_spec)parse_versionF)importlib.metadatar   importlib.utilr   narwhals.utilsr   _TYPING_EXTENSIONS_MIN_TYPING_EXTENSIONS)r   r   r    r   G/var/www/vscode/kcb/lib/python3.10/site-packages/narwhals/_translate.py_typing_extensions_has_pep_696   s   r   N)Self)	TypeAlias)TypeIs)TypeVar)      Fbound	covariantcontravariantnamestrconstraintsr   r   
Any | Noner   r    kwdsc                O  s   t | g|R |||dS )Nr   )_TypeVar)r!   r   r   r    r#   r%   r   r   r   r   *   s   r   c                   @  s   e Zd Zdd	ddZdS )
ArrowStreamExportableNrequested_schemaobject | Noner
   objectc                 C     d S Nr   )selfr(   r   r   r   __arrow_c_stream__<       z(ArrowStreamExportable.__arrow_c_stream__r,   )r(   r)   r
   r*   )__name__
__module____qualname__r.   r   r   r   r   r'   ;   s    r'   ToNumpyT_coT)r   FromNumpyDT_contra)r    defaultFromNumpyT_contra)r    c                   @     e Zd Zd	ddZdS )
ToNumpyargsr   r%   r
   r3   c                 O  r+   r,   r   r-   r9   r%   r   r   r   to_numpyG   r/   zToNumpy.to_numpyN)r9   r   r%   r   r
   r3   r0   r1   r2   r;   r   r   r   r   r8   F       r8   c                   @     e Zd Zeddd	Zd
S )	FromNumpydatar6   r9   r   r%   r
   r   c                 O  r+   r,   r   clsr@   r9   r%   r   r   r   
from_numpyK      zFromNumpy.from_numpyN)r@   r6   r9   r   r%   r   r
   r   )r0   r1   r2   classmethodrC   r   r   r   r   r?   J       r?   c                   @  s   e Zd Zd
ddZd	S )NumpyConvertibledtyper   copybool | Noner
   r3   c                C  r+   r,   r   )r-   rH   rI   r   r   r   r;   T   r/   zNumpyConvertible.to_numpyN)rH   r   rI   rJ   r
   r3   r<   r   r   r   r   rG   O   s    rG   FromIterableT_contrac                   @  r>   )FromIterabler@   Iterable[FromIterableT_contra]r9   r   r%   r
   r   c                 O  r+   r,   r   rA   r   r   r   from_iterable[   s   zFromIterable.from_iterableN)r@   rM   r9   r   r%   r   r
   r   )r0   r1   r2   rE   rN   r   r   r   r   rL   Z   rF   rL   ToDictDT_cozdict[str, Any])r   r   r5   FromDictDT_contra)r   r    r5   c                   @  r7   )
ToDictr9   r   r%   r
   rO   c                 O  r+   r,   r   r:   r   r   r   to_dictm   r/   zToDict.to_dictN)r9   r   r%   r   r
   rO   )r0   r1   r2   rR   r   r   r   r   rQ   l   r=   rQ   c                   @  r>   )FromDictr@   rP   r9   r   r%   r
   r   c                 O  r+   r,   r   rA   r   r   r   	from_dictq   rD   zFromDict.from_dictN)r@   rP   r9   r   r%   r   r
   r   )r0   r1   r2   rE   rT   r   r   r   r   rS   p   rF   rS   c                   @     e Zd ZdS )DictConvertibleNr0   r1   r2   r   r   r   r   rV   u       rV   z ArrowStreamExportable | pa.Tabler   IntoArrowTableToArrowT_coFromArrowDT_contrac                   @  r7   )
ToArrowr9   r   r%   r
   rZ   c                 O  r+   r,   r   r:   r   r   r   to_arrow   r/   zToArrow.to_arrowN)r9   r   r%   r   r
   rZ   )r0   r1   r2   r]   r   r   r   r   r\      r=   r\   c                   @  r>   )	FromArrowr@   r[   r9   r   r%   r
   r   c                 O  r+   r,   r   rA   r   r   r   
from_arrow   rD   zFromArrow.from_arrowN)r@   r[   r9   r   r%   r   r
   r   )r0   r1   r2   rE   r_   r   r   r   r   r^      rF   r^   c                   @  rU   )ArrowConvertibleNrW   r   r   r   r   r`      rX   r`   FromNativeTc                   @  s(   e Zd Zeddd	ZedddZdS )
FromNativer@   ra   r9   r   r%   r
   r   c                 O  r+   r,   r   rA   r   r   r   from_native   rD   zFromNative.from_nativeobjFromNativeT | AnyTypeIs[FromNativeT]c                C  r+   r,   r   )rd   r   r   r   
_is_native   rD   zFromNative._is_nativeN)r@   ra   r9   r   r%   r   r
   r   )rd   re   r
   rf   )r0   r1   r2   rE   rc   staticmethodrg   r   r   r   r   rb      s
    rb   )r
   r   )r!   r"   r#   r   r   r$   r   r   r    r   r%   r   )-
__future__r   typingr   r   r   r   r   r   r   r   pyarrowpar	   r   r   r   r   sysversion_infor&   r'   r3   r4   r6   r8   r?   rG   rK   rL   r"   rO   rP   rQ   rS   rV   rY   __annotations__rZ   r[   r\   r^   r`   ra   rb   r   r   r   r   <module>   s    









