Ë
    	êñiRZ  ã                  ó  — U d dl mZ d dlZd dlmZ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 d dlmZ d dlmZ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r&d dl"Z#d dl$Z%d dl&Z%d dl'Z%d dl(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/«      Z0 ed¬«       G d„ d«      «       Z1e2e1z  Z3de4d<    ed¬«       G d„ d«      «       Z5 ed¬«       G d„ d«      «       Z6 ed¬«       G d„ d«      «       Z7 G d„ d e«      Z8 ed¬«       G d!„ d"e8«      «       Z9 ed¬«       G d#„ d$e8«      «       Z:dNd%„Z;	 	 	 	 dOd&„Z<i d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJdKœ¥Z=dLe4dM<   y)Pé    )ÚannotationsN)ÚABCÚabstractmethod)Ú	dataclass)Úpartial)Úperf_counter)ÚTYPE_CHECKINGÚAnyÚFinalÚLiteralÚ	TypeAlias)ÚeprintÚverboseÚverbose_print_sensitive)ÚComputeError)ÚIcebergStatisticsLoaderÚ)IdentityTransformedPartitionValuesBuilderÚ#_normalize_windows_iceberg_file_uriÚtry_convert_pyarrow_predicate)ÚScanCastOptions)ÚStorageOptionsDict)ÚNoPickleOption)Ú	LazyFramec                  ó(   — e Zd Zeedd„«       «       Zy)ÚIcebergTableSerializerc                 ó   — y ©N© ©Útables    ú\/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/polars/io/iceberg/_dataset.pyÚserialize_tablez&IcebergTableSerializer.serialize_table"   s   € àORó    N©r    úpyiceberg.table.TableÚreturnÚSerializedTableState)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r"   r   r#   r!   r   r   !   s   „ ØØÚRó ó áRr#   r   c                  ó   — e Zd Zedd„«       Zy)ÚIcebergScanTableSerializerc                ó   — | j                   S r   )Úmetadata_locationr   s    r!   r"   z*IcebergScanTableSerializer.serialize_table(   s   € à×&Ñ&Ð&r#   Nr$   )r(   r)   r*   r+   r"   r   r#   r!   r-   r-   '   s   „ Øò'ó ñ'r#   r-   T)Úkw_onlyc                  ó"   — e Zd ZU ded<   ded<   y)ÚIcebergCatalogTableDescriptorz"str | pyiceberg.typedef.IdentifierÚtable_identifierÚIcebergCatalogConfigÚcatalog_configN)r(   r)   r*   Ú__annotations__r   r#   r!   r2   r2   -   s   … à8Ó8Ø(Ô(r#   r2   r   r'   c                  óV   — e Zd ZU ded<   ded<   ded<   ded<   dd	„Zdd
„Zdd„Zdd„Zy)ÚIcebergTableWrapz%NoPickleOption[pyiceberg.table.Table]Útable_zSerializedTableState | NoneÚtable_descriptor_r   Ú
serializerúStorageOptionsDict | NoneÚiceberg_storage_propertiesc                ó\  — | j                   j                  «       �€xt        «       rqt        | j                  t
        «      r:d| j                  j                  ›d| j                  j                  j                  ›�nd| j                  › �}t        d|› �«       | j                  €J ‚t        | j                  t
        «      r‰ | j                  j                  j                  | j                  j                  j                  fi | j                  j                  j                  ¤Ž}|j                  | j                  j                  «      }n1ddlm} |j                  | j                  | j                   xs i ¬«      }| j                   j#                  |«       | j                   j                  «       S )z!Fetch the PyIceberg Table object.zDcatalog table descriptor: self.table_descriptor_.table_identifier = z1, self.table_descriptor_.catalog_config.class_ = zmetadata path: z'IcebergTableWrap: construct table from r   )ÚStaticTable)r/   Ú
