Ë
    	êñij  ã                  ó  — d dl mZ d dlZd dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZ d dlmZmZ d d	lmZ d d
lmZmZ erd dlmZ d dlmZmZ d dlmZmZ ddœdd„Z	 	 	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Z 	 	 	 	 	 	 	 	 	 	 dd„Z!y)é    )ÚannotationsN)Údatetime)ÚPath)ÚTYPE_CHECKINGÚAny)Ú_DELTALAKE_AVAILABLEÚ	deltalake)Úeprint)ÚNullÚTime)Úunpack_dtypes)ÚPOLARS_STORAGE_CONFIG_KEYSÚ_get_path_scheme)Ú
DeltaTable)Ú	DataFrameÚDataType)Ú
SchemaDictÚStorageOptionsDictT)Ústrictc               óŽ   — t        t        | «      €.t        | «      j                  «       j	                  |«      «      }|S | «      }|S )N)Ústrr   r   Ú
expanduserÚresolve)Ú	table_urir   Úresolved_uris      úX/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/polars/io/delta/_utils.pyÚ_resolve_delta_lake_urir      sP   € Üä˜IÓ&Ð.ô 	ˆY‹×"Ñ"Ó$×,Ñ,¨VÓ4ó€Lð Ðð ó€Lð Ðó    c                óê  — t        «        |�+|j                  «       D ��ci c]  \  }}|t        vr||“Œ }}}t        | t        j
                  «      r2t        |du|du|dug«      rt        j                  dt        d¬«       | S |€i }t        | «      }t        |t        t        f«      st	        j
                  |f||dœ|¤Ž}|S t	        j
                  | fd|i|¤Ž}|j                  |«       |S c c}}w )zê
    Initialize a Delta lake table for use in read and scan operations.

    Notes
    -----
    Make sure to install deltalake>=0.8.0. Read the documentation
    `here <https://delta-io.github.io/delta-rs/usage/installation/>`_.
    Nz²When supplying a DeltaTable directly, `version`, `storage_options`, and `delta_table_options` are ignored.
                To silence this warning, don't supply those parameters.é   )Ú
stacklevel)ÚversionÚstorage_optionsr#   )Ú_check_if_delta_availableÚitemsr   Ú
isinstancer	   r   ÚanyÚwarningsÚwarnÚRuntimeWarningr   r   r   Úload_as_version)Ú
table_pathr"   r#   Údelta_table_optionsÚkÚvr   Údl_tbls           r   Ú_get_delta_lake_tabler1      s7  € ô ÔàÐ"ð (×-Ñ-Ó/÷
á��1ØÔ2Ñ2ð ˆq‰Dð
ˆñ 
ô �*œi×2Ñ2Ô3Üà˜tÐ#Ø tÐ+Ø#¨4Ð/ðô
ô �M‰MðKäØõ	ð ÐØÐ"Ø ÐÜ*¨:Ó6€LÜ�g¤¤X˜Ô/Ü×%Ñ%Øð
àØ+ñ
ð "ñ	
ˆð €Mô ×%Ñ%Øñ
à+ð
ð "ñ
ˆð
 	×Ñ˜wÔ'à€MùóO
s    C/c                 ó*   — t         sd} t        | «      ‚y )Nz=deltalake is not installed

