Ë
    ¤eh'  ã                  ó†   — 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        d¬«      | _        || _        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__`.
        F)ÚcolumnsÚcopyN©Ú
allow_copy)	ÚrenameÚstrÚ_dfÚ_allow_copyÚ	enumerater   r   ÚilocÚisetitem)ÚselfÚdfr   ÚiÚ_colÚ	rechunkeds         ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/core/interchange/dataframe.pyÚ__init__zPandasDataFrameXchg.__init__   sy   € ð
 —9‘9¤S¨u�9Ó5ˆŒØ%ˆÔÜ  §¡×!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 r6   )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 r6   )r   r   r   r   r9   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@   rA   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.
        r0   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$   rO   r   rO   rP   r   )rP   zdict[str, Index])rP   Úint)rP   r   )r   rR   rP   r   )r:   r   rP   r   )rP   zlist[PandasColumn])rB   zSequence[int]rP   r   )rF   z	list[str]rP   r   r#   )rJ   z
int | NonerP   zIterable[PandasDataFrameXchg])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r%   Úpropertyr)   r,   r.   r2   r4   r7   r;   r=   rC   rG   rN   r1   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   r1   r!   r   ú<module>ra      s2   ðÝ "å Ý  å 7Ý QÝ 7á÷÷
ô[˜-õ [r!   