properties)r9   Úgetr   Ú
isinstancer:   r2   r3   r5   Úclass_r   Únamer@   Ú
load_tableÚpyiceberg.tabler?   Úfrom_metadatar=   Úset)ÚselfÚfrom_Úcatalogr    r?   s        r!   rA   zIcebergTableWrap.get=   sr  € à�;‰;�?‰?ÓÑ$ÜŒyô
 " $×"8Ñ"8Ô:WÔXðBØ×-Ñ-×>Ñ>ÐBð CGØ×-Ñ-×<Ñ<×CÑCÐGñIð +¨4×+AÑ+AÐ*BÐCð ô Ð@ÀÀÐHÔIà×)Ñ)Ð5Ð5Ð5ä˜$×0Ñ0Ô2OÔPØF˜$×0Ñ0×?Ñ?×FÑFØ×*Ñ*×9Ñ9×>Ñ>ñà×,Ñ,×;Ñ;×FÑFñ�ð
  ×*Ñ*¨4×+AÑ+A×+RÑ+RÓS‘å7à#×1Ñ1Ø&*×&<Ñ&<Ø#×>Ñ>ÒDÀ"ð 2ó �ð
 �K‰K�O‰O˜EÔ"à�{‰{�‰Ó Ð r#   c                óV   — ddl m}  || j                  «       j                  «       «      S )z$Fetch the arrow schema of the table.r   ©Úschema_to_pyarrow)Úpyiceberg.io.pyarrowrN   rA   Úschema)rI   rN   s     r!   Úarrow_schemazIcebergTableWrap.arrow_schema`   s   € å:á  §¡£×!2Ñ!2Ó!4Ó5Ð5r#   c                ó®   — | j                   j                  «       x}� | j                  j                  |«      | _        | j                  €J ‚| j
                  S r   )r9   rA   r;   r"   r:   Ú__dict__)rI   r    s     r!   Ú__getstate__zIcebergTableWrap.__getstate__f   sK   € Ø—[‘[—_‘_Ó&Ð&ˆEÐ3Ø%)§_¡_×%DÑ%DÀUÓ%KˆDÔ"à×%Ñ%Ð1Ð1Ð1à�}‰}Ðr#   c                ó   — || _         y r   )rS   )rI   Ústates     r!   Ú__setstate__zIcebergTableWrap.__setstate__n   s	   € Øˆ�r#   N)r&   r%   ©r&   z	pa.schema)r&   údict[str, Any])rV   rY   r&   ÚNone)r(   r)   r*   r6   rA   rQ   rT   rW   r   r#   r!   r8   r8   6   s/   … à1Ó1Ø2Ó2Ø&Ó&Ø 9Ó9ó!!óF6óôr#   r8   c                  ó`   — e Zd ZU dZded<   ded<   ded<   edd„«       Ze	 	 	 	 	 	 dd	„«       Zy
)r4   aI  
    Configuration for constructing a PyIceberg catalog.

    This is useful for constructing queries from a client that may not have
    access to a catalog server.

    .. warning::
        This functionality is considered **unstable**. It may be changed
        at any point without it being considered a breaking change.
    ztype[pyiceberg.catalog.Catalog]rC   ÚstrrD   údict[str, str]r@   c                óX   — t        t        | «      | j                  | j                  ¬«      S )a  
        Constructs an IcebergCatalogConfig from an instantiated PyIceberg catalog.

        .. warning::
            This functionality is considered **unstable**. It may be changed
            at any point without it being considered a breaking change.
        )rC   rD   r@   )r4   ÚtyperD   r@   )rK   s    r!   Úfrom_catalogz!IcebergCatalogConfig.from_catalogƒ   s(   € ô $Ü˜“=Ø—‘Ø×)Ñ)ô
