
    `Vg                        d dl mZ d dlZd dlmZmZ d dlmZ  eej                         ed      k\  Z
 G d de      Zy)    )annotationsN)BufferDlpackDeviceType)Versionz1.22.0c                  T    e Zd ZdZd	d
dZedd       Zedd       Zd ZddZ	ddZ
y)PandasBufferzF
    Data in the buffer is guaranteed to be contiguous in memory.
    c                    |j                   |j                  j                  fk(  s%|r|j                         }|| _        yt	        d      || _        y)zG
        Handle only regular columns (= numpy arrays) for now.
        zBExports cannot be zero-copy in the case of a non-contiguous bufferN)stridesdtypeitemsizecopyRuntimeError_x)selfx
allow_copys      _/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/pandas/core/interchange/buffer.py__init__zPandasBuffer.__init__   sS     yyQWW--// FFH  #1      c                p    | j                   j                  | j                   j                  j                  z  S )z'
        Buffer size in bytes.
        )r   sizer   r   r   s    r   bufsizezPandasBuffer.bufsize&   s%    
 ww||dggmm4444r   c                :    | j                   j                  d   d   S )z?
        Pointer to start of the buffer as an integer.
        datar   )r   __array_interface__r   s    r   ptrzPandasBuffer.ptr-   s    
 ww**62155r   c                X    t         r| j                  j                         S t        d      )z?
        Represent this structure as DLPack interface.
        
__dlpack__)_NUMPY_HAS_DLPACKr   r   NotImplementedErrorr   s    r   r   zPandasBuffer.__dlpack__4   s%     77%%''!,//r   c                &    t         j                  dfS )zU
        Device type and device ID for where the data in the buffer resides.
        N)r   CPUr   s    r   __dlpack_device__zPandasBuffer.__dlpack_device__<   s     !$$d++r   c                    dt        | j                  | j                  | j                         d   j                  d      z   dz   S )NzPandasBuffer(r   )r   r   device))strr   r   r$   namer   s    r   __repr__zPandasBuffer.__repr__B   sK    #||88"446q9>> 
	
r   N)T)r   z
np.ndarrayr   boolreturnNone)r,   int)r,   z#tuple[DlpackDeviceType, int | None])r,   r(   )__name__
__module____qualname____doc__r   propertyr   r   r   r$   r*    r   r   r   r      sC    & 5 5 6 60,
r   r   )
__future__r   numpynp*pandas.core.interchange.dataframe_protocolr   r   pandas.util.versionr   __version__r    r   r4   r   r   <module>r;      s:    "  (BNN+wx/@@ ?
6 ?
r   