
    h                    \    S SK Jr  S SKJrJr  S SKJr      S	S jrS
S jr " S S5      r	g)    )annotations)MappingSequence)Anyc                    / nU R                  5        H?  u  p#UR                  b  Sn[        U5      eX#l        UR                  [	        U5      5        MA     U$ )NzNParquetFieldOverwrites has both a name in the dictionary and in the overwrites)itemsname
ValueErrorappend!_parquet_field_overwrites_to_dict)pqochildrenr	   childmsgs        \/home/james-whalen/.local/lib/python3.13/site-packages/polars/io/parquet/field_overwrites.py+_parquet_field_overwrites_dict_to_dict_listr      sR     Hyy{::!bCS/!
9%@A # O    ParquetFieldOverwritesc                   0 nU R                   b  U R                   US'   U R                  b  [        U R                  [        5      (       a  [	        U R                  5      US'   O[        U R                  [
        5      (       a  [        U R                  5      US'   OV[        U R                  [        5      (       a*  U R                   Vs/ s H  n[	        U5      PM     snUS'   OSn[        U5      eU R                  b  U R                  US'   U R                  b&  [        U R                  R                  5       5      US'   U R                  b  U R                  US'   U$ s  snf )Nr	   r   z,invalid ParquetFieldOverwrites children typefield_idmetadatarequired)r	   r   
isinstancer   r   dictr   list	TypeErrorr   r   r   r   )r   dcr   s       r   r   r      s   A xxHH&	 ||cll$:;;=cllKAjMd++GUAjMd++KN<<X<a>qA<XAjM@CC. 
||* ||S\\//12*
||*H Ys   	Ec                      \ rS rSr% SrS\S'   S\S'   SrS\S	'   S
\S'   SrS\S'   SSSSSS.           SS jjrSr	g)r   4   a  
Write-option overwrites for individual Parquet fields.

.. warning::
    This functionality is considered **unstable**. It may be changed
    at any point without it being considered a breaking change.


Examples
--------
>>> lf = pl.LazyFrame(
...     {
...         "a": [None, 2, 3, 4],
...         "b": [[1, 2, 3], [42], [13], [37]],
...         "c": [
...             {"x": "a", "y": 42},
...             {"x": "b", "y": 13},
...             {"x": "X", "y": 37},
...             {"x": "Y", "y": 15},
...         ],
...     }
... )  # doctest: +SKIP
>>> lf.sink_parquet(
...     "./out/parquet",
...     field_overwrites={
...         "a": ParquetFieldOverwrites(metadata={"flat_from_polars": "yes"}),
...         "b": ParquetFieldOverwrites(
...             children=ParquetFieldOverwrites(metadata={"listitem": "yes"}),
...             metadata={"list": "true"},
...         ),
...         "c": ParquetFieldOverwrites(
...             children=[
...                 ParquetFieldOverwrites(name="x", metadata={"md": "yes"}),
...                 ParquetFieldOverwrites(name="y", metadata={"md2": "Yes!"}),
...             ],
...             metadata={"struct": "true"},
...         ),
...     },
... )  # doctest: +SKIP
z
None | strr	   z`None | ParquetFieldOverwrites | list[ParquetFieldOverwrites] | dict[str, ParquetFieldOverwrites]r   N
int | Noner   zdict[str, None | str] | Noner   bool | Noner   )r	   r   r   r   r   c               $   Xl         [        U[        5      (       a  [        U5      U l        O,[        U[
        5      (       a  [        U5      U l        OX l        X0l        [        U[        5      (       a  [        U5      U l        OX@l        XPl	        g )N)
r	   r   r   r   r   r   r   r   r   r   )selfr	   r   r   r   r   s         r   __init__ParquetFieldOverwrites.__init__p   se     	h(( NDM(++ NDM$M h(( NDM$M r   )r   r   r   r	   r   )r	   z
str | Noner   zgNone | ParquetFieldOverwrites | Sequence[ParquetFieldOverwrites] | Mapping[str, ParquetFieldOverwrites]r   r!   r   zMapping[str, None | str] | Noner   r"   returnNone)
__name__
__module____qualname____firstlineno____doc____annotations__r   r   r%   __static_attributes__ r   r   r   r   4   s    'R 	,  Hj$ !Hk 
   #48 $! !
3! ! 2! ! 
! !r   N)r   z!dict[str, ParquetFieldOverwrites]r'   zlist[dict[str, Any]])r   r   r'   zdict[str, Any])

__future__r   collections.abcr   r   typingr   r   r   r   r0   r   r   <module>r4      s5    " - 
	*

@X! X!r   