Ë
    AúYj  ã                  ó†   — 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rd dlmZmZ d dlm	Z	mZ  G d	„ d
e
«      Zy)é    )Úannotations)Úabc)ÚTYPE_CHECKING)ÚPandasColumn)Ú	DataFrame)Úmaybe_rechunk)ÚIterableÚSequence)r   ÚIndexc                  ó”   — e Zd ZdZddd„Z	 d	 	 	 	 	 dd„Zedd„«       Zdd„Zdd„Z	dd„Z
dd„Zdd	„Zdd
„Zdd„Zdd„Zdd„Zddd„Zy)ÚPandasDataFrameXchga  
    A data frame class, with only the methods required by the interchange
    protocol defined.
    Instances of this (private) class are returned from
    ``pd.DataFrame.__dataframe__`` as objects with the methods and
    attributes defined on this class.
    c                ó$  — |j                  t        ¬«      | _        || _        t	        | j                  j
                  «      D ]L  \  }}t        | j                  j                  dd…|f   |¬«      }|€Œ1| j                  j                  ||«       ŒN y)zz
        Constructor - an instance of this (private) class is returned from
        `pd.DataFrame.__dataframe__`.
        )ÚcolumnsN©Ú
allow_copy)	ÚrenameÚstrÚ_dfÚ_allow_copyÚ	enumerater   r   ÚilocÚisetitem)ÚselfÚdfr   ÚiÚ_colÚ	rechunkeds         úl/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/pandas/core/interchange/dataframe.pyÚ__init__zPandasDataFrameXchg.__init__   sw   € ð
 —9‘9¤S�9Ó)ˆŒØ%ˆÔÜ  §¡×!1Ñ!1Ó2ò 	0‰GˆAˆtÜ% d§h¡h§m¡m²A°q°DÑ&9ÀjÔQˆIØÑ$Ø—‘×!Ñ! ! YÕ/ñ	0ó    c                ó.   — t        | j                  |«      S ©N)r   r   )r   Únan_as_nullr   s      r   Ú__dataframe__z!PandasDataFrameXchg.__dataframe__+   s   € ô
 # 4§8¡8¨ZÓ8Ð8r    c                ó2   — d| j                   j                  iS )Nzpandas.index)r   Úindex©r   s    r   ÚmetadatazPandasDataFrameXchg.metadata2   s   € ð  §¡§¡Ð/Ð/r    c                ó@   — t        | j                  j                  «      S r"   )Úlenr   r   r'   s    r   Únum_columnszPandasDataFrameXchg.num_columns8   s   € Ü�4—8‘8×#Ñ#Ó$Ð$r    c                ó,   — t        | j                  «      S r"   )r*   r   r'   s    r   Únum_rowszPandasDataFrameXchg.num_rows;   s   € Ü�4—8‘8‹}Ðr    c                 ó   — y)Né   © r'   s    r   Ú
num_chunkszPandasDataFrameXchg.num_chunks>   s   € Ør    c                ó.   — | j                   j                  S r"   )r   r   r'   s    r   Úcolumn_namesz PandasDataFrameXchg.column_namesA   s   € Ø�x‰x×ÑÐr    c                óf   — t        | j                  j                  d d …|f   | j                  ¬«      S ©Nr   )r   r   r   r   )r   r   s     r   Ú
get_columnzPandasDataFrameXchg.get_columnD   s&   € Ü˜DŸH™HŸM™Mª!¨Q¨$Ñ/¸D×<LÑ<LÔMÐMr    c                óJ   — t        | j                  |   | j                  ¬«      S r5   )r   r   r   ©r   Únames     r   Úget_column_by_namez&PandasDataFrameXchg.get_column_by_nameG   s   € Ü˜DŸH™H T™N°t×7GÑ7GÔHÐHr    c                ó˜   — | j                   j                  D �cg c]&  }t        | j                   |   | j                  ¬«      ‘Œ( c}S c c}w r5   )r   r   r   r   r8   s     r   Úget_columnszPandasDataFrameXchg.get_columnsJ   sC   € ð Ÿ™×(Ñ(ö
àô ˜Ÿ™ $™°D×4DÑ4DÖEò
ð 	
ùò 
s   ™+Ac                óæ   — t        |t        j                  «      st        d«      ‚t        |t        «      st	        |«      }t        | j                  j                  d d …|f   | j                  ¬«      S )Nz`indices` is not a sequencer   )	Ú
isinstancer   r
   Ú
ValueErrorÚlistr   r   r   r   )r   Úindicess     r   Úselect_columnsz"PandasDataFrameXchg.select_columnsP   sX   € Ü˜'¤3§<¡<Ô0ÜÐ:Ó;Ð;Ü˜'¤4Ô(Ü˜7“mˆGä"Ø�H‰H�M‰Mš!˜W˜*Ñ%°$×2BÑ2Bô
ð 	
r    c                óæ   — t        |t        j                  «      st        d«      ‚t        |t        «      st	        |«      }t        | j                  j                  d d …|f   | j                  ¬«      S )Nz`names` is not a sequencer   )	r>   r   r
   r?   r@   r   r   Úlocr   )r   Únamess     r   Úselect_columns_by_namez*PandasDataFrameXchg.select_columns_by_nameZ   sS   € Ü˜%¤§¡Ô.ÜÐ8Ó9Ð9Ü˜%¤Ô&Ü˜“KˆEä" 4§8¡8§<¡<²°5°Ñ#9Àd×FVÑFVÔWÐWr    Nc              #  ó  K  — |r{|dkD  rvt        | j                  «      }||z  }||z  dk7  r|dz  }t        d||z  |«      D ];  }t        | j                  j                  |||z   …dd…f   | j
                  ¬«      –— Œ= y| –— y­w)z9
        Return an iterator yielding the chunks.
        r/   r   Nr   )r*   r   Úranger   r   r   )r   Ún_chunksÚsizeÚstepÚstarts        r   Ú
get_chunkszPandasDataFrameXchg.get_chunksb   s”   è ø€ ñ ˜ 1šÜ�t—x‘x“=ˆDØ˜8Ñ#ˆDØ�h‰ !Ò#Ø˜‘	�Ü˜q $¨¡/°4Ó8ò �Ü)Ø—H‘H—M‘M %¨%°$©,Ð"6ºÐ"9Ñ:Ø#×/Ñ/ôó ñð ‹Jùs   ‚BB)T)r   r   r   ÚboolÚreturnÚNone)FT)r#   rN   r   rN   rO   r   )rO   zdict[str, Index])rO   Úint)rO   r   )r   rQ   rO   r   )r9   r   rO   r   )rO   zlist[PandasColumn])rA   zSequence[int]rO   r   )rE   z	list[str]rO   r   r"   )rI   z
int | NonerO   zIterable[PandasDataFrameXchg])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r$   Úpropertyr(   r+   r-   r1   r3   r6   r:   r<   rB   rF   rM   r0   r    r   r   r      sx   „ ñô
0ð =Að9Øð9Ø59ð9à	ó9ð ò0ó ð0ó
%óóó óNóIó
ó
óXõr    r   N)Ú
__future__r   Úcollectionsr   Útypingr   Úpandas.core.interchange.columnr   Ú*pandas.core.interchange.dataframe_protocolr   ÚDataFrameXchgÚpandas.core.interchange.utilsr   Úcollections.abcr	   r
   Úpandasr   r   r0   r    r   ú<module>r`      s2   ðÝ "å Ý  å 7Ý QÝ 7á÷÷
ô[˜-õ [r    