Please run: pip install deltalake)r   ÚModuleNotFoundError)Úmsgs    r   r$   r$   [   s   € ÝØOˆÜ! #Ó&Ð&ð  r   c                óZ   — t        | Ž }t        t        h}||z  x}rd|›�}t        |«      ‚y )Nz+dataframe contains unsupported data types: )r   r   r   Ú	TypeError)ÚdtypesÚschema_dtypesÚunsupported_typesÚoverlapr4   s        r   Ú_check_for_unsupported_typesr;   a   sD   € Ü! 6Ð*€MÜœt˜Ðð
  Ð"3Ñ3Ð3€wÐ3Ø;¸G¸;ÐGˆÜ˜‹nÐð 4r   c               ó”  — dd l }d| vr|rt        d«       y d| d   i}d| v r-| d   j                  j                  «       j	                  d¬«      ni }d| v r-| d   j                  j                  «       j	                  d¬«      ni }d	| v r-| d	   j                  j                  «       j	                  d¬«      ni }|D ]ñ  }	|j                  |	«      x}
€<|j                  d g|j                  «       ¬
«      j                  d| j                  «      }
|j                  |	«      x}€1|j                  d g||	   ¬
«      j                  d| j                  «      }|j                  |	«      x}€1|j                  d g||	   ¬
«      j                  d| j                  «      }|
||	› d�<   |||	› d�<   |||	› d�<   Œó |j                  || j                  ¬«      S )Nr   Únum_recordszDscan_delta: statistics load failed: 'num_records' column not presentÚlenÚ
null_countT)Ú	as_seriesÚminÚmax)ÚdtypeÚ_ncÚ_minÚ_max)Úheight)Úpolarsr
   ÚstructÚunnestÚto_dictÚgetÚSeriesÚget_index_typeÚnew_from_indexrG   r   )Úadd_actions_dfÚfilter_columnsÚschemaÚverboseÚplÚoutÚnull_count_colsÚmin_colsÚmax_colsÚcol_nameÚcol_ncÚcol_minÚcol_maxs                r   Ú0_extract_table_statistics_from_delta_add_actionsr]   m   s  € ó à˜NÑ*ÙÜØVôð à!&¨°}Ñ(EÐ F€Cð ˜>Ñ)ð 	�|Ñ$×+Ñ+×2Ñ2Ó4×<Ñ<ÀtÐ<ÔLàð ð �NÑ"ð 	�uÑ×$Ñ$×+Ñ+Ó-×5Ñ5ÀÐ5ÔEàð ð �NÑ"ð 	�uÑ×$Ñ$×+Ñ+Ó-×5Ñ5ÀÐ5ÔEàð ð #ò )ˆØ%×)Ñ)¨(Ó3Ð3ˆFÐ<Ø—Y‘Y ˜v¨R×->Ñ->Ó-@�YÓA×PÑPØ�>×(Ñ(óˆFð  —|‘| HÓ-Ð-ˆGÐ6Ø—i‘i  ¨f°XÑ.>�iÓ?×NÑNØ�>×(Ñ(óˆGð  —|‘| HÓ-Ð-ˆGÐ6Ø—i‘i  ¨f°XÑ.>�iÓ?×NÑNØ�>×(Ñ(óˆGð !'ˆˆxˆj˜ÐÑØ!(ˆˆxˆj˜ÐÑØ!(ˆˆxˆj˜ÐÒð#)ð& �<‰<˜ N×$9Ñ$9ˆ<Ó:Ð:r   )r   z
str | Pathr   ÚboolÚreturnr   )NNN)
r,   zstr | Path | DeltaTabler"   zint | str | datetime | Noner#   zStorageOptionsDict | Noner-   zdict[str, Any] | Noner_   zdeltalake.DeltaTable)r_   ÚNone)r7   zlist[DataType]r_   r`   )
rP   r   rQ   z	list[str]rR   r   rS   r^   r_   zDataFrame | None)"Ú
__future__r   r(   r   Úpathlibr   Útypingr   r   Úpolars._dependenciesr   r	   Úpolars._utils.loggingr
   Úpolars.datatypesr   r   Úpolars.datatypes.convertr   Úpolars.io.cloud._utilsr   r   r   rH   r   r   Úpolars._typingr   r   r   r1   r$   r;   r]   © r   r   ú<module>rk      s¹   ðÝ "ã Ý Ý ß %ç @Ý (ß 'Ý 2ß OáÝ$ç*ß=ð FJõ ð ,0Ø15Ø15ð	9Ø'ð9à(ð9ð /ð9ð /ð	9ð
 ó9óx'ó	ð6;Øð6;ð ð6;ð ð	6;ð
 ð6;ð ô6;r   