Ë
    	êñiò*  ã                  óö  — 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 d dlmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZmZmZ d d
lmZmZm Z  er d dl!m"Z"m#Z# d dl$m%Z% d dlm&Z&m'Z'm(Z(m)Z) d dlm"Z*  ed«      ddœdd„«       Z+dd„Z,	 	 	 	 	 	 dd„Z-	 	 	 	 	 	 	 	 dd„Z.d d„Z/d d„Z0	 d!	 	 	 	 	 	 	 	 	 	 	 d"d„Z1	 	 	 	 	 	 	 	 	 	 d#d„Z2	 d!	 	 	 	 	 	 	 	 	 	 	 	 	 d$d„Z3	 d!	 	 	 	 	 	 	 	 	 	 	 d%d„Z4	 	 	 	 	 	 	 	 d&d„Z5y)'é    )Úannotations)ÚTYPE_CHECKINGN)Ú
deprecated)Úqualified_type_name)ÚBooleanÚEnumÚInt64ÚStringÚUInt8ÚUInt32)ÚInvalidOperationError)ÚPolarsDataFrame)ÚColumnNullTypeÚCopyNotAllowedErrorÚ	DtypeKind)Údtype_to_polars_dtypeÚget_buffer_length_in_elementsÚ!polars_dtype_to_data_buffer_dtype)Ú	DataFrameÚSeries)ÚPolarsDataType)ÚBufferÚColumnÚDtypeÚSupportsInterchange)r   zQSupport for the dataframe interchange protocol is deprecated since version 1.40.0T©Ú
allow_copyc               óø   — t        | t        j                  «      r| S t        | t        «      r| j                  S t        | d«      sdt        | «      ›d�}t        |«      ‚t        | j                  |¬«      |¬«      S )a÷  
    Build a Polars DataFrame from any dataframe supporting the interchange protocol.

    .. deprecated:: 1.40.0
        Support for the Dataframe Interchange Protocol is deprecated.

    Parameters
    ----------
    df
        Object supporting the dataframe interchange protocol, i.e. must have implemented
        the `__dataframe__` method.
    allow_copy
        Allow memory to be copied to perform the conversion. If set to False, causes
        conversions that are not zero-copy to fail.
    Ú__dataframe__z`df` of type z4 does not support the dataframe interchange protocolr   )
