Ë
    	êñií!  ã                  óú  — U d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
 d dlmZ erd dlmZmZ d dlmZ d dlmZ d dlmZ  G d	„ d
e«      Z G d„ de«      Zeeeeef   Zded<    G d„ de«      Z G d„ de
«      Z G d„ de
«      Z G d„ de	«      Z G d„ de	«      Z  G d„ de	«      Z! G d„ de	«      Z" G d„ d«      Z# G d„ d e$«      Z% G d!„ d"«      Z&e&jO                  d «      e&_(        e&jO                  d#«      e&_)        y$)%é    )Úannotations)ÚIntEnum)ÚTYPE_CHECKINGÚAnyÚClassVarÚLiteralÚProtocolÚ	TypedDict)Úissue_unstable_warning)ÚIterableÚSequence)Ú	TypeAlias)ÚPolarsBuffer)ÚPolarsColumnc                  ó0   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zy
)ÚDlpackDeviceTypez3Integer enum for device type codes matching DLPack.é   é   é   é   é   é   é	   é
   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚCPUÚCUDAÚ
CPU_PINNEDÚOPENCLÚVULKANÚMETALÚVPIÚROCM© ó    ú]/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/polars/interchange/protocol.pyr   r      s-   „ Ù=à
€CØ€DØ€JØ€FØ€FØ€EØ
€CØ�Dr(   r   c                  ó,   — e Zd ZdZdZdZdZdZdZdZ	dZ
y	)
Ú	DtypeKindað  
    Integer enum for data types.

    Attributes
    ----------
    INT : int
        Matches to signed integer data type.
    UINT : int
        Matches to unsigned integer data type.
    FLOAT : int
        Matches to floating point data type.
    BOOL : int
        Matches to boolean data type.
    STRING : int
        Matches to string data type (UTF-8 encoded).
    DATETIME : int
        Matches to datetime data type.
    CATEGORICAL : int
        Matches to categorical data type.
    r   r   r   é   é   é   é   N)r   r   r   r   ÚINTÚUINTÚFLOATÚBOOLÚSTRINGÚDATETIMEÚCATEGORICALr'   r(   r)   r+   r+   $   s,   „ ñð* €CØ€DØ€EØ€DØ€FØ€HØ�Kr(   r+   r   ÚDtypec                  ó$   — e Zd ZdZdZdZdZdZdZy)ÚColumnNullTypea¸  
    Integer enum for null type representation.

    Attributes
    ----------
    NON_NULLABLE : int
        Non-nullable column.
    USE_NAN : int
        Use explicit float NaN value.
    USE_SENTINEL : int
        Sentinel value besides NaN.
    USE_BITMASK : int
        The bit is set/unset representing a null on a certain position.
    USE_BYTEMASK : int
        The byte is set/unset representing a null on a certain position.
    r   r   r   r   r   N)	r   r   r   r   ÚNON_NULLABLEÚUSE_NANÚUSE_SENTINELÚUSE_BITMASKÚUSE_BYTEMASKr'   r(   r)   r9   r9   F   s"   „ ñð" €LØ€GØ€LØ€KØ�Lr(   r9   c                  ó0   — e Zd ZU dZded<   ded<   ded<   y)ÚColumnBufferszBuffers backing a column.ztuple[PolarsBuffer, Dtype]Údataz!tuple[PolarsBuffer, Dtype] | NoneÚvalidityÚoffsetsN©r   r   r   r   Ú__annotations__r'   r(   r)   r@   r@   _   s   … Ù#ð %Ó$ð
 0Ó/ð /Ô.r(   r@   c                  ó0   — e Zd ZU dZded<   ded<   ded<   y)	ÚCategoricalDescriptionz$Description of a categorical column.ÚboolÚ