ð 	
r#   c               óV  — dd l }ddlm} dd l}ddlm} t        | t        «      r| }n°t        | |j                  j                  «      rt        j                  | «      }nz| �dt        | «      › �}t        |«      ‚|j                  j                  j                  «       r ||› d�«       	 |j                  j                  «       }t        j                  |«      }|j$                  |k(  rd|› d�}t        |«      ‚|S # t         $ r%}	|dk(  rdnd}
d	|› d
|	›d|
› �}t#        |«      |	‚d }	~	ww xY w)Nr   )ÚNoopCatalog)r   z&unknown type for `catalog` parameter: z,(): calling pyiceberg.catalog.load_catalog()Úscan_icebergzO If you intended to pass a static metadata path, ensure it is an absolute path.Ú zfailed to load catalog for z() (error = z�). Configure the default PyIceberg catalog, or pass a catalog via the 'catalog' parameter, or pass a PyIceberg table object instead of the name.zcannot use NoopCatalog with z())Úpyiceberg.catalogÚpyiceberg.catalog.nooprb   Úpolars._utils.loggingr   rB   r4   rK   ÚCatalogr`   r_   Ú	TypeErrorÚ_utilsÚloggingr   Úload_catalogÚ	Exceptionr   rC   )rK   Úfn_nameÚ	pyicebergrb   Úpolarsr   r5   ÚmsgÚdefault_catalogÚerrorÚstatic_metadata_hints              r!   Ú*_from_api_parameter_or_environment_defaultz?IcebergCatalogConfig._from_api_parameter_or_environment_default’   sD  € ó 	!Ý6ã$Ý0ä�gÔ3Ô4Ø$‰NÜ˜ ×!2Ñ!2×!:Ñ!:Ô;Ü1×>Ñ>¸wÓG‰NØÐ Ø:¼4À»=¸/ÐJˆCÜ˜C“.Ð à�}‰}×$Ñ$×,Ñ,Ô.Ù˜'˜Ð"NÐOÔPð3Ø"+×"3Ñ"3×"@Ñ"@Ó"B�ô, 2×>Ñ>¸ÓOˆNà× Ñ  KÒ/Ø0°°	¸Ð<ˆCÜ˜C“.Ð àÐøô5 ò 3ð  .Ò0ñ	9ð
 ð %ð 2°'°¸-¸u¸jð I8ð ,Ð,ð	.ð ô # 3Ó'¨UÐ2ûð%3ús   Â)C: Ã:	D(Ä D#Ä#D(N)rK   zpyiceberg.catalog.Catalogr&   r4   )rK   z7pyiceberg.catalog.Catalog | IcebergCatalogConfig | Nonern   z'Literal['scan_iceberg', 'sink_iceberg']r&   r4   )r(   r)   r*   Ú__doc__r6   r+   r`   ru   r   r#   r!   r4   r4   r   s\   … ñ	ð ,Ó+Ø
ƒIØÓàò
ó ð
ð ð3ØHð3ð 9ð3ð 
ò	3ó ñ3r#   r4   c                  ó®   — e Zd ZU dZded<   ded<   ded<   ded	<   ded
<   ded<   dd„Zddddddœ	 	 	 	 	 	 	 	 	 	 	 dd„Zddddddœ	 	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚIcebergScanResolverzY
    Iceberg scan resolver.

    Defers scan resolution to run during IR resolution.
    r8   r    ú
int | NoneÚsnapshot_idz%Literal['native', 'pyiceberg'] | NoneÚreader_overrideÚboolÚuse_metadata_statisticsÚfast_deletion_countÚuse_pyiceberg_filterc                ó6   — | j                   j                  «       S )zFetch the schema of the table.)r    rQ   ©rI   s    r!   rP   zIcebergScanResolver.schemaÜ   s   € à�z‰z×&Ñ&Ó(Ð(r#   N©Úexisting_resolved_version_keyÚlimitÚ
projectionÚfilter_columnsÚpyarrow_predicatec               ón   — | j                  |||||¬«      x}	 €y|j                  «       |j                  fS )zConstruct a LazyFrame scan.r‚   N)Ú_to_dataset_scan_implÚto_lazyframeÚsnapshot_id_key)rI   rƒ   r„   r…   r†   r‡   Ú	scan_datas          r!   Úto_dataset_scanz#IcebergScanResolver.to_dataset_scanà   sV   € ð ×3Ñ3Ø.KØØ%Ø-Ø"3ð 4ó ð ˆIð ðð à×%Ñ%Ó'¨×)BÑ)BÐBÐBr#   c               ód  ‡‡/— ddl m} dd l}|j                  j                  j                  «       }d Š/‰�#| j                  r| j                  rt        ‰«      Š/|r@‰�dnd}	‰/�dnd}
t        d| j                  › d|› d|› d|› d	|	› d
|
› d| j                  › �«       t        ˆ/ˆfd„«       | j                  j                  «       }|r"t        d|j                  j                  › �«       | j                  }d }|�c|j!                  |«      }|€d|› �}t#        |«      ‚|j$                  }|€d|› d�}t#        |«      ‚|j'                  «       |   }|j                  › }nG|j)                  «       }|j                  j*                  }|j-                  «       x}�|j                  › nd}|�||k(  r|rt        d|›d�«       y | j.                  xs t1        j2                  d«      }|r|dvrd|› d�}t#        |«      ‚|dk(  rdn|j4                  dk  sd|j4                  › �nd }|€dn
t7        |«      }|dk(  r|n |j8                  |Ž }g }t;        ||«      }| j                  r|�t=        | |j8                  |Ž «      nd }i }d}d}|dk7  �r|�sddlm }m!} |rt        d«       tE        «       }|jG                  |||¬«      } ‰/�| jI                  ‰/«      } d}!tK        | jM                  «       «      D �]‘  \  }"}#|#jN                  jP                  |jR                  k7  rd |#jN                  jP                  › �} �nO|#jT                  rœg ||"<   |#jT                  D ]ˆ  }$|$jV                  |jX                  k7  rd!|$jV                  › �} n^|$jP                  |jR                  k7  rd"|$jP                  › �} n4||"   j[                  |$j\                  «       |!d#z  }!||$j^                  z  }ŒŠ |r n£|ja                  |"|#jN                  jb                  |#jN                  jd                  ¬$«       |�|jg                  |#jN                  «       ||#jN                  j^                  z  }|j[                  ti        |#jN                  j\                  «      «       �Œ” |rtE        «       |z
  }%t        d%|%d&›d'�«       |sí|rAtk        |«      d#k(  rdnd(}&!d#k(  rdnd(}'t        d)tk        |«      › d*|&› d+|› d,|› d-|!› d.|'› �«        ||«      }(|jm                  «       })|�|jm                  tk        |«      |)«      nd }*| j                  jn                  �tq        | j                  jn                  «      nd }+ts        |||(|)||*||+| j                  r| jt                  s|dk(  r
