
    js\                       U d dl mZ d dlZd dlZd dlZd dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZ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' d dl(m)Z) er3d dl*m+Z+m,Z,m-Z- d dl.m/Z/m.Z. d dl0Z0d dl1Z0d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 nd dl:m0Z0 e"e#dZ;de<d<   dZ=de<d<   dbdZ>	 	 	 	 dcddd(Z?ded*Z@dfd,ZAdgd/ZBedhd1            ZCeCD                    e          did3            ZEeCD                    e          djd5            ZEeCD                    e          dkd7            ZEeCD                    e          dld9            ZEeCD                    e	          dmd;            ZEeCD                    e
          dnd=            ZEeCD                    e          dod?            ZEeCD                    e          dpdA            ZE G dB dC          ZF G dD dE          ZGe G dF dG                      ZHedqdI            ZI G dJ dKejJ                  ZK G dL dMeK          ZL G dN dOeK          ZM G dP dQeK          ZN G dR dSeK          ZO G dT dUeK          ZP G dV dWeK          ZQ G dX dYeK          ZR G dZ d[eL          ZS G d\ d]eK          ZT G d^ d_eK          ZU G d` daeK          ZVdS )r    )annotationsN)GtELtLtE)	AttributeBinOpBitAndBitOrCallCompareConstantEqGtInvertListNameUnaryOp)	dataclass)cachesingledispatch)TYPE_CHECKINGAny)
to_py_dateto_py_datetime)eprint)wrap_s)ComputeError)CallableIteratorSequence)datedatetime)DataFile)Table)IcebergType)	DataFrame)	pyicebergz)dict[str, Callable[..., datetime | date]]_temporal_conversionsi  intICEBERG_TIME_TO_NSpathstrreturnc                    |                      d          r-|                      d          sd|                     d           S | S )Nzfile://zfile:///)
startswithremoveprefix)r+   s    ]/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/polars/io/iceberg/_utils.py#_normalize_windows_iceberg_file_urir2   7   sJ    y!! 9$//**E*E 98$++I66888K    tblr$   with_columnslist[str] | Noneiceberg_table_filter
Any | Nonen_rows
int | Nonesnapshot_idkwargsr    tuple[Iterator[DataFrame], bool]c                    ddl m |                     ||          }|
 |j        | }||                    |          }|                                }fd|D             dfS )a/  
    Take the projected columns and materialize an arrow table.

    Parameters
    ----------
    tbl
        pyarrow dataset
    with_columns
        Columns that are projected
    iceberg_table_filter
        PyIceberg filter expression
    n_rows:
        Materialize only n rows from the arrow dataset.
    snapshot_id:
        The snapshot ID to scan from.
    batch_size
        The maximum row count for scanned pyarrow record batches.
    kwargs:
        For backward compatibility

    Returns
    -------
    tuple[Iterator[DataFrame], bool]
    A generator over the DataFrames and a boolean indicating if the
    predicates could be parsed.
    This boolean is always `False` as there might be some predicates
    that could not be converted
    to pyarrow and need to be applied as post-predicate.
    r   )
from_arrow)limitr;   Nc              3  .   K   | ]} |          V  d S N ).0batchr?   s     r1   	<genexpr>z-_scan_pyarrow_dataset_impl.<locals>.<genexpr>o   s-      445ZZ444444r3   F)polarsr?   scanselectfilterto_arrow_batch_reader)	r4   r5   r7   r9   r;   r<   rH   batchesr?   s	           @r1   _scan_pyarrow_dataset_implrM   >   s    J "!!!!!88&k8::Dt{L)'{{/00((**G4444G444e<<r3   resultc                *   | du rt           j                                        S | du rt           j                                        S t	          | t
                    r9t          |           dk    r&t           j                            | d         d          S | S )zKConvert scalar booleans and bare fields into PyIceberg boolean expressions.TF   r   )r'   expressions
AlwaysTrueAlwaysFalse
isinstancelistlenEqualTo)rN   s    r1   _ensure_boolean_expressionrX   r   s    ~~$//111$00222&$ >CKK1$4$4$,,VAY===Mr3   pyarrow_predicatec                    t          j        t                    5  t          |           }t	          |          }t          |          cd d d            S # 1 swxY w Y   d S rB   )
contextlibsuppress	Exception_to_ast_convert_predicaterX   )rY   expr_astrN   s      r1   try_convert_pyarrow_predicatera   }   s    		Y	'	' 2 2,--#H--)&112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 4s   -AAAexprast.exprc                8    t          j        | d          j        S )a<  
    Converts a Python string to an AST.

    This will take the Python Arrow expression (as a string), and it will
    be converted into a Python AST that can be traversed to convert it to a PyIceberg
    expression.

    The reason to convert it to an AST is because the PyArrow expression
    itself doesn't have any methods/properties to traverse the expression.
    We need this to convert it into a PyIceberg expression.

    Parameters
    ----------
    expr
        The string expression

    Returns
    -------
    The AST representing the Arrow expression
    eval)mode)astparsebody)rb   s    r1   r^   r^      s    * 9T''',,r3   ac                *    d|  }t          |          )zJWalks the AST to convert the PyArrow expression to a PyIceberg expression.zUnexpected symbol: )
ValueError)rj   msgs     r1   r_   r_      s     $
#
#C
S//r3   r   c                    | j         S rB   )valuerj   s    r1   _rq      s	    7Nr3   r   c                    | j         S rB   )idrp   s    r1   rq   rq      s	    4Kr3   r   c                    t          | j        t                    r@t          t	          | j                            }t          j                            |          S d|  }t          |          )NzUnexpected UnaryOp: )
rT   opr   rX   r_   operandr'   rQ   Not	TypeError)rj   rv   rm   s      r1   rq   rq      s^    !$ ,-?	-J-JKK$((111(Q((nnr3   r   c                   d | j         D             }t          | j                  }|dk    r|S |dk    r|d         S |t          v r!t          |         |                                 S t          | j        j                  d         }|dk    r&t          j                            ||d                   S |dk    rt          j        	                    |          S |dk    rt          j        
                    |          S d|}t          |          )	Nc                ,    g | ]}t          |          S rC   r_   )rD   args     r1   
<listcomp>z_.<locals>.<listcomp>   s!    666s##666r3   fieldscalarr   isinis_nullis_nanzUnknown call: )argsr_   funcr(   	isoformatro   r'   rQ   InIsNullIsNaNrl   )rj   r   frefrm   s        r1   rq   rq      s   66qv666D16""AG||	
hAw	
#	#	#$Q'.88::: ..q1;;(++Ca999)^^(//444(]](..s333
 1
 
 C
S//r3   r   c                    | j         S rB   )attrrp   s    r1   rq   rq      s	    6Mr3   r   c                   t          t          | j                            }t          t          | j                            }| j        }t          |t                    r t          j        	                    ||          S t          |t                    r t          j                            ||          S d| d| d| }t          |          )Nz	Unknown:  )rX   r_   leftrightru   rT   r	   r'   rQ   Andr
   Orrx   )rj   lhsrhsru   rm   s        r1   rq   rq      s    
$%7%?%?
@
@C
$%7%@%@
A
AC	
B"f 3$((c222"e $''S111*#****S**nnr3   r   c                   | j         d         }t          | j                  d         }t          | j        d                   }t	          |t
                    r t          j                            ||          S t	          |t                    r t          j        
                    ||          S t	          |t                    r t          j                            ||          S t	          |t                    r t          j                            ||          S t	          |t                    r t          j                            ||          S d| }t#          |          )Nr   zUnknown comparison: )opsr_   r   comparatorsrT   r   r'   rQ   GreaterThanr   GreaterThanOrEqualr   rW   r   LessThanr   LessThanOrEqualrx   )rj   ru   r   r   rm   s        r1   rq   rq      s&   	
qB
QV
$
$Q
'C
Q]1-
.
.C"b ;$00c:::"c B$77SAAA"b 7$,,S#666"b 8$--c3777"c $44S#>>>)R))nnr3   r   c                $    d | j         D             S )Nc                ,    g | ]}t          |          S rC   r{   )rD   es     r1   r}   z_.<locals>.<listcomp>   s!    222aq!!222r3   )eltsrp   s    r1   rq   rq      s    22162222r3   c                  &    e Zd ZddZddZddZdS ))IdentityTransformedPartitionValuesBuildertabler$   projected_schemapyiceberg.schema.Schemar-   Nonec                \   dd l }ddlm} ddlm} ddlm}m}m}m	}	 |j
        }
i | _        i | _        i | _        |                                }|                                D ]t\  }}g }t!          |j                  D ]N\  }}|j        |
v r@t'          |j        |          r+|                    ||j        f           g | j        |j        <   O|| j        |<   u| j        D ]M}|                    |          }|j        }t1          j         ||j                            |                                                              \  }}|| j        |<   |j        r|                                rd|d|| j        |<   |                                                                D ]}	 |                    |          j        }n# t@          $ r Y *w xY w||k    sTt'          ||	          rt'          ||          s4t'          |||f          rt'          |||f          sd| d| | j        |<   Od S )	Nr   schema_to_pyarrow)IdentityTransform)
DoubleType	FloatTypeIntegerTypeLongTypez%non-primitive type: projected_type = z output_dtype = zunsupported type change: from: z, to: )!pyiceberg.schemapyiceberg.io.pyarrowr   pyiceberg.transformsr   pyiceberg.typesr   r   r   r   	field_idspartition_valuespartition_values_dtypes(partition_spec_id_to_identity_transformsspecsitems	enumeratefields	source_idrT   	transformappend
find_field
field_typeplSchemaschemapopitemis_primitive	is_nestedschemasvaluesrl   )selfr   r   r'   r   r   r   r   r   r   projected_idspartition_specsspec_idspecoutfield_indexr~   field_idprojected_fieldprojected_typerq   output_dtyper   type_this_schemas                           r1   __init__z2IdentityTransformedPartitionValuesBuilder.__init__   s   
 	 ::::::::::::	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 #3"< =? @B$
  	5  ++--,2244 
	I 
	IMGTC&/&<&< @ @"U?m33
O%69 93 JJU_=>>>=?D)%/:EHD9'BB- #	 #	H.99(CCO,7N i!!)"2"9"9/"J"JKK gii A| 6BD(2!. ,2H2H2J2J P>PP|PP %h/  --//0022  '-'8'8'B'B'M$$!   H #&666">8<< 7 ''7EE 7 #>J	3JKK 7 ''7*i9PQQ 70:J 0 0-0 0 )(3##	 #	s   $F??
GGcurrent_indexr)   partition_spec_idr   pyiceberg.typedef.Recordc          
        	 | j         |         }n9# t          $ r, t                              | j        d|           | _        Y d S w xY w|D ]\  }}||         }t          | j        |         x}t                    rQ|                    d t          |t          |          z
            D                        |
                    |           d S )Nzpartition spec ID not found: c              3     K   | ]}d V  d S rB   rC   )rD   rq   s     r1   rF   zRIdentityTransformedPartitionValuesBuilder.push_partition_values.<locals>.<genexpr>g  s"      OOqdOOOOOOr3   )r   KeyErrordictfromkeysr   rT   rU   extendrangerV   r   )	r   r   r   r   identity_transformsisource_field_idpartition_valuer   s	            r1   push_partition_valuesz?IdentityTransformedPartitionValuesBuilder.push_partition_valuesO  s    		"&"O!#  	 	 	$(MM%C0ACC% %D! FF	 #6 	/ 	/A.q1OD$9/$JJ&DQQ / OOE-#f++2M,N,NOOOOOOo...	/ 	/s    2AAdict[int, pl.Series | str]c                   ddl m}m}m}m}m}m} i }| j                                        D ]\  }}	t          |	t                    r|	||<    	 | j        |         }
t          |
|||f          r|nt          |
|          r|n|
}t          j        |	|          }|j                                        rJ t          |
|          r
|t           z  }|                    |
          }|||<   # t$          $ r}d| ||<   Y d }~d }~ww xY w|S )Nr   )DateDatetimeDurationInt32Int64Timedtypez!failed to load partition values: )polars.datatypesr   r   r   r   r   r   r   r   rT   r,   r   r   Seriesr   r   r*   castr]   )r   r   r   r   r   r   r   r   r   vr   constructor_dtypesr   s                 r1   finishz0IdentityTransformedPartitionValuesBuilder.finishj  s|   QQQQQQQQQQQQQQQQ*,06688 	L 	LKHa!S!! L !HL#'#?#IL &lXx4NOO* &lD99*UU) & 	!+<===A w0022222!,55 3  22|,,A$%CMM  L L L$K$K$KCMMMMMML 
s   BC))
D3D  DN)r   r$   r   r   r-   r   )r   r)   r   r)   r   r   r-   r   )r-   r   )__name__
__module____qualname__r   r   r   rC   r3   r1   r   r      sU        M M M M^/ / / /6$ $ $ $ $ $r3   r   c                  &    e Zd ZddZdd
ZddZdS )IcebergStatisticsLoaderr   r$   projected_filter_schemar   r-   r   c                   dd l }ddlm} dd l}dd l}|j        j                                        }i | _        g | _	        g | _
        || _        |j        D ]{}t                      }	|                                                                D ]e}
t!          j        t$                    5  |	                    |
                    |j                  j                   d d d            n# 1 swxY w Y   f |j         ||j                            |                                                              \  }}t4                              |j        |	|          }|rH|t9          |          j        nd}t=          d|j        d|j        d|j        d|	d|d	|           tA          |j        |j        ||g g g 
          | j        |j        <   }d S )Nr   r   r   z&IcebergStatisticsLoader: field.name = z, field.field_id = z, field.field_type = z, field_all_types = z, field_polars_dtype = z, _load_from_bytes_impl = )r   column_namecolumn_dtypeload_from_bytes_impl
min_values
max_values
null_count)!r   r   r   rG   polars._utils.logging_utilsloggingverbosefile_column_statisticsload_as_empty_statisticsfile_lengthsr   r   setr   r   r[   r\   rl   addr   r   r   r   r   r   LoadFromBytesImplinit_for_field_typetyper   r   nameIcebergColumnStatisticsLoader)r   r   r   r'   r   r   rG   r  r~   field_all_typesr   rq   field_polars_dtyper   _load_from_bytes_impls                  r1   r   z IcebergStatisticsLoader.__init__  s   
 	 ::::::$$$$-'//11PR#35%')'>$,3 *	 *	E!eeO--//0022 V V(44 V V#''(9(9%.(I(I(TUUUV V V V V V V V V V V V V V V %.BI!!)"2"9"9%"@"@AA% %gii "A! $5#H#H "$ $    ,7 -..77 & 2z2 2~2 2 '2 2 '	2 2
 *2 2 -2 2   ;X!J/%9; ; ;D'77E*	 *	s   &3C%%C),C)filer#   c                    | j                             |j                   | j                                        D ]}|                    |           d S rB   )r  r   record_countr  r   push_file_statistics)r   r  statss      r1   r  z,IcebergStatisticsLoader.push_file_statistics  s[      !233307799 	- 	-E&&t,,,,	- 	-r3   expected_heightr)   identity_transformed_valuesr   pl.DataFramec                   dd l } |j        d| j        |j                                                  g}| j                                        D ]p\  }}|                    |          x})t          |t                    rd| }t          |          |                    ||          }	|                    |	           q |j        |d          S )Nr   rV   r   z+statistics load failure for filter column: 
horizontal)how)rG   r   r  UInt32to_framer  r   getrT   r,   r   r   r   concat)
r   r  r  r   r   r   stat_builderprm   column_stats_dfs
             r1   r   zIcebergStatisticsLoader.finish  s    
 	 BIeT.bi@@@IIKK#
 '+&A&G&G&I&I 	( 	("Hl044X>>>Ka%% ,KKKC&s+++*11/1EEOJJ''''ry,////r3   N)r   r$   r   r   r-   r   r  r#   r-   r   )r  r)   r  r   r-   r  )r   r   r   r   r  r   rC   r3   r1   r   r     sQ        < < < <|- - - -0 0 0 0 0 0r3   r   c                  f    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ddZddZdS )r  r,   r   pl.DataTyper   r)   r   LoadFromBytesImpl | Noner   zlist[int | None]r   list[bytes | None]r   r   r  r#   r-   r   c                b   | j                             |j                            | j                             | j        p| j                            |j                            | j                             | j                            |j	                            | j                             d S d S rB   )
r   r   null_value_countsr  r   r   r   lower_boundsr   upper_bounds)r   r  s     r1   r  z2IcebergColumnStatisticsLoader.push_file_statistics  s    t599$-HHIII$0O""4#4#8#8#G#GHHHO""4#4#8#8#G#GHHHHH 10r3   r  r  pl.Series | Noner  c                   dd l }| j        }t          | j                  |k    sJ  |j        | d| j        |j                                                  }| j        ^||n |j        d || j	                  }|
                    |                    | d          |                    | d                    S t          | j                  |k    sJ t          | j                  |k    sJ | j	                                        rt          | j                            | j                  }| j                            | j                  }|g|j        | j	        k    sJ |                    d ||                                z
            }|                    |          }|                    |          }|
                    |                    | d          |                    | d                    S )Nr   _ncr   _min_max)rG   r   rV   r   r   r  r  r   repeatr   r5   aliasr   r   r   NotImplementedErrorload_from_bytesr   extend_constant	fill_null)	r   r  r  r   cr   r   r   r   s	            r1   r   z$IcebergColumnStatisticsLoader.finish  s   
 	4?##6666bi1			4?")DDDMMOO$, /: ,+RYt_D<MNNN  ##AGGqJJJ$7$7A9L9LMMM4?##66664?##6666&&(( 	&%%.>>tOO
.>>tOO
&2.48IIIII*E*U*Uo(C(G(G(I(II+ +' 5>>zJJJ4>>zJJJZZZ((**:*:a:::*F*F
 
 	
r3   Nr$  )r  r)   r  r-  r-   r  )r   r   r   __annotations__r  r   rC   r3   r1   r  r    s         MMM2222    """"""""I I I I*
 *
 *
 *
 *
 *
r3   r  hdict[type[IcebergType], tuple[type[LoadFromBytesImpl], type[IcebergType] | Sequence[type[IcebergType]]]]c                    ddl m} m}m}m}m}m}m}m}m	}m
}	m}
 |t          |f|t          |f|
t          |
f|t          |f|	t           |	f|t"          |f|t$          ||ff|t&          |f| t(          | f|t*          |f|t,          |fiS )Nr   
BinaryTypeBooleanTypeDateTypeDecimalType	FixedTyper   r   
StringTypeTimestampTypeTimestamptzTypeTimeType)r   r=  r>  r?  r@  rA  r   r   rB  rC  rD  rE  LoadBooleanFromBytesLoadDateFromBytesLoadTimeFromBytesLoadTimestampFromBytesLoadTimestamptzFromBytesLoadInt32FromBytesLoadInt64FromBytesLoadStringFromBytesLoadBinaryFromBytesLoadDecimalFromBytesLoadFixedFromBytesr<  s              r1   _bytes_loader_lookuprQ  ,  s   
                           	*K8$h/$h/.>2OD(+6%+'>?(*5(*5*K8&	2 r3   c                  P    e Zd ZddZedd            Zej        dd            ZdS )r
  polars_dtyper&  r-   r   c                    || _         d S rB   )rS  )r   rS  s     r1   r   zLoadFromBytesImpl.__init__P  s    (r3   current_field_typer%   all_field_typesset[IcebergType]r  r'  c                    t                                          t          |                     x}d S |\  }t          fd|D                       r ||          nd S )Nc              3  8   K   | ]}t          |          V  d S rB   )rT   )rD   xallowed_field_typess     r1   rF   z8LoadFromBytesImpl.init_for_field_type.<locals>.<genexpr>a  s.      OO!:a!455OOOOOOr3   )rQ  r  r  all)rU  rV  r  r   loader_implr[  s        @r1   r  z%LoadFromBytesImpl.init_for_field_typeS  s|     &''++D1C,D,DEEEAN4+,(( OOOOOOOOOKK*+++	
r3   byte_valuesr(  	pl.Seriesc                    dS )z(`bytes_values` should be of binary type.NrC   )r   r^  s     r1   r5  z!LoadFromBytesImpl.load_from_bytese  s      r3   N)rS  r&  r-   r   )rU  r%   rV  rW  r  r&  r-   r'  r^  r(  r-   r_  )	r   r   r   r   staticmethodr  abcabstractmethodr5  rC   r3   r1   r
  r
  O  sl        ) ) ) ) 
 
 
 \
" 	7 7 7 7 7 7r3   r
  c                      e Zd ZddZdS )rN  r^  r(  r-   r_  c                8    dd l } |j        ||j                  S Nr   r   )rG   r   Binaryr   r^  r   s      r1   r5  z#LoadBinaryFromBytes.load_from_bytesk  s'    ryBI6666r3   Nra  r   r   r   r5  rC   r3   r1   rN  rN  j  s(        7 7 7 7 7 7r3   rN  c                      e Zd ZddZdS )rG  r^  r(  r-   r_  c                    dd l } |j        ||j                  j                            |j        d                              |j                  S Nr   r   littler   
endianness)rG   r   rh  binreinterpretr   r   r   ri  s      r1   r5  z!LoadDateFromBytes.load_from_bytesr  sM     BIk33328AAT"']]	
r3   Nra  rj  rC   r3   r1   rG  rG  q  (        
 
 
 
 
 
r3   rG  c                      e Zd ZddZdS )rH  r^  r(  r-   r_  c                    dd l } |j        ||j                  j                            |j        d          t          z                      |j                  S rm  )	rG   r   rh  rq  rr  r   r*   r   r   ri  s      r1   r5  z!LoadTimeFromBytes.load_from_bytes}  sd     BIk3337CCh8 D   !! $rw--	r3   Nra  rj  rC   r3   r1   rH  rH  |  s(             r3   rH  c                      e Zd ZddZdS )rI  r^  r(  r-   r_  c                    dd l } |j        ||j                  j                            |j        d                               |j        d                    S )Nr   r   rn  ro  usrG   r   rh  rq  rr  r   r   r   ri  s      r1   r5  z&LoadTimestampFromBytes.load_from_bytes  sY     BIk33328AAT+"+d##$$	
r3   Nra  rj  rC   r3   r1   rI  rI    rs  r3   rI  c                      e Zd ZddZdS )rJ  r^  r(  r-   r_  c                    dd l } |j        ||j                  j                            |j        d                               |j        dd                    S )Nr   r   rn  ro  rx  UTC)	time_zonery  ri  s      r1   r5  z(LoadTimestamptzFromBytes.load_from_bytes  s^     BIk33328AAT+"+de44455	
r3   Nra  rj  rC   r3   r1   rJ  rJ    rs  r3   rJ  c                      e Zd ZddZdS )rF  r^  r(  r-   r_  c                    dd l } |j        ||j                  j                            |j        d                              |j                  S rm  )rG   r   rh  rq  rr  UInt8r   Booleanri  s      r1   r5  z$LoadBooleanFromBytes.load_from_bytes  sO     BIk33328AAT"*	
r3   Nra  rj  rC   r3   r1   rF  rF    rs  r3   rF  c                      e Zd ZddZdS )rO  r^  r(  r-   r_  c                    dd l }ddlm} | j        }t	          ||j                  sJ |j        J t          |                    ||j        |j	                            S )Nr   )PySeries)
bytes_list	precisionscale)
rG   polars._plrr  rS  rT   Decimalr  r   (_import_decimal_from_iceberg_binary_reprr  )r   r^  r   r  r   s        r1   r5  z$LoadDecimalFromBytes.load_from_bytes  s    ((((((!%,,,,,***==&/k >  
 
 	
r3   Nra  rj  rC   r3   r1   rO  rO    s(        
 
 
 
 
 
r3   rO  c                      e Zd ZdS )rP  N)r   r   r   rC   r3   r1   rP  rP    s          r3   rP  c                      e Zd ZddZdS )rK  r^  r(  r-   r_  c                v    dd l } |j        ||j                  j                            |j        d          S rm  )rG   r   rh  rq  rr  r   ri  s      r1   r5  z"LoadInt32FromBytes.load_from_bytes  sI    ryBI666:FF(x G 
 
 	
r3   Nra  rj  rC   r3   r1   rK  rK    s(        
 
 
 
 
 
r3   rK  c                      e Zd ZddZdS )rL  r^  r(  r-   r_  c                   dd l } |j        ||j                  }|j                            |j        d                              |j                            |j        d                              |j                            S rm  )	rG   r   rh  rq  rr  r   r7  r   r   )r   r^  r   r   s       r1   r5  z"LoadInt64FromBytes.load_from_bytes  s    BIk333u  rxH EEOOEBHBBGGQQ
 
 	
r3   Nra  rj  rC   r3   r1   rL  rL    rs  r3   rL  c                      e Zd ZddZdS )rM  r^  r(  r-   r_  c                h    dd l } |j        ||j                                      |j                  S rg  )rG   r   rh  r   Stringri  s      r1   r5  z#LoadStringFromBytes.load_from_bytes  s7    ryBI666;;BIFFFr3   Nra  rj  rC   r3   r1   rM  rM    s.        G G G G G Gr3   rM  )r+   r,   r-   r,   )NNNN)r4   r$   r5   r6   r7   r8   r9   r:   r;   r:   r<   r   r-   r=   )rN   r   r-   r   )rY   r,   r-   r8   )rb   r,   r-   rc   )rj   r   r-   r   )rj   r   r-   r   )rj   r   r-   r   )rj   r   r-   r   )rj   r   r-   r   )rj   r   r-   r   )rj   r   r-   r   )rj   r   r-   r   )rj   r   r-   r   )r-   r:  )W
__future__r   rc  rg   r[   _astr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   dataclassesr   	functoolsr   r   typingr   r   polars._reexport	_reexportr   polars._utils.convertr   r   r  r   polars._utils.wrapr   polars.exceptionsr   collections.abcr   r   r    r"   r!   r'   r   pyiceberg.manifestr#   pyiceberg.tabler$   r   r%   rG   r&   polars._dependenciesr(   r9  r*   r2   rM   rX   ra   r^   r_   registerrq   r   r   r  rQ  ABCr
  rN  rG  rH  rI  rJ  rF  rO  rP  rK  rL  rM  rC   r3   r1   <module>r     sU   " " " " " " " 



 



                                            " ! ! ! ! ! + + + + + + + + % % % % % % % %       < < < < < < < < ( ( ( ( ( ( % % % % % % * * * * * * /<<<<<<<<<<''''''''++++++%%%%%%++++++       ...... $D D     
          &*'+"1= 1= 1= 1= 1=h      - - - -0     X&&   '& T""   #" W%%   &% T""   #". Y''   (' U##   $# W%%   &%( T""3 3 3 #"3O O O O O O O OdY0 Y0 Y0 Y0 Y0 Y0 Y0 Y0x :
 :
 :
 :
 :
 :
 :
 :
|    D7 7 7 7 7 7 7 767 7 7 7 7+ 7 7 7
 
 
 
 
) 
 
 
	 	 	 	 	) 	 	 	
 
 
 
 
. 
 
 

 
 
 
 
0 
 
 

 
 
 
 
, 
 
 

 
 
 
 
, 
 
 
$ 3 2 2 2 2, 2 2 2
 
 
 
 
* 
 
 

 
 
 
 
* 
 
 
G G G G G+ G G G G Gr3   