is_orderedzLiteral[True]Úis_dictionaryr   Ú
categoriesNrD   r'   r(   r)   rG   rG   r   s   … Ù.ð Óà Ó ð Ôr(   rG   c                  óD   — e Zd ZdZedd„«       Zedd„«       Zdd„Zd	d„Zy)
ÚBufferzInterchange buffer object.c                 ó   — y)zBuffer size in bytes.Nr'   ©Úselfs    r)   ÚbufsizezBuffer.bufsize�   ó   � r(   c                 ó   — y)z-Pointer to start of the buffer as an integer.Nr'   rO   s    r)   Úptrz
Buffer.ptr…   rR   r(   c                 ó   — y)z-Represent this structure as DLPack interface.Nr'   rO   s    r)   Ú
__dlpack__zBuffer.__dlpack__‰   rR   r(   c                 ó   — y)zCDevice type and device ID for where the data in the buffer resides.Nr'   rO   s    r)   Ú__dlpack_device__zBuffer.__dlpack_device__Œ   rR   r(   N©ÚreturnÚint)rZ   r   )rZ   z#tuple[DlpackDeviceType, int | None])	r   r   r   r   ÚpropertyrQ   rT   rV   rX   r'   r(   r)   rM   rM   ~   s6   „ Ù$àò$ó ð$ð ò<ó ð<ó<ôRr(   rM   c                  óž   — e Zd ZdZdd„Zedd„«       Zedd„«       Zedd„«       Zedd„«       Z	edd„«       Z
edd„«       Zdd	„Zddd„Zdd„Zy
)ÚColumnzInterchange column object.c                 ó   — y)zSize of the column in elements.Nr'   rO   s    r)   ÚsizezColumn.size“   rR   r(   c                 ó   — y)zOOffset of the first element with respect to the start of the underlying buffer.Nr'   rO   s    r)   ÚoffsetzColumn.offset–   rR   r(   c                 ó   — y)zData type of the column.Nr'   rO   s    r)   ÚdtypezColumn.dtypeš   rR   r(   c                 ó   — y)z7Description of the categorical data type of the column.Nr'   rO   s    r)   Údescribe_categoricalzColumn.describe_categoricalž   rR   r(   c                 ó   — y)z7Description of the null representation the column uses.Nr'   rO   s    r)   Údescribe_nullzColumn.describe_null¢   rR   r(   c                 ó   — y)z"Number of null elements, if known.Nr'   rO   s    r)   Ú
null_countzColumn.null_count¦   rR   r(   c                 ó   — y)zThe metadata for the column.Nr'   rO   s    r)   ÚmetadatazColumn.metadataª   rR   r(   c                 ó   — y)z3Return the number of chunks the column consists of.Nr'   rO   s    r)   Ú
num_chunkszColumn.num_chunks®   rR   r(   Nc                 ó   — y)z.Return an iterator yielding the column chunks.Nr'   ©rP   Ún_chunkss     r)   Ú
get_chunkszColumn.get_chunks±   rR   r(   c                 ó   — y)z6Return a dictionary containing the underlying buffers.Nr'   rO   s    r)   Úget_bufferszColumn.get_buffers´   rR   r(   rY   )rZ   r7   )rZ   rG   )rZ   ztuple[ColumnNullType, Any]©rZ   ú
int | None©rZ   zdict[str, Any]©N)rq   rv   rZ   úIterable[Column])rZ   r@   )r   r   r   r   r`   r\   rb   rd   rf   rh   rj   rl   rn   rr   rt   r'   r(   r)   r^   r^   �   s™   „ Ù$ó.ð ò^ó ð^ð ò'ó ð'ð òFó ðFð òFó ðFð ò1ó ð1ð ò+ó ð+óBô=ôEr(   r^   c                  ó˜   — e Zd ZU dZded<   	 	 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)Ú	DataFramezInterchange dataframe object.zClassVar[int]Úversionc                 ó   — y©zNConvert to a dataframe object implementing the dataframe interchange protocol.Nr'   ©rP   Únan_as_nullÚ
allow_copys      r)   Ú__dataframe__zDataFrame.__dataframe__½   rR   r(   c                 ó   — y)zThe metadata for the dataframe.Nr'   rO   s    r)   rl   zDataFrame.metadataÄ   rR   r(   c                 ó   — y)z.Return the number of columns in the dataframe.Nr'   rO   s    r)   Únum_columnszDataFrame.num_columnsÈ   rR   r(   c                 ó   — y)z9Return the number of rows in the dataframe, if available.Nr'   rO   s    r)   Únum_rowszDataFrame.num_rowsË   rR   r(   c                 ó   — y)z7Return the number of chunks the dataframe consists of..Nr'   rO   s    r)   rn   zDataFrame.num_chunksÎ   rR   r(   c                 ó   — y)zReturn the column names.Nr'   rO   s    r)   Úcolumn_nameszDataFrame.column_namesÑ   rR   r(   c                 ó   — y)z,Return the column at the indicated position.Nr'   )rP   Úis     r)   Ú
get_columnzDataFrame.get_columnÔ   rR   r(   c                 ó   — y)z&Return the column with the given name.Nr'   )rP   Únames     r)   Úget_column_by_namezDataFrame.get_column_by_name×   rR   r(   c                 ó   — y)z(Return an iterator yielding the columns.Nr'   rO   s    r)   Úget_columnszDataFrame.get_columnsÚ   rR   r(   c                 ó   — y)zACreate a new dataframe by selecting a subset of columns by index.Nr'   )rP   Úindicess     r)   Úselect_columnszDataFrame.select_columnsÝ   rR   r(   c                 ó   — y)z@Create a new dataframe by selecting a subset of columns by name.Nr'   )rP   Únamess     r)   Úselect_columns_by_namez DataFrame.select_columns_by_nameà   rR   r(   Nc                 ó   — y)z8Return an iterator yielding the chunks of the dataframe.Nr'   rp   s     r)   rr   zDataFrame.get_chunksã   rR   r(   ©FT)r€   rH   r�   rH   rZ   r{   rw   rY   ru   )rZ   zIterable[str])rŒ   r[   rZ   r^   )r�   ÚstrrZ   r^   )rZ   ry   )r”   zSequence[int]rZ   r{   )r—   zSequence[str]rZ   r{   rx   )rq   rv   rZ   zIterable[DataFrame])r   r   r   r   rE   r‚   r\   rl   r…   r‡   rn   rŠ   r�   r�   r’   r•   r˜   rr   r'   r(   r)   r{   r{   ¸   sƒ   … Ù'àÓð "Øð]àð]ð ð]ð 
ó	]ð ò.ó ð.ó=óHóFó'ó;ó5ó7óPóOõGr(   r{   c                  ó(   — e Zd ZdZ	 	 d	 	 	 	 	 dd„Zy)ÚSupportsInterchangezHDataframe that supports conversion into an interchange dataframe object.c                 ó   — yr~   r'   r   s      r)   r‚   z!SupportsInterchange.__dataframe__ê   rR   r(   Nrš   )r€   rH   r�   rH   rZ   r�   )r   r   r   r   r‚   r'   r(   r)   r�   r�   ç   s2   „ ÙRð "Øð]àð]ð ð]ð 
ô	]r(   r�   c                  ó    — e Zd ZdZdZdZdZdZy)Ú
Endiannessz.Enum indicating the byte-order of a data type.ú<ú>ú=ú|N)r   r   r   r   ÚLITTLEÚBIGÚNATIVEÚNAr'   r(   r)   r    r    ò   s   „ Ù8à€FØ
€CØ€FØ	�Br(   r    c                  ó   — e Zd ZdZy)ÚCopyNotAllowedErrorzMException raised when a copy is required, but `allow_copy` is set to `False`.N)r   r   r   r   r'   r(   r)   rª   rª   û   s   „ ÚWr(   rª   c                  ót   — e Zd ZU dZded<   dd„Zedd„«       Zedd„«       Zedd„«       Z	edd„«       Z
dd	„Zy
)ÚCompatLevelz#Data structure compatibility level.r[   Ú_versionc                ó   — d}t        |«      ‚)Nz0it is not allowed to create a CompatLevel object)Ú	TypeError)rP   Úmsgs     r)   Ú__init__zCompatLevel.__init__  s   € Ø@ˆÜ˜‹nÐr(   c                óF   — t         j                  t         «      }| |_        |S rx   )r¬   Ú__new__r­   )r|   Úcompat_levels     r)   Ú_with_versionzCompatLevel._with_version  s    € ä"×*Ñ*¬;Ó7ˆØ 'ˆÔØÐr(   c                 ó"   — t         j                  S rx   )r¬   Ú_future1r'   r(   r)   Ú_newestzCompatLevel._newest  s   € ä×#Ñ#Ð#r(   c                 ó@   — t        d«       t        j                  «       S )zô
        Get the highest supported compatibility level.

        .. warning::
            Highest compatibility level is considered **unstable**. It may be changed
            at any point without it being considered a breaking change.
        z=using the highest compatibility level is considered unstable.)r   r¬   r¸   r'   r(   r)   ÚnewestzCompatLevel.newest  s    € ô 	ØKô	
ô ×"Ñ"Ó$Ð$r(   c                 ó"   — t         j                  S )zGet the most compatible level.)r¬   Ú_compatibler'   r(   r)   ÚoldestzCompatLevel.oldest   s   € ô ×&Ñ&Ð&r(   c                ó~   — d| j                   j                  › d| j                   j                  › d| j                  › d�S )Nr¡   ú.z: r¢   )Ú	__class__r   r   r­   rO   s    r)   Ú__repr__zCompatLevel.__repr__%  s8   € Ø�4—>‘>×,Ñ,Ð-¨Q¨t¯~©~×/JÑ/JÐ.KÈ2ÈdÏmÉmÈ_Ð\]Ð^Ð^r(   N)rZ   ÚNone)r|   r[   rZ   r¬   )rZ   r¬   )rZ   r›   )r   r   r   r   rE   r±   Ústaticmethodrµ   r¸   rº   r½   rÁ   r'   r(   r)   r¬   r¬   ÿ   se   … Ù-àƒMóð òó ðð
 ò$ó ð$ð ò%ó ð%ð ò'ó ð'ô_r(   r¬   r   N)*Ú
__future__r   Úenumr   Útypingr   r   r   r   r	   r
   Úpolars._utils.unstabler   Úcollections.abcr   r   r   Úpolars.interchange.bufferr   Úpolars.interchange.columnr   r   r+   Útupler[   r›   r7   rE   r9   r@   rG   rM   r^   r{   r�   r    ÚRuntimeErrorrª   r¬   rµ   r¼   r·   r'   r(   r)   ú<module>rÍ      s  ðÞ "å ÷÷ õ :áß2Ý å6Ý6ô
�wô 
ô�ô ð> ˜ C¨¨cÐ1Ñ2€€yÓ 2ô�Wô ô2/�Iô /ô&	˜Yô 	ôRˆXô Rô$%EˆXô %EôP,G�ô ,Gô^]˜(ô ]÷ñ ôX˜,ô X÷'_ñ '_ðT &×3Ñ3°AÓ6€Ô Ø"×0Ñ0°Ó3€Õ r(   