||f|¬/«
      S d |¬/«
      S |d0k(  rd1|› �}tw        |«      ‚|rt        d2|› �«       dd l<}t{        |j|                  j~                  j                  j€                  ||||‰/¬3«      }, ||j)                  «       «      }-t‚        j„                  j‡                  |-|,d4d4¬5«      }.t‰        |.|¬6«      S )7Nr   rM   zSome(<redacted>)rZ   z5IcebergScanResolver: to_dataset_scan(): snapshot ID: z	, limit: z, projection: z, filter_columns: z, pyarrow_predicate: z, iceberg_table_filter: z , self.use_metadata_statistics: c                 ó   •— d‰›d‰ ›�S )Nz<IcebergScanResolver: to_dataset_scan(): pyarrow_predicate = z, iceberg_table_filter = r   )Úiceberg_table_filterr‡   s   €€r!   ú<lambda>z;IcebergScanResolver._to_dataset_scan_impl.<locals>.<lambda>#  s   ø€ ØOÐ;LÐ:PÐPjÐSgÐRkÐlð r#   zJIcebergScanResolver: to_dataset_scan(): tbl.metadata.current_snapshot_id: ziceberg snapshot ID not found: z(IcebergScanResolver: requested snapshot z did not contain a schema IDrd   zHIcebergScanResolver: to_dataset_scan(): early return (snapshot_id_key = ú)ÚPOLARS_ICEBERG_READER_OVERRIDE)Únativero   z-iceberg: unknown value for reader_override: 'z*', expected one of ('native', 'pyiceberg')ro   z"forced reader_override='pyiceberg'é   z"unsupported table format version: )Ú*)ÚDataFileContentÚ