Ú
isinstanceÚplr   r   Ú_dfÚhasattrr   Ú	TypeErrorÚ_from_dataframer   )Údfr   Úmsgs      úc/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/polars/interchange/from_dataframe.pyÚfrom_dataframer)      su   € ô& �"”b—l‘lÔ#Øˆ	Ü	�BœÔ	(Ø�v‰vˆä�2�Ô'ØÔ1°"Ó5Ð8Ð8lÐmˆÜ˜‹nÐäØ
×Ñ JÐÓ/Øôð ó    c               óÚ   — g }| j                  «       D ]   }t        ||¬«      }|j                  |«       Œ" |st        | |¬«      }|j                  |«       t        j                  |d¬«      S )Nr   F)Úrechunk)Ú
get_chunksÚ_protocol_df_chunk_to_polarsÚappendÚFÚconcat)r&   r   ÚchunksÚchunkÚpolars_chunks        r(   r%   r%   <   sb   € Ø€FØ—‘“ò $ˆÜ3°EÀjÔQˆØ�‰�lÕ#ð$ñ
 Ü3°BÀ:ÔNˆØ�‰�lÔ#ä�8‰8�F EÔ*Ð*r*   c               óv  — g }t        | j                  «       | j                  «       d¬«      D ]v  \  }}t        |j                  «      }|t
        k(  rt        ||¬«      }n%|t        k(  rt        ||¬«      }nt        |||¬«      }|j                  |j                  |«      «       Œx t        j                  |«      S )NT)Ústrictr   )ÚzipÚget_columnsÚcolumn_namesr   Údtyper
   Ú_string_column_to_seriesr   Ú_categorical_column_to_seriesÚ_column_to_seriesr/   Úaliasr!   r   )r&   r   ÚcolumnsÚcolumnÚnamer:   Úss          r(   r.   r.   J   sš   € ð €GÜ˜BŸN™NÓ,¨b¯o©oÓ.?ÈÔMò &‰ˆ�Ü% f§l¡lÓ3ˆØ”FŠ?Ü(¨¸JÔG‰AØ”dŠ]Ü-¨fÀÔL‰Aä! &¨%¸JÔGˆAØ�‰�q—w‘w˜t“}Õ%ð&ô �<‰<˜Ó Ð r*   c               óì   — | j                  «       }| j                  }t        g |d   ¢| j                  «       ‘|‘­d|iŽ}t	        |d   | ||||¬«      }t
        j                  j                  |||¬«      S )NÚdatar   Úvalidityr   ©rD   rE   )Úget_buffersÚoffsetÚ_construct_data_bufferÚsizeÚ_construct_validity_bufferr!   r   Ú_from_buffers)r@   r:   r   ÚbuffersrH   Údata_bufferÚvalidity_buffers          r(   r=   r=   [   s‹   € ð × Ñ Ó"€GØ�]‰]€Fä(ð Ø	�‰ðØ Ÿ+™+›-ðØ)/òØ<Fñ€Kô 1Ø�
Ñ˜V U¨K¸ÈJô€Oô �9‰9×"Ñ" 5¨{À_Ð"ÓUÐUr*   c               ó  — | j                  «       dk(  rt        j                  t        ¬«      S |sd}t	        |«      ‚| j                  «       }| j                  }|d   }|€d}t        |«      ‚t        g |¢|‘­d|iŽ}|d   \  }}t        |||j                  d|¬«      }	|	|g}
t        j                  j                  t        |
d ¬	«      }t        |d
   | t        |||¬«      }|�&t        j                  j                  t        |
|¬	«      }|S )Nr   ©r:   z string buffers must be convertedÚoffsetsz5cannot create String column without an offsets bufferr   rD   )rH   r   rF   rE   r   )rJ   r!   r   r
   r   rG   rH   ÚRuntimeErrorÚ_construct_offsets_bufferrI   ÚbufsizerL   rK   )r@   r   r'   rM   rH   Úoffsets_buffer_infoÚoffsets_bufferÚbufferr:   rN   Údata_buffersrD   rO   s                r(   r;   r;   j   s(  € Ø‡{�{ƒ}˜ÒÜ�y‰yœvÔ&Ð&ÙØ0ˆÜ! #Ó&Ð&à× Ñ Ó"€GØ�]‰]€Fà! )Ñ,ÐØÐ"ØEˆÜ˜3ÓÐÜ.ð Ø	ðØ$òØ1;ñ€Nð ˜F‘O�M€FˆEÜ(Ø��v—~‘~¨a¸Jô€Kð   Ð0€LÜ�9‰9×"Ñ"¤6°ÀtÐ"ÓL€Dô 1Ø�
Ñ˜V¤V¨T°6Àjô€Oð Ð"Ü�y‰y×&Ñ&Ü˜°ð 'ó 
ˆð €Kr*   c               ó¼  — | j                   }|d   sd}t        |«      ‚|d   }|j                  «       dk(  rt        g «      }nE|j                  d   t
        j                  k7  rd}t        |«      ‚t        ||¬«      }t        |«      }| j                  «       }| j                  }t        g |d   ¢| j                  «       ‘|‘­d|iŽ}	t        |d	   | ||	||¬«      }
|	j                  }t        j                  j                  ||	|
¬
«      }|t        k7  r;|s$| j                  «       dkD  rd|› d�}t!        |«      ‚|j#                  t        «      }|j#                  |«      S )NÚis_dictionaryz1non-dictionary categoricals are not yet supportedÚ
categoriesr   z'non-string categories are not supportedr   rD   r   rE   rF   zdata buffer must be cast from z
 to UInt32)Údescribe_categoricalÚNotImplementedErrorrJ   r   r:   r   ÚSTRINGr;   rG   rH   rI   rK   r!   r   rL   r   r   Úcast)r@   r   Úcategoricalr'   Úcategories_colr:   r\   rM   rH   rN   rO   Ú
