
    ch                    ^    S SK Jr  S SKrS SKr " S S\R
                  5      r " S S5      rg)    )annotationsNc                  8    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrg)DlpackDeviceType   z3Integer enum for device type codes matching DLPack.                  	   
    N)__name__
__module____qualname____firstlineno____doc__CPUCUDA
CPU_PINNEDOPENCLVULKANMETALVPIROCM__static_attributes__r       mC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\pyarrow/interchange/buffer.pyr   r      s-    =
CDJFFE
CDr   r   c                  h    \ rS rSrSrSSS jjr\SS j5       r\SS j5       rS r	SS jr
SS jrS	rg
)_PyArrowBuffer%   a1  
Data in the buffer is guaranteed to be contiguous in memory.

Note that there is no dtype attribute present, a buffer can be thought of
as simply a block of memory. However, if the column that the buffer is
attached to has a dtype that's supported by DLPack and ``__dlpack__`` is
implemented, then that dtype information will be contained in the return
value from ``__dlpack__``.

This distinction is useful to support both data exchange via DLPack on a
buffer and (b) dtypes like variable-length strings which do not have a
fixed number of bytes per element.
c                    Xl         g)z
Handle PyArrow Buffers.
N_x)selfx
allow_copys      r   __init___PyArrowBuffer.__init__4   s	     r   c                .    U R                   R                  $ )z
Buffer size in bytes.
)r%   sizer&   s    r   bufsize_PyArrowBuffer.bufsize:   s    
 ww||r   c                .    U R                   R                  $ )z/
Pointer to start of the buffer as an integer.
)r%   addressr-   s    r   ptr_PyArrowBuffer.ptrA   s    
 wwr   c                    [        S5      e)aE  
Produce DLPack capsule (see array API standard).

Raises:
    - TypeError : if the buffer contains unsupported dtypes.
    - NotImplementedError : if DLPack support is not implemented

Useful to have to connect to array libraries. Support optional because
it's not completely trivial to implement for a Python-only library.

__dlpack__)NotImplementedErrorr-   s    r   r5   _PyArrowBuffer.__dlpack__H   s     ",//r   c                r    U R                   R                  (       a  [        R                  S4$ [	        S5      e)z
Device type and device ID for where the data in the buffer resides.
Uses device type codes matching DLPack.
Note: must be implemented even if ``__dlpack__`` is not.
N__dlpack_device__)r%   is_cpur   r   r6   r-   s    r   r9    _PyArrowBuffer.__dlpack_device__U   s,     77>>$(($//%&9::r   c                    S[        U R                  U R                  U R                  5       S   R                  S.5      -   S-   $ )NzPyArrowBuffer(r   )r.   r2   device))strr.   r2   r9   namer-   s    r   __repr___PyArrowBuffer.__repr__`   sK    #||88"446q9>> 
	
r   r$   N)T)r'   z	pa.Bufferr(   boolreturnNone)rD   int)rD   z#tuple[DlpackDeviceType, int | None])rD   r?   )r   r   r   r   r   r)   propertyr.   r2   r5   r9   rA   r   r   r   r   r!   r!   %   sC        0	;
r   r!   )
__future__r   enumpyarrowpaIntEnumr   r!   r   r   r   <module>rM      s,   $ #  
t|| 
F
 F
r   