FileFormatz<IcebergScanResolver: to_dataset_scan(): begin path expansion)rz   r„   Úselected_fieldsznon-parquet format: z unsupported deletion file type: z"unsupported deletion file format: é   )Úcurrent_indexÚpartition_spec_idÚpartition_valuesz?IcebergScanResolver: to_dataset_scan(): finish path expansion (z.3fzs)Úsz?IcebergScanResolver: to_dataset_scan(): native scan_parquet(): z sourcez, snapshot ID: z, schema ID: z, z deletion file)
ÚsourcesÚprojected_iceberg_schemaÚcolumn_mappingÚdefault_valuesÚdeletion_filesÚmin_max_statisticsÚstatistics_loaderÚstorage_optionsÚ	row_countr‹   r”   z)iceberg reader_override='native' failed: zLIcebergScanResolver: to_dataset_scan(): fallback to python[pyiceberg] scan: )rz   Ún_rowsÚwith_columnsr�   T)ÚpyarrowÚis_pure)Úlfr‹   )ErO   rN   rg   rj   rk   r   r}   r   r   r   rz   r   r    rA   ÚmetadataÚcurrent_snapshot_idÚsnapshot_by_idÚ
ValueErrorÚ	schema_idÚschemasrP   Úcurrent_schema_idÚcurrent_snapshotr{   ÚosÚgetenvÚformat_versionÚtupleÚselectr   r   Úpyiceberg.manifestr—   r˜   r   ÚscanÚfilterÚ	enumerateÚ
plan_filesÚfileÚfile_formatÚPARQUETÚdelete_filesÚcontentÚPOSITION_DELETESÚappendÚ	file_pathÚrecord_countÚpush_partition_valuesÚspec_idÚ	partitionÚpush_file_statisticsr   ÚlenÚfinishr=   Ú0_convert_iceberg_to_object_store_storage_optionsÚ_NativeIcebergScanDatar~   r   Úpolars.io.iceberg._utilsr   ÚioÚicebergÚ_scan_pyarrow_dataset_implÚplr   Ú_scan_python_functionÚ_PyIcebergScanData)0rI   rƒ   r„   r…   r†   r‡   rN   rp   r   Úpyarrow_predicate_displayÚiceberg_table_filter_displayÚtblrz   r±   Úsnapshotrq   Úiceberg_schemar‹   Úvr{   Úfallback_reasonr™   r    rŸ   Úmissing_field_defaultsr¥   r£   Útotal_physical_rowsÚtotal_deleted_rowsr—   r˜   Ú
start_timer»   Útotal_deletion_filesÚiÚ	file_infoÚdeletion_fileÚelapsedrž   Ús2r¡   Úidentity_transformed_valuesr¤   r¦   ÚfuncrQ   r¬   r�   s0        `                                         @r!   r‰   z)IcebergScanResolver._to_dataset_scan_impl÷   ss  ù€ õ 	;ã$à—-‘-×'Ñ'×/Ñ/Ó1ˆà#Ðð Ð)Ø×,Ò,Ø×)Ò)ä#@ÐARÓ#SÐ áà&7Ð&CÑ"Èð &ð ';Ð&FÑ"ÈFð )ô ð Ø $× 0Ñ 0Ð1ð 2Ø˜ð !Ø)˜lð +#Ø#1Ð"2ð 3&Ø&?Ð%@ð A)Ø)EÐ(Fð G1Ø15×1MÑ1MÐ0NðPô	ô 	 ôô	
ð �j‰j�n‰nÓˆáÜð5Ø58·\±\×5UÑ5UÐ4VðXôð
 ×&Ñ&ˆØˆ	àÐ"Ø×)Ñ)¨+Ó6ˆHàÐØ7¸°}ÐE�Ü  “oÐ%à ×*Ñ*ˆIàÐ à>¸{¸mð L2ð 2ð ô ! “oÐ%à Ÿ[™[›]¨9Ñ5ˆNØ!)×!5Ñ!5Ð 6‰Oà ŸZ™Z›\ˆNØŸ™×6Ñ6ˆIð -0×,@Ñ,@Ó,BÐ'B qÐ&O�1—=‘=‘/ÐUWð ð
 *Ð5Ø-°Ò@áÜð+Ø'Ð+¨1ð.ôð
 ð ×.Ñ.ò 
´"·)±)Ø,ó3
ˆñ ˜Ð6MÑMðØ#Ð$Ð$NðPð ô ˜S“/Ð!ð  +Ò-ñ 1ð ×%Ñ%¨Ò*ð 6°c×6HÑ6HÐ5IÑJàð 	ð %/Ð$6™&¼EÀ*Ó<Mˆð  &Ò(ñ à&�×&Ñ&¨Ð8ð 	!ð ˆÜ!JØØ$ó"
Ðð ×+Ò+°Ð0Jô $ CÐ)>¨×)>Ñ)>ÀÐ)OÔPàð 	ð
 02ˆØ#$ÐØ"#Ðà˜kÓ)²/ßFáÜÐUÔVä%›ˆJà—8‘8Ø'ØØ /ð ó ˆDð $Ð/Ø—{‘{Ð#7Ó8�à#$Ð ä )¨$¯/©/Ó*;Ó <ó -‘��9Ø—>‘>×-Ñ-°×1CÑ1CÒCà.¨y¯~©~×/IÑ/IÐ.JÐKð $ò à×)Ò)Ø(*�N 1Ñ%à)2×)?Ñ)?ò I˜Ø(×0Ñ0°O×4TÑ4TÒTà BØ#0×#8Ñ#8Ð"9ð!;ð ,ñ "à(×4Ñ4¸
×8JÑ8JÒJà DØ#0×#<Ñ#<Ð"=ð!?ð ,ñ "à& qÑ)×0Ñ0°×1HÑ1HÔIØ,°Ñ1Ð,Ø*¨m×.HÑ.HÑHÑ*ð#Iñ& #Ùà&×<Ñ<Ø"#Ø&/§n¡n×&<Ñ&<Ø%.§^¡^×%=Ñ%=ð =ô ð %Ð0Ø%×:Ñ:¸9¿>¹>ÔJà# y§~¡~×'BÑ'BÑBÐ#à—‘Ü7¸	¿¹×8PÑ8PÓQöðW-ñ^ Ü&›.¨:Ñ5�Üð.Ø.5°c¨]¸"ð>ôñ
 ÙÜ˜g›,¨!Ò+‘B°�Ø/°1Ò4‘R¸#�äð.ä˜7“|�n G¨A¨3ð /$Ø$/ =ð 1"Ø"+ ¨BØ+Ð,¨N¸2¸$ð@ôñ /¨~Ó>ˆNà*@×*GÑ*GÓ*IÐ'ð %Ð0ð "×(Ñ(¬¨W«Ð7RÔSàð ð —:‘:×8Ñ8ÐDô AØ—J‘J×9Ñ9ôð ð ô *ØØ)AØ-Ø:Ø-Ø#5Ø"3Ø /ð ×4Ò4Ø!×5Ò5Ð9KÈqÒ9Pð )Ð*<Ð=ð !0ô#ð ð à /ô#ð ð(  Ò(Ø=¸oÐ=NÐOˆCÜ˜sÓ#Ð#áÜð7Ø7FÐ6GðIôó
 	(äØ�I‰I×Ñ×$Ñ$×?Ñ?ØØ#ØØ#Ø!5ô
ˆñ )¨¯©«Ó6ˆä�\‰\×/Ñ/ØØØØð	 0ó 
ˆô " R¸ÔIÐIr#   rX   )rƒ   ú
str | Noner„   ry   r…   úlist[str] | Noner†   rë   r‡   rê   r&   ztuple[LazyFrame, str] | None)rƒ   rê   r„   ry   r…   rë   r†   rë   r‡   rê   r&   z2_NativeIcebergScanData | _PyIcebergScanData | None)r(   r)   r*   rv   r6   rP   r�   r‰   r   r#   r!   rx   rx   É   së   … ñð ÓØÓØ:Ó:Ø!Ó!ØÓØÓó)ð 59Ø Ø'+Ø+/Ø(,ñCð (2ðCð ð	Cð
 %ðCð )ðCð &ðCð 
&óCð4 59Ø Ø'+Ø+/Ø(,ñiJð (2ðiJð ð	iJð
 %ðiJð )ðiJð &ðiJð 
<ôiJr#   rx   c                  ó   — e Zd Zedd„«       Zy)Ú_ResolvedScanDataBasec                 ó   — y r   r   r�   s    r!   rŠ   z"_ResolvedScanDataBase.to_lazyframe$  s   € Ø,/r#   N©r&   úpl.LazyFrame)r(   r)   r*   r   rŠ   r   r#   r!   rí   rí   #  s   „ ØÚ/ó Ù/r#   rí   c                  ó~   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   dd„Zy)rÏ   z.Resolved parameters for a native Iceberg scan.z	list[str]rŸ   zpyiceberg.schema.Schemar    z	pa.Schemar¡   zdict[int, pl.Series | str]r¢   zdict[int, list[str]]r£   zpl.DataFrame | Noner¤   zIcebergStatisticsLoader | Noner¥   r<   r¦   ztuple[int, int] | Noner§   r\   r‹   c                óî   — ddl m}  || j                  t        j                  «       dd| j
                  d| j                  fd| j                  fd| j                  f| j                  | j                  ¬«
      S )	Nr   )Úscan_parquetÚinsertÚignoreziceberg-column-mappingrÒ   ziceberg-position-delete)	Úcast_optionsÚmissing_columnsÚextra_columnsr¦   Ú_column_mappingÚ_default_valuesÚ_deletion_filesÚ_table_statisticsÚ
_row_count)Úpolars.io.parquet.functionsró   rŸ   r   Ú_default_icebergr¦   r¡   r¢   r£   r¤   r§   )rI   ró   s     r!   rŠ   z#_NativeIcebergScanData.to_lazyframe<  sn   € Ý<áØ�L‰LÜ(×9Ñ9Ó;Ø$Ø"Ø ×0Ñ0Ø5°t×7JÑ7JÐKØ&¨×(;Ñ(;Ð<Ø6¸×8KÑ8KÐLØ"×5Ñ5Ø—~‘~ô
ð 	
r#   Nrï   ©r(   r)   r*   rv   r6   rŠ   r   r#   r!   rÏ   rÏ   (  sH   … á8àÓØ5Ó5ØÓØ.Ó.Ø(Ó(Ø+Ó+ð
 6Ó5Ø.Ó.à%Ó%ØÓô
r#   rÏ   c                  ó.   — e Zd ZU dZded<   ded<   dd„Zy)	rÖ   z.Resolved parameters for reading via PyIceberg.rð   r¬   r\   r‹   c                ó   — | j                   S r   )r¬   r�   s    r!   rŠ   z_PyIcebergScanData.to_lazyframeV  s   € Ø�w‰wˆr#   Nrï   r   r   r#   r!   rÖ   rÖ   M  s   … á8ð 	ÓØÓôr#   rÖ   c                ó¤   — t        | t        «      r$t        j                  | j                  «       d«      S | �dt	        | «      j
                  › d�S dS )NÚREDACTEDú<z object>rZ   )rB   ÚdictÚfromkeysÚkeysr_   r(   )Úobjs    r!   Ú_redact_dict_valuesr
  Z  sX   € ô �cœ4Ô ô 	�‰�c—h‘h“j *Ó-ðð ˆ?ð ”�c“×#Ñ#Ð$ HÐ-ðð
 ðr#   c                óŠ   — i }| j                  «       D ]-  \  }}t        j                  |«      x}	 �|||<   Œ$d|vsŒ)|||<   Œ/ |S )Nú.)ÚitemsÚ&ICEBERG_TO_OBJECT_STORE_CONFIG_KEY_MAPrA   )r=   r¦   ÚkrÜ   Útranslated_keys        r!   rÎ   rÎ   d  sg   € ð €Oà*×0Ñ0Ó2ò 
#‰ˆˆ1äD×HÑHÈÓKÐKˆNØðð /0ˆO˜NÒ+Ø˜Š\ð
 "#ˆO˜AÒð
#ð  Ðr#   zs3.endpointÚaws_endpoint_urlzs3.access-key-idÚaws_access_key_idzs3.secret-access-keyÚaws_secret_access_keyzs3.session-tokenÚaws_session_tokenz	s3.regionÚ
aws_regionzs3.proxy-uriÚ	proxy_urlzs3.connect-timeoutÚconnect_timeoutzs3.request-timeoutÚtimeoutzs3.force-virtual-addressingÚ aws_virtual_hosted_style_requestzadls.account-nameÚazure_storage_account_namezadls.account-keyÚazure_storage_account_keyzadls.sas-tokenÚazure_storage_sas_keyzadls.tenant-idÚazure_storage_tenant_idzadls.client-idÚazure_storage_client_idzadls.client-secretÚazure_storage_client_secretzadls.account-hostÚazure_storage_authority_hostz
adls.tokenÚazure_storage_tokenÚbearer_tokenÚtoken)zgcs.oauth2.tokenzhf.tokenzFinal[dict[str, str]]r  )r	  r
   r&   r
   )r=   r]   r&   r]   )>Ú
__future__r   rµ   Úabcr   r   Údataclassesr   Ú	functoolsr   Útimer   Útypingr	   r
   r   r   r   Úpolars._reexportÚ	_reexportrÔ   rg   r   r   r   Úpolars.exceptionsr   rÐ   r   r   r   r   Ú#polars.io.scan_options.cast_optionsr   rª   Úpare   ro   Úpyiceberg.schemarF   Úpyiceberg.typedefÚpolars._typingr   Úpolars.io.cloud._utilsr   Úpolars.lazyframe.framer   r   r-   r2   r\   r'   r6   r8   r4   rx   rí   rÏ   rÖ   r
  rÎ   r  r   r#   r!   ú<module>r4     sw  ðÞ "ã 	ß #Ý !Ý Ý ß @Õ @å ß JÑ JÝ *÷ó õ @áÛÛÛÛÛå1Ý5Ý0ôS˜Sô Sô'Ð!7ô 'ñ �4Ô÷)ð )ó ð)ð
 #&Ð(EÑ"EÐ �iÓ Eñ �4Ô÷8ð 8ó ð8ñv �4Ô÷Sð Só ðSñl �4Ô÷VJð VJó ðVJôr
0˜Cô 0ñ
 �4Ôô!
Ð2ó !
ó ð!
ñH �4Ôô	Ð.ó 	ó ð	óðØ .ðàóð4AàÐ%ðAð Ð+ðAð Ð3ð	Að
 Ð+ðAð �ðAð �KðAð Ð+ðAð ˜)ðAð "Ð#EðAð Ð5ðAð Ð3ðAð Ð-ðAð Ð/ðAð  Ð/ð!Að" Ð7ð#Að$ Ð7ð%Að& Ð'ð'Að* 'àò/AÐ &Ð(=ô r#   