data_dtypeÚouts                r(   r<   r<   ’   so  € Ø×-Ñ-€KØ�Ò'ØAˆÜ! #Ó&Ð&à  Ñ.€NØ×ÑÓ Ò!Ü�R“‰Ø	×	Ñ	˜aÑ	 ¤I×$4Ñ$4Ò	4Ø7ˆÜ! #Ó&Ð&ä-¨nÈÔTˆ
Ü�ZÓ ˆà× Ñ Ó"€GØ�]‰]€Fä(ð Ø	�‰ðØ Ÿ+™+›-ðØ)/òØ<Fñ€Kô 1Ø�
Ñ˜V U¨K¸ÈJô€Oð ×"Ñ"€JÜ
�)‰)×
!Ñ
!Ø˜¨ð "ó €Cð
 ”VÒÙ˜fŸk™k›m¨aÒ/Ø2°:°,¸jÐIˆCÜ% cÓ*Ð*ð �h‰h”vÓˆà�8‰8�E‹?Ðr*   c               ó€  — t        |«      }t        |«      }| j                  ||f}|t        k(  ro|d   dk(  rg|dk(  rt	        j
                  t        ¬«      S |sd}t        |«      ‚t        j
                  j                  t        || ¬«      j                  t        «      S t        j
                  j                  ||| ¬«      S )Né   é   r   rQ   zBbyte-packed boolean buffer must be converted to bit-packed boolean©Úowner)
r   r   Úptrr   r!   r   r   Ú_from_bufferr   r`   )rX   r:   ÚlengthrH   r   Úpolars_dtypeÚbuffer_infor'   s           r(   rI   rI   À   sª   € ô )¨Ó/€Lô
 5°\ÓB€Là—:‘:˜v vÐ.€Kð ”wÒ 5¨¡8¨q¢=Ø�QŠ;Ü—9‘9¤7Ô+Ð+ÙØVˆCÜ% cÓ*Ð*Ü�y‰y×%Ñ%¤e¨[ÀÐ%ÓG×LÑLÌWÓUÐUä�9‰9×!Ñ! ,°À6Ð!ÓJÐJr*   c               ó  — t        |«      }t        | j                  |«      |z
  }| j                  ||f}t        j
                  j                  ||| ¬«      }|t        k7  r(|sd|› d�}t        |«      ‚|j                  t        «      }|S )Nrh   z!offsets buffer must be cast from z	 to Int64)
r   r   rU   rj   r!   r   rk   r	   r   r`   )	rX   r:   rH   r   rm   rl   rn   rB   r'   s	            r(   rT   rT   Ý   s†   € ô )¨Ó/€LÜ*¨6¯>©>¸5ÓAÀFÑJ€Fà—:‘:˜v vÐ.€KÜ
�	‰	×Ñ˜|¨[ÀÐÓG€Að ”uÒÙØ5°l°^À9ÐMˆCÜ% cÓ*Ð*Ø�F‰F”5‹Mˆà€Hr*   c               ó¶  — |j                   \  }}|t        j                  k(  s|j                  dk(  ry |t        j                  k(  r&| €y | d   }t        |||j                  «       ||¬«      S |t        j                  k(  r| €y | d   }t        |||¬«      S |t        j                  k(  r|sd}	t        |	«      ‚|j                  «       S |t        j                  k(  rL|sd}	t        |	«      ‚t        j                  |g«      }
	 |j                  «       r|
j!                  |«      }
||
k7  S d|›�}	t'        |	«      ‚# t"        $ r}d|› d|›�}	t%        |	«      |‚d }~ww xY w)Nr   r   zbitmask must be constructedz*invalid sentinel value for column of type z: zunsupported null type: )Údescribe_nullr   ÚNON_NULLABLEÚ
null_countÚUSE_BITMASKÚ'_construct_validity_buffer_from_bitmaskrJ   ÚUSE_BYTEMASKÚ(_construct_validity_buffer_from_bytemaskÚUSE_NANr   Ú
is_not_nanÚUSE_SENTINELr!   r   Úis_temporalr`   r   r$   r^   )Úvalidity_buffer_infor@   Úcolumn_dtyperD   rH   r   Ú	null_typeÚ
null_valuerX   r'   ÚsentinelÚes               r(   rK   rK   ô   s|  € ð #×0Ñ0Ñ€IˆzØ”N×/Ñ/Ò/°6×3DÑ3DÈÒ3IØà	”n×0Ñ0Ò	0ØÐ'ØØ% aÑ(ˆÜ6Ø�J §¡£¨vÀ*ô
ð 	
ð 
”n×1Ñ1Ò	1ØÐ'ØØ% aÑ(ˆÜ7Ø�J¨:ô
ð 	
ð 
”n×,Ñ,Ò	,ÙØ/ˆCÜ% cÓ*Ð*Ø�‰Ó Ð à	”n×1Ñ1Ò	1ÙØ/ˆCÜ% cÓ*Ð*ä—9‘9˜j˜\Ó*ˆð	(Ø×'Ñ'Ô)Ø#Ÿ=™=¨Ó6�Ø˜8Ñ#Ð#ð (¨	 }Ð5ˆÜ! #Ó&Ð&øô %ò 	(Ø>¸|¸nÈBÈzÈnÐ]ˆCÜ˜C“. aÐ'ûð	(ús   Ä %D6 Ä6	EÄ?EÅEc               óœ   — | j                   ||f}t        j                  j                  t        || «      }|dk7  r|sd}t        |«      ‚| }|S )Nr   zbitmask must be inverted)rj   r!   r   rk   r   r   )rX   r   rl   rH   r   rn   rB   r'   s           r(   ru   ru   *  sR   € ð —:‘:˜v vÐ.€KÜ
�	‰	×Ñœw¨°VÓ<€Aà�Q‚ÙØ,ˆCÜ% cÓ*Ð*ØˆBˆà€Hr*   c               óÜ   — |sd}t        |«      ‚| j                  d| j                  f}t        j                  j                  t        || ¬«      }|j                  t        «      }|dk7  r| }|S )Nz)bytemask must be converted into a bitmaskr   rh   )	r   rj   rU   r!   r   rk   r   r`   r   )rX   r   r   r'   rn   rB   s         r(   rw   rw   >  sf   € ñ Ø9ˆÜ! #Ó&Ð&à—:‘:˜q &§.¡.Ð1€KÜ
�	‰	×Ñœu k¸ÐÓ@€AØ	�‰Œw‹€Aà�Q‚ØˆBˆà€Hr*   )r&   r   r   ÚboolÚreturnr   )r&   ÚInterchangeDataFramer   r„   r…   r   )r@   r   r:   r   r   r„   r…   r   )r@   r   r   r„   r…   r   )r   )rX   r   r:   r   rl   ÚintrH   r‡   r   r„   r…   r   )
rX   r   r:   r   rH   r‡   r   r„   r…   r   )r|   ztuple[Buffer, Dtype] | Noner@   r   r}   r   rD   r   rH   r‡   r   r„   r…   zSeries | None)rX   r   r   r‡   rl   r‡   rH   r‡   r   r„   r…   r   )rX   r   r   r‡   r   r„   r…   r   )6Ú
__future__r   Útypingr   Úpolars._reexportÚ	_reexportr!   Úpolars.functionsÚ	functionsr0   Úpolars._utils.deprecationr   Úpolars._utils.variousr   Úpolars.datatypesr   r   r	   r
   r   r   Úpolars.exceptionsr   Úpolars.interchange.dataframer   Úpolars.interchange.protocolr   r   r   Úpolars.interchange.utilsr   r   r   Úpolarsr   r   Úpolars._typingr   r   r   r   r   r†   r)   r%   r.   r=   r;   r<   rI   rT   rK   ru   rw   © r*   r(   ú<module>r˜      sö  ðÝ "å  å Ý Ý 0Ý 5ß H× HÝ 3Ý 8ß VÑ V÷ñ ñ ß(Ý-ßVÓVÝMñ ØWóð CGô óðó>+ð!Øð!Ø-1ð!àó!ð"VØðVØ)ðVØ:>ðVàóVó%óP+ðd ð	KØðKàðKð ðKð ð	Kð ðKð óKð:Øðàðð ðð
 ðð óð8 ð3'Ø5ð3'àð3'ð !ð3'ð ð	3'ð
 ð3'ð ð3'ð ó3'ðt ð	Øðàðð ðð ð	ð ðð óð(Øðàðð ð	ð
 ôr*   