Ë
    	êñiü·  ã                  óü  — d dl m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
 d dl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c 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( d dlm)Z* d dl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC d dlDmEZEmFZF d dlGmHZH  ej’                  eJ«      5  d dlKmLZL ddd«       er$d dlmMZMmNZNmOZO d dlmPZPmQZQ d dlKmRZR d dlSmTZTmUZUmVZVmWZW dZX	 dCdddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 dDd„ZYddddœ	 	 	 	 	 	 	 	 	 dEd„ZZ	 dCddœ	 	 	 	 	 	 	 dFd „Z[	 	 dGdd!œ	 	 	 	 	 	 	 	 	 	 	 dHd"„Z\ddddd#œ	 	 	 	 	 	 	 	 	 	 	 dId$„Z]dd!œ	 	 	 	 	 	 	 dJd%„Z^	 dCddde:dd&œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dKd'„Z_eddd(œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dLd)„«       Z`e`jÃ                  eb«      dd*œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dMd+„«       Zc	 	 	 	 	 	 	 	 	 	 	 	 	 	 dNd,„Zde`jÃ                  ee«      dd*œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dOd-„«       Zfe`jÃ                  e«      e`jÃ                  eg«      	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dPd.„«       «       Zhe`jÃ                  ei«      	 	 	 	 	 	 	 	 	 	 	 	 	 	 dQd/„«       Zj	 	 	 	 	 	 dRd0„Zk	 	 	 	 	 	 	 	 	 	 	 	 	 	 dSd1„Zldd!œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dTd2„Zm	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dTd3„Zn	 	 	 	 	 	 	 	 	 	 dUd4„Zo	 	 	 	 	 	 dVd5„Zp	 dCdddde:dd6œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dWd7„ZqdXd8„Zr	 dCdddddd9œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dYd:„ZsdZd;„Zt	 dCdddd<œ	 	 	 	 	 	 	 	 	 	 	 d[d=„Zu	 dCddddd>œ	 	 	 	 	 	 	 	 	 	 	 	 	 d\d?„Zv	 	 dGdd!œ	 	 	 	 	 	 	 	 	 d]d@„Zw	 dCdddAœ	 	 	 	 	 	 	 	 	 d^dB„Zxy# 1 sw Y   �Œ¢xY w)_é    )ÚannotationsN)Ú	GeneratorÚMappingÚSequence)ÚdateÚdatetimeÚtimeÚ	timedelta)Úsingledispatch)ÚisliceÚzip_longest)Ú
itemgetter)ÚTYPE_CHECKINGÚAny)Ú	functions)Ú_NUMPY_AVAILABLEÚ_PYARROW_AVAILABLEÚ_check_for_numpyÚ_check_for_pandasÚdataclasses)Únumpy)Úpandas)Úpyarrow)Úcontains_nestedÚget_first_non_noneÚis_namedtupleÚis_pydantic_modelÚ$is_simple_numpy_backed_pandas_seriesÚis_sqlalchemy_rowÚ	nt_unpackÚtry_get_type_hints)Ú_is_generatorÚarrlenÚissue_warningÚparse_version)
ÚN_INFER_DEFAULTÚCategoricalÚDurationÚEnumÚStringÚStructÚUnknownÚis_polars_dtypeÚparse_into_dtypeÚtry_parse_into_dtype)ÚDataOrientationWarningÚ
ShapeError)Úthread_pool_size)ÚPyDataFrame)ÚCallableÚIterableÚMutableMapping)Ú	DataFrameÚSeries)ÚPySeries)ÚOrientationÚPolarsDataTypeÚSchemaDefinitionÚ
SchemaDictéè  TF)Úschema_overridesÚstrictÚnan_to_nullÚallow_multithreadedc               óæ  ‡‡‡— t        ‰t        «      r6| r4t        ˆfd„| D «       «      sd}t        |«      ‚‰D �ci c]  }|| |   “Œ
 } }t	        ‰| j                  «       |¬«      \  }}|st        | «      }| r‘t        r‹t        ˆˆfd„| j                  «       D «       «      }	|	dk\  rcddl
m}
 t        «       } |
|¬«      5 }t        t        ||j                  ˆfd	„t        | j!                  «       «      «      d
¬«      «      } ddd«       | sC|rA|D �cg c]5  }t#        j$                  |g |j'                  |«      |‰¬«      j(                  ‘Œ7 }}n4t+        | ||‰¬«      j                  «       D �cg c]  }|j(                  ‘Œ }}t-        ||d
¬«      }t/        |«      }|r9|j1                  «       t        |j                  «       «      k7  rt3        ||||¬«      }|S c c}w # 1 sw Y   ŒÝxY wc c}w c c}w )z7Construct a PyDataFrame from a dictionary of sequences.c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­w©N© )Ú.0ÚcolÚschemas     €úf/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/polars/_utils/construction/dataframe.pyú	<genexpr>zdict_to_pydf.<locals>.<genexpr>W   s   øè ø€ Ò3 s�C˜6”MÑ3ùó   ƒz>the given column-schema names do not match the data dictionary)Úlookup_namesr?   c              3  ó  •K  — | ]~  }t        ‰xrm t        |«      xr` t        |t        j                  «      xrD t        |«      t        kD  xr0 ‰xr, |j                  t        j                  t        j                  fv «      –— Œ€ y ­wrE   )
Úintr   Ú
isinstanceÚnpÚndarrayÚlenÚ"_MIN_NUMPY_SIZE_FOR_MULTITHREADINGÚdtypeÚfloat32Úfloat64)rG   ÚvalrB   rA   s     €€rJ   rK   zdict_to_pydf.<locals>.<genexpr>d   s�   øè ø€ ò 
ð ô Ø#ò :Ü$ SÓ)ò:ä˜s¤B§J¡JÓ/ò:ô ˜“HÔAÑAò:ð
  ò:ð —I‘I¤"§*¡*¬b¯j©jÐ!9Ð9÷ñ
ùs   ƒBBé   r   )ÚThreadPoolExecutor)Úmax_workersc                ó„   •— t        | d   t        j                  «      rt        j                  | d   | d   ‰¬«      S | d   S )Né   r   ©rA   )rP   rQ   rR   Úplr8   )ÚtrA   s    €rJ   ú<lambda>zdict_to_pydf.<locals>.<lambda>{   sB   ø€ ä#-¨a°©d´B·J±JÔ#?ô !#§	¡	¨!¨A©$°°!±À+Ô Nð ð &' q¡Tð ó    T©r@   N©rU   r@   rA   )r?   r@   rA   )ÚcolumnsÚ	from_dict©r?   r@   )rP   r   ÚallÚ
ValueErrorÚ_unpack_schemaÚkeysÚlistr   ÚsumÚvaluesÚconcurrent.futuresrZ   r2   ÚdictÚzipÚmapÚitemsr_   r8   ÚgetÚ_sÚ_expand_dict_valuesÚ_handle_columns_argr3   ÚdtypesÚ_post_apply_columns)ÚdatarI   r?   r@   rA   rB   ÚmsgrH   Úcolumn_namesÚcount_numpyrZ   Ú	pool_sizeÚpoolÚnameÚdata_seriesÚsÚpydfs    `  ``           rJ   Údict_to_pydfr„   L   s  ú€ ô �&œ'Ô"¡tÜÓ3¨dÔ3Ô3ØRˆCÜ˜S“/Ð!Ø*0Ö1 3��T˜#‘Y‘Ð1ˆÐ1ä%3Ø˜TŸY™Y›[Ð;Kô&Ñ"€LÐ"ñ Ü˜D“zˆáÕ äô 
ð —{‘{“}ô
ó 
ˆð ˜!Òõ >ä(Ó*ˆIÙ#°	Ô:ð ¸dÜÜØ$ØŸ™óô
 ! §¡£Ó.óð  $ôó�÷ñ  Ñ$ð %ö	
ð ô �I‰IØØØ&×*Ñ*¨4Ó0ØØ'ô÷ ‰bñð	
ˆñ 	
ô )ØØ!1ØØ'ô	÷
 ‰f‹hö
àð �D‹Dð
ˆð 
ô & k¸<ÐSWÔX€KÜ�{Ó#€Dá˜DŸK™K›M¬TÐ2B×2IÑ2IÓ2KÓ-LÒLÜ"Ø�,Ð1AÈ&ô
ˆð €KùòS 2÷8ð üò"	
ùò
s   »GÂ?AGÄ:G)Å-G.ÇG&)r?   Ú
n_expectedrM   c               óØ  ‡— dd„Š	 d	 	 	 d	ˆfd„} ||«      }| s$|�t        |«      D �cg c]  }d|› �‘Œ	 c}ng }||fS t        | t        «      r%t        | «      }t        | j	                  «       «      } nNg }t        | «      D ]>  \  }}t        |t        «      r| xr ||v}	|	rd|› �n|}n|d   }|j                  |«       Œ@ |�t        |«      |k7  rd}
t        |
«      ‚|r"t        ||«      D ��ci c]
  \  }}|�||“Œ c}}nd}i }| D ]>  }t        |t        «      rŒ|\  }}|€Œ ‰|«      }|r|j                  ||«      n|}|||<   Œ@ |r|j                  |«       ||fS c c}w c c}}w )
z¸
    Unpack column names and create dtype lookup.

    Works for any (name, dtype) pairs or schema dict input,
    overriding any inferred dtypes with explicit dtypes if supplied.
    c                ó6   — t        | d¬«      r| S t        | «      S )z1Parse non-Polars data types as Polars data types.T)Úinclude_unknown)r-   r.   )rU   s    rJ   Ú_normalize_dtypez(_unpack_schema.<locals>._normalize_dtype´   s   € ä˜5°$Õ7ØˆLä# EÓ*Ð*rb   Nc                ól   •— | €i S | j                  «       D ��ci c]  \  }}| ‰|«      “Œ c}}S c c}}w )zCParse schema overrides as a dictionary of name to Polars data type.)rs   )r?   r€   rU   r‰   s      €rJ   Ú_parse_schema_overridesz/_unpack_schema.<locals>._parse_schema_overrides»   sH   ø€ ð Ð#ØˆIð >N×=SÑ=SÓ=U÷
Ù.9¨d°EˆDÑ" 5Ó)Ñ)ó
ð 	
ùó 
s   ™0Úcolumn_r   z)data does not match the number of columns)rU   r   Úreturnr;   rE   )r?   úSchemaDict | Noner�   zdict[str, PolarsDataType])ÚrangerP   r   rl   rs   Ú	enumerateÚstrÚappendrS   r1   r   rt   Úupdate)rI   r?   r…   rM   r‹   Úire   r|   rH   Úunnamedr{   r€   ÚlookupÚcolumn_dtypesrU   r‰   s                  @rJ   rj   rj   ¦   sÒ  ø€ ó+ð /3ð	
Ø+ð	
à	"õ	
ñ /Ð/?Ó@Ðñ à:DÐ:P¤E¨*Ó$5Ö6˜qˆw�q�cŠ]Ó6ÐVXð 	ð Ð(Ð(Ð(ô �&œ'Ô"Ü"& v£,ˆÜ�f—l‘l“nÓ%‰àˆÜ Ó'ò 	%‰FˆAˆsÜ˜#œsÔ#Ø!˜'ÒA cÐ1AÐ&A�Ù'.˜ ˜s‘m°C‘à˜!‘f�Ø×Ñ Õ$ð	%ð Ð¤# lÓ"3°zÒ"AØ9ˆÜ˜‹oÐñ ô )¨°|ÓD÷	
á��TØÐð �‰Iô	
ð ð ð 02€MØò 
$ˆÜ�cœ3ÔØà‰ˆˆeØˆ=Øá$ UÓ+ˆEÙ)/ˆv�z‰z˜$ Ô%°TˆØ#ˆ�dÒð
$ñ Ø×ÑÐ-Ô.à˜Ð&Ð&ùòe 7ùó0	
s   ªE!Ã0E&)rf   c               ó@  ‡— |€| S | s.|D �cg c]"  }t        j                  |¬«      j                  ‘Œ$ c}S t        | «      t        |«      k7  r&dt        |«      › dt        | «      › d�}t	        |«      ‚|rF| D �ci c]  }|j                  «       |“Œ c}Št        ˆfd„|D «       «      r|D �cg c]  }‰|   ‘Œ	 c}S t        |«      D ]F  \  }}|| |   j                  «       k7  sŒ| |   j                  «       | |<   | |   j                  |«       ŒH | S c c}w c c}w c c}w )z*Rename data according to columns argument.)r€   zdimensions of columns arg (ú) must match data dimensions (ú)c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wrE   rF   )rG   rH   Ú
series_maps     €rJ   rK   z&_handle_columns_arg.<locals>.<genexpr>  s   øè ø€ Ò6 s��zÔ!Ñ6ùrL   )
r_   r8   ru   rS   ri   r€   rh   r�   ÚcloneÚrename)	rz   re   rf   Úcr{   r‚   rH   r”   rœ   s	           @rJ   rw   rw      s  ø€ ð €ØˆÙØ.5Ö6¨”—	‘	˜qÔ!×$Ó$Ò6Ð6Ü	ˆT‹”c˜'“lÒ	"Ø+¬C°«L¨>Ð9WÔX[Ð\`ÓXaÐWbÐbcÐdˆÜ˜‹oÐáØ+/Ö0 a�a—f‘f“h ‘kÒ0ˆ
ÜÓ6¨gÔ6Ô6Ø/6Ö7¨�J˜s“OÒ7Ð7ä˜'Ó"ò ‰ˆˆ1Ø��Q‘—‘“ÓØ˜1‘g—m‘m“oˆD�‰GØ�‰G�N‰N˜1Õðð
 €Kùò 7ùò 1ùâ7s   Œ'DÁ9DÂ,Drc   c               óÔ  — | j                  «       | j                  «       }}t        |xs ||¬«      \  }}g }||k7  r<t        |«      t        |«      k  r||dt        |«       k(  r|}n| j	                  |«       g }	t        |«      D �]â  \  }
}|j                  |«      }||
   }|€Œ |t        cxk(  r|k7  rGn nD|	j                  t        j                  |«      j                  t        |¬«      j                  «       Œv|t        cxk(  r|k7  rCn n@|	j                  t        j                  |«      j                  ||¬«      j                  «       ŒÈ|rY|j                  |«      x}rF||k7  rA|	j                  t        j                  |«      j                  ||¬«      j                  «       �Œ#|t        k7  s�Œ.||k7  s�Œ5|j                  «       r_|t         k7  rV|t"        k(  rMt        j                  |«      j$                  j'                  ||¬«      j                  }|	j                  |«       �Œ¤|	j                  t        j                  |«      j                  ||¬«      j                  «       �Œå |	s|rt| j)                  «       }|	r|j+                  |	«      }|r<|j-                  |D �cg c]!  }t        j                  |«      j                  ‘Œ# c}«      }|j/                  dd¬«      } | S c c}w )zGApply 'columns' param *after* PyDataFrame creation (if no alternative).©r?   Nrc   z	in-memory)ÚengineÚlambda_post_opt)re   rx   rj   rS   Úset_column_namesr�   rt   r'   r’   ÚFrH   ÚcastÚ_pyexprr)   r,   Úis_temporalr(   r*   r‘   ÚstrptimeÚlazyÚwith_columnsÚselectÚcollect)rƒ   re   Ústructsr?   r@   Úpydf_columnsÚpydf_dtypesrx   Úcolumn_subsetÚcolumn_castsr”   rH   rU   Ú
pydf_dtypeÚstructÚtemporal_castÚpyldfs                    rJ   ry   ry     sY  € ð !%§¡£°·±³�+€LÜ$Ø	Ò	 �LÐ4Dô�O€GˆVð  "€MØ�,ÒÜˆw‹<œ#˜lÓ+Ò+°¸<ÈÌ#ÈgË,Ð;WÒ0WØ#‰Mà×!Ñ! 'Ô*à€LÜ˜GÓ$ó S‰ˆˆ3Ø—
‘
˜3“ˆØ  ‘^ˆ
Øˆ=ØØ”KÔ- :Õ-Ø×Ñ¤§¡ c£
§¡´ÀF Ó K× SÑ SÕTØ”dÔ(˜jÕ(Ø×Ñ¤§¡ c£
§¡°¸f Ó E× MÑ MÕNÙ G§K¡K°Ó$4Ð4˜&Ð4¸&ÀJÒ:NØ×Ñ¤§¡ c£
§¡°¸v Ó F× NÑ NÖOØ”gÔ %¨:Ô"5Ø× Ñ Ô" u´Ò'8¸ZÌ6Ò=QÜ !§¡ c£
§¡× 7Ñ 7¸ÀfÐ 7Ó M× UÑ U�Ø×#Ñ# MÖ2à×#Ñ#¤A§E¡E¨#£J§O¡O°EÀ& OÓ$I×$QÑ$QÖRð!Sñ$ ‘}Ø—	‘	“ˆÙØ×&Ñ& |Ó4ˆEÙØ—L‘LÀÖ!N¸¤!§%¡%¨£*×"4Ó"4Ò!NÓOˆEØ�}‰} KÀˆ}ÓFˆà€Kùò "Os   Ê#&K%)r?   r@   ÚorderrA   c               ó\  — i }| �rkt        d„ | j                  «       D «       «      rd}t        |«      ‚|xs i }t        | ||¬«      } t	        d„ | j                  «       D «       «      }|dkD  �r/| j                  «       D �]  \  }	}
|j                  |	«      }t        |
t        «      rÔ|t        k7  rËt        j                  |
|¬«      }|j                  dk(  rŽ|dkD  r‰t        d„ |j                  j                  «       D «       «      r_|
j                  «       D ��ci c]  \  }}|||   j                  ||dz
  ¬«      “Œ! }}}t        j                  |«      j!                  |	«      }n|j!                  |	«      }|||	<   Œüt        |
t        j"                  «      rM|	|
j$                  k7  r|
j'                  |	«      n|
}|r"||j(                  k7  r|j+                  ||¬«      }|||	<   �Œct-        |
«      €t/        |
«      rt        j"                  |	|
|||¬	«      ||	<   �Œ˜|
�4t        |
t0        t2        t4        t6        t8        t:        t<        t>        f«      r-tA        jB                  |
||d
¬«      jE                  |	«      ||	<   �Œût        j"                  |	|
g|z  ||¬«      ||	<   �Œ nÕt        d„ | j                  «       D «       «      rD| j                  «       D ]0  \  }	}
t        j"                  |	|
|j                  |	«      |¬«      ||	<   Œ2 nqt        d„ | j                  «       D «       «      rQ| j                  «       D ]>  \  }	}
t        j"                  |	t/        |
«      r|
n|
g|j                  |	«      |¬«      ||	<   Œ@ |r.tG        |«      |k7  r |D �ci c]  }||jI                  |«      “Œ c}S |S c c}}w c c}w )zCExpand any scalar values in dict data (propagate literal as array).c              3  óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wrE   )rP   r_   ÚExpr©rG   rX   s     rJ   rK   z&_expand_dict_values.<locals>.<genexpr>Y  s   è ø€ ÒA¨CŒz˜#œrŸw™w×'ÑAùs   ‚$&zåpassing Expr objects to the DataFrame constructor is not supported

Hint: Try evaluating the expression first using `select`, or if you meant to create an Object column containing expressions, pass a list of Expr objects instead.rc   c              3  ó:   K  — | ]  }t        |«      xs d –— Œ y­w©r   N©r#   r»   s     rJ   rK   z&_expand_dict_values.<locals>.<genexpr>d  s   è ø€ ÒD¨sœ ›Ò)¨Ó)ÑDùs   ‚r   r]   c              3  ó>   K  — | ]  }|j                  «        –— Œ y ­wrE   )Ú	is_nested)rG   Úds     rJ   rK   z&_expand_dict_values.<locals>.<genexpr>m  s   è ø€ ÒO°a A§K¡K£MÔ 1ÑOùs   ‚)Ún©r€   rn   rU   r@   rA   T)rU   Úeager)r€   rn   rU   r@   c              3  ó8   K  — | ]  }t        |«      d k(  –— Œ y­wr½   r¾   r»   s     rJ   rK   z&_expand_dict_values.<locals>.<genexpr>‘  s   è ø€ Ò=¨”&˜“+ Õ"Ñ=ùs   ‚)rn   rU   r@   c              3  ó6   K  — | ]  }t        |«      d u –— Œ y ­wrE   r¾   r»   s     rJ   rK   z&_expand_dict_values.<locals>.<genexpr>—  s   è ø€ Ò@¨3”&˜“+ Ô%Ñ@ùs   ‚)%Úanyrn   Ú	TypeErrorÚ_expand_dict_dataÚmaxrs   rt   rP   rp   r+   r_   r7   Úheightrh   rI   Úextend_constantÚ	to_structr8   r€   rž   rU   r¦   r#   r"   rO   Úfloatr‘   Úboolr   r   r	   r
   r¥   ÚrepeatÚaliasrl   Úpop)rz   r?   r@   r·   rA   Úupdated_datar{   rx   Ú	array_lenr€   rX   rU   ÚvdfÚnmÚvÚs_valsÚstr‚   rH   s                      rJ   rv   rv   N  sN  € ð €LÚÜÑA°4·;±;³=ÔAÔAð8ð ô ˜C“.Ð à!Ò' RˆÜ   v°fÔ=ˆÜÑD°d·k±k³mÔDÓDˆ	Ø�q‹=Ø!ŸZ™Z›\ó )‘	��cØŸ
™
 4Ó(�Ü˜c¤4Ô(¨U´fª_ÜŸ,™, s°6Ô:�CàŸ
™
 ašØ%¨šMÜÑO¸3¿:¹:×;LÑ;LÓ;NÔOÔOð *-¯©«÷"á %  Að   B¡× 7Ñ 7¸¸iÈ!¹mÐ 7Ó MÑMð"˜ñ "ô  Ÿ\™\¨&Ó1×;Ñ;¸DÓA™à Ÿ]™]¨4Ó0˜Ø)+�L Ò&ä ¤R§Y¡YÔ/Ø,0°C·H±HÒ,<˜Ÿ
™
 4Ô(À#�AÙ ¨!¯'©'Ò!1ØŸF™F 5°˜FÓ8˜Ø)*�L Ó&ä˜C“[Ð,´¸cÔ0BÜ)+¯©Ø!Ø"Ø#Ø%Ø$/ô*�L Ó&ð �[¤JØœ#œu¤c¬4´´xÄÄyÐQô%ô *+¯©Ø˜Y¨e¸4ô*ç‘e˜D“kð ! Ó&ô *,¯©Ø!¨3¨%°)Ñ*;À5ÐQWô*�L Ó&ñO)ôV Ñ=¨t¯{©{«}Ô=Ô=Ø!ŸZ™Z›\ò ‘	��cÜ%'§Y¡YØ ¨F¯J©J°tÓ,<ÀVô&�˜TÒ"ñô
 Ñ@°$·+±+³-Ô@Ô@Ø!ŸZ™Z›\ò ‘	��cÜ%'§Y¡YØÜ#0°Ô#5™C¸C¸5Ø Ÿ*™* TÓ*Ø!ô	&�˜TÒ"ðñ ”�lÓ# uÒ,Ø6;Ö<¨s��\×%Ñ% cÓ*Ñ*Ò<Ð<ØÐùóe"ùòb =s   Ä$N#ÎN)c               óª   — i }| j                  «       D ]=  \  }}t        |«      r(t        j                  |||j	                  |«      |¬«      n|||<   Œ? |S )z
    Expand any unsized generators/iterators.

    (Note that `range` is sized, and will take a fast-path on Series init).
    rc   )rs   r"   r_   r8   rt   )rz   rx   r@   Úexpanded_datar€   rX   s         rJ   rÉ   rÉ   ¤  sc   € ð 	ð ð —Z‘Z“\ò 
‰	ˆˆcô ˜SÔ!ô �I‰I�d˜C §¡¨DÓ!1¸&ÕAàð 	�dÒð
ð Ðrb   )r?   r@   ÚorientÚinfer_schema_lengthrA   c          
     óZ   — | st        i ||¬«      S t        t        | «      | ||||||¬«      S )z(Construct a PyDataFrame from a sequence.)rI   r?   ©rz   rI   r?   r@   rÜ   rÝ   rA   )r„   Ú_sequence_to_pydf_dispatcherr   rß   s          rJ   Úsequence_to_pydfrá   »  sA   € ñ Ü˜B vÐ@PÔQÐQä'Ü˜4Ó ØØØ)ØØØ/Øô	ð 	rb   )r@   rA   c               óø  — |||||||dœ}d}	t        | t        «      r't        }
|D �cg c]  }t        |«      ‘Œ }}|d   } d}	�nt        | t        j
                  «      rt        }
nät        | «      r!t        | t        j                  «      rt        }
n¸t        | «      r@t        | t        j
                  t        j                  t        j                  f«      rt        }
nmt!        j"                  | «      rt$        }
nQt'        | «      rt(        }
n?t+        | «      rt,        }
n-t        | t.        «      rt        | t0        «      st        }
nt2        }
|	rt4        j7                  t9        | «      |
«       | |d<    |
di |¤ŽS c c}w )Nrß   Tr   FÚfirst_elementrF   )rP   r   Ú_sequence_of_sequence_to_pydfrl   r_   r8   Ú_sequence_of_series_to_pydfr   rQ   rR   Ú_sequence_of_numpy_to_pydfr   ÚpdÚIndexÚDatetimeIndexÚ_sequence_of_pandas_to_pydfr   Úis_dataclassÚ _sequence_of_dataclasses_to_pydfr   Ú$_sequence_of_pydantic_models_to_pydfr   Ú_sequence_of_tuple_to_pydfr   r‘   Ú_sequence_of_elements_to_pydfrà   ÚregisterÚtype)rã   rz   rI   r?   r@   rÜ   rÝ   rA   Úcommon_paramsÚregister_with_singledispatchÚto_pydfÚrows               rJ   rà   rà   Õ  s:  € ð$ ØØ,ØØØ2Ø"ñ%€Mð $(Ð ä�-¤Ô+Ü/ˆØ%)Ö*˜c”�S•	Ð*ˆÐ*Ø˜Q™ˆØ',Ò$ä	�M¤2§9¡9Ô	-Ü-‰ä	˜-Ô	(¬Z¸ÄrÇzÁzÔ-RÜ,‰ä	˜=Ô	)¬jØœŸ	™	¤2§8¡8¬R×-=Ñ-=Ð>ô/ô .‰ä	×	!Ñ	! -Ô	0Ü2‰ä	˜=Ô	)Ü6‰ä	˜=Ô	)Ü,‰ä	�M¤8Ô	,´ZÀÌsÔ5SÜ/‰ä/ˆá#Ü$×-Ñ-¬d°=Ó.AÀ7ÔKà%2€M�/Ñ"ÙÑ#�]Ñ#Ð#ùòC +s   §E7r^   c               óì  — |€M|€d}nHt        |«      t        | «      k(  xr t        |«      t        |«      k7  }|rdnd}|rt        dt        «       |dk(  �rt        ||t        | «      ¬«      \  }	}|rt	        ||	«      ni }
d}|
j                  «       D ]b  \  }}|t        t        fv r
t        |
|<   Œ|rŒ!|j                  «       t        t        fv sŒ>t        t        | |d «      j                  t        «      }Œd |r3|D �cg c]  }t!        |«      ‘Œ }}t#        j$                  |d d ||¬«      }nt#        j&                  ||
xs d |¬«      }|	s|rt)        ||	||¬«      }|S |dk(  ryt        ||t        |«      ¬«      \  }	}t+        |«      D ��cg c]>  \  }}t-        j.                  |	|   ||j1                  |	|   «      ||¬	«      j2                  ‘Œ@ }}}t#        |«      S d
|›�}t5        |«      ‚c c}w c c}}w )NrH   rõ   z�Row orientation inferred during DataFrame construction. Explicitly specify the orientation by passing `orient="row"` to silence this warning.©r?   r…   F©rI   r?   r@   rÝ   ©rI   rÝ   rg   rd   ú2`orient` must be one of {'col', 'row', None}, got )rS   r$   r0   rj   Ú_include_unknownsrs   r'   r)   r*   Ú	base_typer,   r+   r   ÚgetattrÚ	__class__r   r    r3   Ú
from_dictsÚ	from_rowsry   r�   r_   r8   rt   ru   ri   )rã   rz   rI   r?   r@   rÜ   rÝ   rA   Úis_row_orientedr|   Úlocal_schema_overrideÚunpack_nestedrH   ÚtprÁ   Údictsrƒ   r”   Úelementr�   r{   s                        rJ   rä   rä     s?  € ð €~Øˆ>Ø‰Fô  # 6›{¬c°-Ó.@Ñ@ò Ü�F“œs 4›yÑ(ð ñ .‘U°5ˆFáÜðmä*ôð �ƒÜ)7ØÐ%5Ä#ÀmÓBTô*
Ñ&ˆÐ&ñ
  ô Ð.°Ô=àð 	ð ˆØ,×2Ñ2Ó4ò 	‰GˆC�Ø”k¤4Ð(Ñ(Ü-3Ð% cÒ*Ú"¨¯©«¼7ÄFÐ:KÒ(KÜ /Ü˜M¨3°Ó5×?Ñ?Äó!‘ð		ñ Ø+/Ö0 a”Y˜q•\Ð0ˆEÐ0Ü×)Ñ)ØØØ!%ØØ$7ô‰Dô ×(Ñ(ØØ,Ò4°Ø$7ôˆDñ
 Ñ+Ü&Ø�lÐ5EÈfôˆDð ˆà	�5ŠÜ)7ØÐ%5Ä#ÀdÃ)ô*
Ñ&ˆÐ&ô (¨›o÷	'
ñ ��7ô �I‰IØ˜Q‘ØØ&×*Ñ*¨<¸©?Ó;ØØ'ô÷ ‰bñð	'
ˆñ 	'
ô ˜;Ó'Ð'ð EÀVÀJÐOˆÜ˜‹oÐùòM 1ùó0	'
s   Ã=G+Æ
AG0c               ó¼  — |D �cg c]  }|j                   ‘Œ }}t        |xs ||t        |«      ¬«      \  }}g }	t        |«      D ]y  \  }
}|j                   s|j	                  ||
   «      }|j                  ||
   «      }|r#||j                  k7  r|j                  ||d¬«      }|	j                  |j                  «       Œ{ t        |	|¬«      }	t        |	«      S c c}w )Nr÷   F©r@   Úwrap_numerical©re   )r€   rj   rS   r�   rÑ   rt   rU   r¦   r’   ru   rw   r3   )rã   rz   rI   r?   r@   Úkwargsr‚   Úseries_namesr|   r�   r”   Ú	new_dtypes               rJ   rå   rå   r  sÚ   € ð %)Ö)˜q�A—F“FÐ)€LÐ)Ü%3ØÒ�,Ø)Ü�t“9ô&Ñ"€LÐ"ð
 #%€KÜ˜$“ò !‰ˆˆ1Ø�vŠvØ—‘˜ Q™Ó(ˆAØ$×(Ñ(¨°a©Ó9ˆ	Ù˜ a§g¡gÒ-Ø—‘�y¨À�ÓFˆAØ×Ñ˜1Ÿ4™4Õ ð!ô & k¸<ÔH€KÜ�{Ó#Ð#ùò! *s   …Cc          
     óR  — t        | j                  «      st        | «      ro|€i| j                  }t	        | dd «      }|rNt        |«      t        |«      k(  r7| j                  j                  «       D �	�
cg c]  \  }	}
|	t        |
«      f‘Œ }}	}
|€d}t        | |||||||¬«      S c c}
}	w )NÚ__annotations__rõ   rß   )
r   rþ   r   Ú_fieldsrý   rS   r  rs   r/   rä   )rã   rz   rI   r?   r@   rÜ   rÝ   rA   r   r€   r  s              rJ   rî   rî   Ž  sÁ   € ô �]×,Ñ,Ô-Ô1BÀ=Ô1QØˆ>Ø"×*Ñ*ˆFÜ! -Ð1BÀDÓIˆKÙœs ;Ó/´3°v³;Ò>ð %2×$AÑ$A×$GÑ$GÓ$I÷á ˜˜bð Ô/°Ó3Ò4ð�ñ ð ˆ>ØˆFô )ØØØØ)ØØØ/Øô	ð 	ùós   Á2B#c               ó”   — t        ||¬«      \  }}|rt        ||xs t        |«      «      nd }t        j                  |||||¬«      }	|	S )Nr¡   )r@   rÝ   )rj   rû   rl   r3   rÿ   )
rã   rz   rI   r?   r@   rÝ   r  r|   Údicts_schemarƒ   s
             rJ   Ú_sequence_of_dict_to_pydfr  ´  sg   € ô &4ØÐ!1ô&Ñ"€LÐ"ñ
 ô 	Ð*¨LÒ,R¼DÐAQÓ<RÔSàð ô ×!Ñ!ØØØØØ/ô€Dð €Krb   c               óÆ   — t        ||d¬«      \  }}t        j                  |d   ||j                  |d   «      |¬«      j                  g}t        ||¬«      }t        |«      S )Nr]   r÷   r   rc   r
  )rj   r_   r8   rt   ru   rw   r3   )rã   rz   rI   r?   r@   r  r|   r�   s           rJ   rï   rï   Ó  sp   € ô &4ØÐ!1¸aô&Ñ"€LÐ"ô 	�	‰	Ø˜‰OØØ× Ñ  ¨a¡Ó1Øô		
÷
 ‰"ð#€Kô & k¸<ÔH€KÜ�{Ó#Ð#rb   c                óP   — | j                   dk(  rt        | fi |¤ŽS t        | fi |¤ŽS )Nr]   )Úndimrä   rï   )rã   r  s     rJ   ræ   ræ   ì  s2   € ð ×Ñ˜QÒÜ,¨]ÑE¸fÑEÐEä,¨]ÑE¸fÑEÐErb   c               ód  — |€g }nt        ||d¬«      \  }}|xs i }g }t        |«      D ]z  \  }}	|r||   n|	j                  }
t        j                  |
|	¬«      }|j                  |
«      }|�'||j                  «       k7  r|j                  ||d¬«      }|j                  |«       Œ| t        |«      S )Nr]   r÷   )r€   rn   Fr  )
rj   r�   r€   ÚplcÚpandas_to_pyseriesrt   rU   r¦   r’   r3   )rã   rz   rI   r?   r@   r  r|   r�   r”   r‚   r€   ÚpyseriesrU   s                rJ   rê   rê   ö  sÅ   € ð €~Ø"$‰ä)7ØÐ%5À!ô*
Ñ&ˆÐ&ð (Ò-¨2ÐØ"$€KÜ˜$“ò %‰ˆˆ1Ù".ˆ|˜AŠ°A·F±FˆÜ×)Ñ)¨t¸AÔ>ˆØ ×$Ñ$ TÓ*ˆØÐ ¨(¯.©.Ó*:Ò!:Ø—}‘} U°6È%�}ÓPˆHØ×Ñ˜8Õ$ð%ô �{Ó#Ð#rb   c               ó°  — ddl m}m} t        | ||d¬«      \  }	}
}}|	r0|D �cg c]
  } ||«      ‘Œ }}t	        j
                  |dd||¬«      }n1|D �cg c]
  } ||«      ‘Œ }}t	        j                  ||xs d|¬«      }|rD|j                  «       D ��ci c]  \  }}t        |t        «      sŒ||“Œ }}}t        ||
|||¬«      }|S c c}w c c}w c c}}w )z-Initialize DataFrame from Python dataclasses.r   )ÚasdictÚastupleN)Úmodel_fieldsrø   rù   rc   )r   r  r  Ú$_establish_dataclass_or_model_schemar3   rÿ   r   rs   rP   r+   ry   )rã   rz   rI   r?   rÝ   r@   r  r  r  r  r|   Ú	overridesÚmdr  rƒ   ÚdcÚrowsrŸ   r  r®   s                       rJ   rì   rì     sû   € ÷ ,ô 	-Ø�vÐ/¸dô	ñØØØØñ Ø&*Ö+ ‘˜•Ð+ˆÐ+Ü×%Ñ%ØØØ!ØØ 3ô
‰ð '+Ö+ ‘˜•Ð+ˆÐ+Ü×$Ñ$ØØÒ$ Ø 3ô
ˆñ Ø&/§o¡oÓ&7×R™U˜Q ¼:ÀbÌ&Õ;Q�1�b‘5ÐRˆÑRÜ"Ø�, Ð)9À&ô
ˆð €Kùò- ,ùò ,ùó Ss   £CÁCÂCÂ.Cc               ó:  — ddl }t        |j                  «      dk  }t        |r| j                  n| j
                  j                  «      }	t        | |||	«      \  }
}}}|
r[|r|D �cg c]  }|j                  «       ‘Œ c}n|D �cg c]  }|j                  d¬«      ‘Œ c}}t        j                  |dd||¬«      }n�t        |	«      dkD  r@t        |	Ž }|D �cg c]  } ||j                  «      ‘Œ }}t        j                  |||¬«      }n3|D �cg c]  }|j                  ‘Œ }}t        j                  ||d||¬«      }|rD|j!                  «       D ��ci c]  \  }}t#        |t$        «      sŒ||“Œ }}}t'        |||||¬	«      }|S c c}w c c}w c c}w c c}w c c}}w )
z1Initialise DataFrame from pydantic model objects.r   N)é   r   Úpython)Úmoderø   é2   rù   rc   )Úpydanticr%   Ú__version__rl   Ú
__fields__rþ   r  r  rp   Ú
model_dumpr3   rÿ   rS   r   Ú__dict__r   rs   rP   r+   ry   )rã   rz   rI   r?   rÝ   r@   r  r)  Úold_pydanticr  r  r|   r   r!  r  rƒ   Ú
get_valuesr#  rŸ   r  r®   s                        rJ   rí   rí   B  s²  € ó ä  ×!5Ñ!5Ó6¸Ñ?€LÜáð 	× Ò à×$Ñ$×1Ñ1ó€Lô 	-Ø�vÐ/°ó	ñØØØØñ ñ
 ð "&Ö&˜2ˆR�W‰W�YÓ&à9=Ö>°2�"—-‘- X�-Õ.Ò>ð 	ô
 ×%Ñ%ØØØ!ØØ 3ô
‰ô 
ˆ\Ó	˜RÒ	ä Ð.ˆ
Ø26Ö7¨B‘
˜2Ÿ;™;Õ'Ð7ˆÐ7Ü×$Ñ$Ø˜Ð8Kô
‰ð
 (,Ö, �—“Ð,ˆÐ,Ü×%Ñ%ØØØ!ØØ 3ô
ˆñ Ø&/§o¡oÓ&7×R™U˜Q ¼:ÀbÌ&Õ;Q�1�b‘5ÐRˆÑRÜ"Ø�, Ð)9À&ô
ˆð €KùòI 'ùâ>ùò 8ùò -ùó Ss$   Á%FÂFÃFÄFÅFÅ)Fc                óx  — ddl m} d}|r5t        ||¬«      \  }}|D �ci c]  }||j                  |t        «      “Œ }}nªg }t        | j                  «      j                  «       D ��	ci c]%  \  }}	|r||v rn|dk7  r|t        |	«      xs t        “Œ' }}}	|r|j                  |«       nA|s=t         || «      «      }
|j                  «       D ��	ci c]  \  }}	||
v sŒ||	“Œ c}	}x}}n|}|j                  «       D ]j  \  }}	|	t        t        fv r
t        ||<   Œ|rŒ!|	j                  «       t        t        fv sŒ>t!        t#        | |d«      |rt$        nt         j&                  «      }Œl |r<t)        |«      t)        |«      k(  r%t+        t-        ||j/                  «       d¬«      «      }||||fS c c}w c c}	}w c c}	}w )	zLShared utility code for establishing dataclasses/pydantic model cols/schema.r   )r  Fr¡   Ú	__slots__NTrc   )r   r  rj   rt   r,   r!   rþ   rs   r/   r“   Úsetr'   r)   r*   rü   r+   r   rý   r   rë   rS   rp   rq   rn   )rã   rI   r?   r  r  r  r|   rH   r   r  Ú	dc_fieldsrÖ   s               rJ   r  r  ˆ  sÆ  € õ #à€MÙÜ)7ØÐ%5ô*
Ñ&ˆÐ&ð IUÖUÀ�SÐ*×.Ñ.¨s´GÓ<Ñ<ÐUˆ	ÑUàˆô .¨m×.EÑ.EÓF×LÑLÓN÷
á��RÙ)5�˜Ò$¸CÀ;Ò<Nð Ô& rÓ*Ò5¬gÑ5ð
ˆ	ñ 
ñ
 Ø×ÑÐ-Õ.ÙÜ™F =Ó1Ó2ˆIà%.§_¡_Ó%6÷,Ù!˜2˜r¸"À	º/��B‘ó,ð Ð™yð  )Ðà—?‘?Ó$ò ‰ˆˆRØ”+œtÐ$Ñ$Ü#ˆI�cŠNÚ B§L¡L£N´wÄÐ6GÒ$GÜ+Ü˜ s¨DÓ1Ù%1Õ!´{×7OÑ7Oó‰Mð	ñ œ˜LÓ)¬S°«^Ò;Üœ˜\¨9×+;Ñ+;Ó+=ÀdÔKÓLˆ	à˜,Ð(8¸)ÐCÐCùò= Vùó
ùó,s   ŸF+Á(*F0ÃF6ÃF6c                óf   — |D �ci c]!  }|| j                  |t        «      xs t        “Œ# c}S c c}w )z7Complete partial schema dict by including Unknown type.)rt   r,   )rI   ÚcolsrH   s      rJ   rû   rû   ·  s9   € ð öàð 	ˆf�j‰j˜œgÓ&Ò1¬'Ñ1òð ùò s   …&.)r?   r@   rÜ   Ú
chunk_sizerÝ   Úrechunkc               óÌ  ‡‡‡— |}g }	i }
|�t        |‰¬«      \  }	Šn‰rt        |‰¬«      \  }Št        | t        «      st        | «      } |dk(  r¡|	r4‰r2t	        |	«      D ��ci c]  \  }}|‰j                  |t        «      “Œ }
}}t        j                  t	        | «      D ��ci c]7  \  }}|	r|	|   nd|› �t        j                  ||
j                  |«      ‰¬«      “Œ9 c}}«      j                  S dˆˆˆfd„}d}d}|r|}n|	r|t        |	«      z  }nd}d}‰€dnt        ‰|xs d	«      }	 t        t        | |«      «      }|sni |||«      }|€E|}|s#t        |j                  j!                  «       «      }||k7  r1|j"                  x}dkD  r ||z  x}}n|j%                  |d
¬«       |dz  }Œ�|€	 |g |«      }|dkD  r|r|j'                  «       }|j                  S c c}}w c c}}w )z3Construct a PyDataFrame from an iterable/generator.Nr¡   rH   rŒ   )rU   r@   c                ó:   •— t        j                  | |‰d‰‰¬«      S )Nrõ   )rz   rI   r@   rÜ   rÝ   r?   )r_   r7   )rn   rI   rÝ   r?   r@   s     €€€rJ   Úto_frame_chunkz(iterable_to_pydf.<locals>.to_frame_chunkì  s&   ø€ Ü�|‰|ØØØØØ 3Ø-ô
ð 	
rb   r   i@B r>   T)Úin_placer]   )rn   z	list[Any]rI   úSchemaDefinition | Noner�   r7   )rj   rP   r   Úiterr�   rt   r,   r_   r7   r8   Ú_dfrS   rÊ   rl   r   rI   rs   ÚwidthÚvstackr7  )rz   rI   r?   r@   rÜ   r6  rÝ   r7  Úoriginal_schemar|   Údtypes_by_idxÚ_ÚidxrH   Úcoldatar:  Ún_chunksÚn_chunk_elemsÚadaptive_chunk_sizeÚdfrn   Úframe_chunkÚ	n_columnss     ``  `                rJ   Úiterable_to_pydfrL  Á  s;  ú€ ð €OØ €LØ/1€MØÐÜ)7ØÐ%5ô*
Ñ&ˆÑ&ñ 
Ü,¨VÐFVÔWÑˆÐä�dœIÔ&Ü�D‹zˆà�‚ÙÑ,ô !*¨,Ó 7÷á�C˜ð Ð%×)Ñ)¨#¬wÓ7Ñ7ðˆMñ ô
 �|‰|ô %.¨d£O÷ñ !�C˜ñ '3�˜cÒ"¸'À#À¸Ì"Ï)É)ØØ'×+Ñ+¨CÓ0Ø!ôKñ óó	
÷ ‰#ð		÷
ð €HØ€MáØ(ÑÙ	Ø+¬s°<Ó/@Ñ@Ñà"Ðà€Bð Ð&ñ 	äÐ$Ð&9Ò&A¸TÓBð ð
 Ü”f˜T :Ó.Ó/ˆÙØÙ$ V¨_Ó=ˆØˆ:ØˆBÙ"Ü"& r§y¡y§¡Ó'8Ó"9�ØÐ0Ò0Ø!#§¡Ð)�I¨QÒ.Ø7DÈ	Ñ7QÐQ�JÑ!4à�I‰I�k¨DˆIÔ1Ø˜‰MˆHð ð  
€zÙ˜B Ó0ˆà�!‚|™Ø�Z‰Z‹\ˆà�6‰6€MùóAùós   Á!!GÂ"<G 
c               óÐ  — | j                   D �ch c]  }t        |«      ’Œ }}|r-| j                  j                  D �ch c]  }t        |«      ’Œ c}n	t	        «       }t        |«      t        | j                   «      k  }|r+t        |«      t        | j                  j                  «      k  nd}|s|rd}t        |«      ‚||z  }	t        |	«      dkD  rd}t        |«      ‚yc c}w c c}w )z:Check pandas dataframe columns can be converted to polars.Fz|Pandas dataframe contains non-unique indices and/or column names. Polars dataframes require unique string names for columns.r   z1Pandas indices and column names must not overlap.N)re   r‘   ÚindexÚnamesr2  rS   ri   )
rz   Úinclude_indexrH   Ústringified_colsrD  Ústringified_indexÚnon_unique_colsÚnon_unique_indicesr{   Úoverlapping_cols_and_indicess
             rJ   Ú_check_pandas_columnsrV    sÜ   € à6:·l±lÖ!C¨s¤# c¥(Ð!CÐÐ!Cá2?˜TŸZ™Z×-Ñ-Ö.�cŒˆS�Ó.ÄSÃUð ô  Ð 0Ó1´C¸¿¹Ó4EÑE€Oá<IŒÐÓ	¤# d§j¡j×&6Ñ&6Ó"7Ò	7Èuð ñ Ñ,ðIð 	ô ˜‹oÐà-=Ð@QÑ-QÐ Ü
Ð'Ó(¨1Ò,ØAˆÜ˜‹oÐð -ùò# "Dùâ.s
   �C½C#)r?   r@   r7  rA   rP  c               ó\  ‡ — t        ‰ |¬«       |xr t        ‰ «       }|s©‰ j                  d   dk(  r"t        j                  ‰ j                  d   «      S t        ˆ fd„‰ j                  D «       «      rWt        j                  ‰ j                  D �ci c]  }t        |«      ‰ |   j                  «       “Œ! c}||||¬«      j                  S t        sd}	t        |	«      ‚i }
‰ j                  d   }|rX‰ j                  j                  D ]?  }t!        j"                  ‰ j                  j%                  |«      ||¬«      |
t        |«      <   ŒA ‰ j'                  «       D ])  \  }}t!        j"                  |||¬«      |
t        |«      <   Œ+ t)        j*                  |
«      }t-        |||||¬«      S c c}w )	z0Construct a PyDataFrame from a pandas DataFrame.)rP  r]   r   c              3  ó:   •K  — | ]  }t        ‰|   «      –— Œ y ­wrE   )r   )rG   rH   rz   s     €rJ   rK   z!pandas_to_pydf.<locals>.<genexpr>J  s   øè ø€ ÒWÀ3Ô3°D¸±I×>ÑWùs   ƒ)rI   r@   r?   rA   z¨pyarrow is required for converting a pandas dataframe to Polars, unless each of its columns is a simple numpy-backed one (e.g. 'int64', 'bool', 'float32' - not 'Int64'))rA   Úlength)rI   r?   r@   r7  )rV  Ú_pandas_has_default_indexÚshaper3   Úempty_with_heightrh   re   r_   r7   r‘   Úto_numpyr>  r   ÚImportErrorrN  rO  r  Úpandas_series_to_arrowÚget_level_valuesrs   ÚpaÚtableÚarrow_to_pydf)rz   rI   r?   r@   r7  rA   rP  Úconvert_indexrH   r{   Ú
arrow_dictrY  ÚidxcolÚcol_idxÚcol_dataÚarrow_tables   `               rJ   Úpandas_to_pydfrj  7  s˜  ø€ ô ˜$¨mÕ<à!ÒIÔ*CÀDÓ*IÐ&I€MáØ�:‰:�a‰=˜AÒÜ×0Ñ0°·±¸A±Ó?Ð?äÓWÈ$Ï,É,ÔWÔWä—<‘<Ø;?¿<¹<ÖH°C”�S“˜4 ™9×-Ñ-Ó/Ñ/ÒHØØØ!1Ø'ô÷ ‰cðõ ð>ð 	ô
 ˜#ÓÐØ€JØ�Z‰Z˜‰]€FáØ—j‘j×&Ñ&ò 	ˆFÜ&)×&@Ñ&@ð —
‘
×+Ñ+¨FÓ3Ø'Øô'ˆJ”s˜6“{Ò#ð	ð "ŸZ™Z›\ò 
Ñˆ�Ü#&×#=Ñ#=Ø +°fô$
ˆ
”3�w“<Ò ð
ô
 —(‘(˜:Ó&€KÜØØØ)ØØôð ùòC Is   Â$F)c                óÄ  — ddl m} | j                  j                  }t	        |«      dkD  s|dgdgfvry| j                  j                   |dt	        | «      d¬«      «      ryt        | j                  j                  «      j                  d	«      xrP t        | j                  j                  «       t        j                  t	        | «      «      k(  j                  «       «      S )
zFIdentify if the pandas frame only has a default (or equivalent) index.r   )Ú
RangeIndexr]   NÚ F)ÚstartÚstopÚstepTrO   )Úpandas.core.indexes.rangerl  rN  rO  rS   Úequalsr‘   rU   Ú
startswithrÏ   Úsort_valuesrQ   Úarangerh   )rI  rl  Ú
index_colss      rJ   rZ  rZ  w  s©   € å4à—‘—‘€Jä
ˆ:ƒ˜Ò˜j°$°¸"¸°Ñ>àØ	�‰�‰™¨!´#°b³'ÀÔBÔ	Càô �2—8‘8—>‘>Ó"×-Ñ-¨eÓ4ò 
¼Ø�X‰X×!Ñ!Ó#¤r§y¡y´°R³Ó'9Ñ9×>Ñ>Ó@ó:
ð 	
rb   )r?   r@   r7  c               ó<  — t        |xs | j                  j                  |¬«      \  }}	 || j                  j                  k7  r| j                  |«      } t        | t        j                  «      r| g}n>| j                  dk(  rt        j                  | j                  «      S | j                  «       }t        j                  || j                  «      }	|r|	j                  «       }	|�t!        |	|||¬«      }	|	S # t        j
                  $ r}d}t        |«      |‚d}~ww xY w)z;Construct a PyDataFrame from an Arrow Table or RecordBatch.r¡   z4dimensions of columns arg must match data dimensionsNr   rg   )rj   rI   rO  Úrename_columnsra  ÚArrowInvalidri   rP   ÚRecordBatchÚnum_columnsr3   r\  Únum_rowsÚ
to_batchesÚfrom_arrow_record_batchesr7  ry   )
rz   rI   r?   r@   r7  r|   Úer{   Úbatchesrƒ   s
             rJ   rc  rc  ‹  s  € ô &4Ø	Ò	$�4—;‘;×$Ñ$Ð8Hô&Ñ"€LÐ"ð%Ø˜4Ÿ;™;×,Ñ,Ò,Ø×&Ñ& |Ó4ˆDô �$œŸ™Ô'Ø�&‰Ø	×	Ñ	˜QÒ	Ü×,Ñ,¨T¯]©]Ó;Ð;à—/‘/Ó#ˆô ×0Ñ0°¸$¿+¹+ÓF€DáØ�|‰|‹~ˆàÐ#Ü"ØØØ-Øô	
ˆð €Køô5 �?‰?ò %ØDˆÜ˜‹o 1Ð$ûð%ús   ª*C5 Ã5DÄDÄD)r?   rÜ   r@   rA   c               ó¬  — | j                   }t        |«      dk(  }| j                  j                  �Jd\  }}t	        | j                  j                  «      }	t        |	«      }
|	D ]  }| |   j                   }Œ |sð|	}nídg }	}|dk(  rd}
nát        |«      dk(  rd}
nÐt        |«      dk(  r |d   dk(  rt        j                  |d   «      S |€
|€|d   }
d}n–|€L|�Jt        |«      }||d   k(  r||d   k7  rd	}|d   }
no| j                  d
   r|d   |d   k(  rd	}|}
nPd}|d   }
nH|dk(  r|d   }
n=|d	k(  r|d   }
n2d|›�}t        |«      ‚|dk(  rd}t        |«      ‚d|› �}t        |«      ‚|�4t        |«      |
k7  r&t        |«      x}dk7  rd|› d|
› d�}t        |«      ‚|}
t        |||
¬«      \  }}|rVt        ||	d¬«      D ��cg c];  \  }}t        j                  || |   |j                  |«      ||¬«      j                  ‘Œ= }}}�n'|dk(  r	|
dk(  rg }�nt        |«      dk(  r;t        j                  |d   | |j                  |d   «      ||¬«      j                  g}nÐ|dk(  rht        |
«      D �cg c]S  }t        j                  ||   |r|
dk(  r
|d   dkD  r| n| dd…|f   |j                  ||   «      ||¬«      j                  ‘ŒU }}nct        |
«      D �cg c]O  }t        j                  ||   |r|
dk(  r
|d   dkD  r| n| |   |j                  ||   «      ||¬«      j                  ‘ŒQ }}t!        ||¬«      }t        |«      S c c}}w c c}w c c}w )zMConstruct a PyDataFrame from a NumPy ndarray (including structured ndarrays).r%  N)TrH   F)r   r   r]   rõ   rH   ÚF_CONTIGUOUSrú   rF   z3cannot create DataFrame from zero-dimensional arrayzJcannot create DataFrame from array with more than two dimensions; shape = zdimensions of `schema` (r™   rš   r÷   Trc   rÃ   r
  )r[  rS   rU   rO  rl   r3   r\  Úflagsri   rj   rq   r_   r8   rt   ru   r�   rw   )rz   rI   r?   rÜ   r@   rA   r[  Útwo_dÚstructured_arrayÚrecord_namesrK  rÖ   Ún_schema_colsr{   r|   Úseries_nameÚrecord_namer�   r”   s                      rJ   Únumpy_to_pydfrŠ  ·  s  € ð �J‰J€EÜ�‹J˜!‰O€Eà‡z�z×ÑÐ#Ø#.Ñ Ð˜&Ü˜DŸJ™J×,Ñ,Ó-ˆÜ˜Ó%ˆ	Øò 	#ˆBØ˜‘H—N‘N‰Eð	#áØ!‰Fð */°˜,ÐØ�DŠ=Ø‰Iä�‹Z˜1Š_Ø‰Iä�‹Z˜1Š_Ø�Q‰x˜1Š}Ü"×4Ñ4°U¸1±XÓ>Ð>àˆ~ & .à! !™H�	Ø‘à� FÐ$6ô !$ F£�Ø  E¨!¡HÒ,°À%ÈÁ(Ò1JØ"�FØ % a¡‘IØ—Z‘Z Ò/°E¸!±HÀÀaÁÒ4HØ"�FØ -‘Ià"�FØ % a¡‘Ià˜5’Ø! !™H‘	Ø˜5’Ø! !™H‘	àLÈVÈJÐW�Ü  “oÐ%à˜Š{ØK�ô ˜S“/Ð!ð cÐchÐbiÐj�Ü˜S“/Ð!àÐœc &›k¨YÒ6Ü  ›[Ð(ˆM¨QÒ.Ø,¨]¨OÐ;YÐZcÐYdÐdeÐfˆCÜ˜S“/Ð!Ø!ˆ	ä%3ØÐ!1¸iô&Ñ"€LÐ"ñ
 ô -0°¸lÐSWÔ,X÷	
ñ )�˜[ô �I‰IØ Ø˜KÑ(Ø&×*Ñ*¨;Ó7ØØ'ô÷ ‰bñð	
ˆó 	
ð 
�$Š˜9¨š>ØŠä	ˆU‹�qŠä�I‰IØ! !‘_ØØ&×*Ñ*¨<¸©?Ó;ØØ'ô÷ ‰bð
‰ð �UŠ?ô ˜yÓ)öð ô —	‘	Ø% a™ñ ! Y°!¢^¸¸a¹À1ºñ à!¢! Q $™Zà*×.Ñ.¨|¸A©Ó?Ø!Ø +ô
÷ ‘"ñ
ðˆKñ ô2 ˜yÓ)öð ô —	‘	Ø% a™á %¨)°qª.¸UÀ1¹XÈº\™ÈtÐTUÉwà*×.Ñ.¨|¸A©Ó?Ø!Ø +ô÷ ‘"ñðˆKð ô & k¸<ÔH€KÜ�{Ó#Ð#ùóm	
ùò2ùòs   ÇA MÉ0AMËAMc               óˆ  — |€|€t        | j                  g«      S | j                  g}|D �cg c]  }|j                  «       ‘Œ }}t        |xs ||d¬«      \  }}|rKt	        t        |j                  «       «      «      }|| j                  k7  r|d   j                  ||d¬«      |d<   t        ||¬«      }t        |«      S c c}w )z-Construct a PyDataFrame from a Polars Series.r]   r÷   r   Fr  r
  )
r3   ru   r€   rj   Únextr=  rn   rU   r¦   rw   )	rz   rI   r?   r@   r�   r‚   rˆ  r|   r  s	            rJ   Úseries_to_pydfr�  ?  sÍ   € ð €~Ð*Ð2Ü˜DŸG™G˜9Ó%Ð%à—7‘7�)€KØ%0Ö1 �1—6‘6•8Ð1€KÐ1Ü%3ØÒ�+Ð0@ÈQô&Ñ"€LÐ"ñ ÜœÐ.×5Ñ5Ó7Ó8Ó9ˆ	Ø˜Ÿ
™
Ò"Ø(¨™^×0Ñ0Ø &¸ð 1ó ˆK˜‰Nô & k¸<ÔH€KÜ�{Ó#Ð#ùò 2s   ¬B?rg   c               ó¼  — |€|€| j                   j                  «       S | D �ci c]  }|j                  |j                  “Œ }}t	        |xs | j
                  |¬«      \  }}|rG| j                  }|j                  «       D ](  \  }}	|	||   k7  sŒ||   j                  |	|d¬«      ||<   Œ* t        t        |j                  «       «      |¬«      }
t        |
«      S c c}w )z:Construct a PyDataFrame from an existing Polars DataFrame.r¡   Fr  r
  )r>  r�   r€   ru   rj   re   rI   rs   r¦   rw   rl   rn   r3   )rz   rI   r?   r@   rŸ   r�   r|   Úexisting_schemar€   r  Úseries_colss              rJ   Údataframe_to_pydfr‘  Z  sç   € ð €~Ð*Ð2Ø�x‰x�~‰~ÓÐà)-Ö. A�1—6‘6˜1Ÿ4™4‘<Ð.€KÐ.Ü%3ØÒ�$—,‘,Ð1Aô&Ñ"€LÐ"ñ ØŸ+™+ˆØ/×5Ñ5Ó7ò 	‰OˆD�)Ø˜O¨DÑ1Ó1Ø$/°Ñ$5×$:Ñ$:Ø f¸Uð %;ó %�˜DÒ!ð	ô &¤d¨;×+=Ñ+=Ó+?Ó&@È,ÔW€KÜ�{Ó#Ð#ùò /s   £CrE   )rz   úHMapping[str, Sequence[object] | Mapping[str, Sequence[object]] | Series]rI   r<  r?   rŽ   r@   rÏ   rA   rÏ   rB   rÏ   r�   r3   )
rI   r<  r?   rŽ   r…   ú
int | NonerM   zIterable[str] | Noner�   ztuple[list[str], SchemaDict])rz   úlist[PySeries]re   úSequence[str] | Nonerf   rÏ   r�   r”  )NN)rƒ   r3   re   r<  r®   zdict[str, Struct] | Noner?   rŽ   r@   rÏ   r�   r3   )rz   r’  r?   rŽ   r@   rÏ   r·   r•  rA   rÏ   r�   zdict[str, Series])rz   r’  rx   r=   r@   rÏ   r�   r’  )rz   úSequence[Any]rI   r<  r?   rŽ   r@   rÏ   rÜ   úOrientation | NonerÝ   r“  rA   rÏ   r�   r3   )rã   r   rz   r–  rI   r<  r?   rŽ   r@   rÏ   rÜ   r—  rÝ   r“  rA   rÏ   r�   r3   )rã   z$Sequence[Any] | np.ndarray[Any, Any]rz   r–  rI   r<  r?   rŽ   r@   rÏ   rÜ   r—  rÝ   r“  rA   rÏ   r�   r3   )rã   r8   rz   r–  rI   r<  r?   rŽ   r@   rÏ   r  r   r�   r3   )rã   ztuple[Any, ...]rz   r–  rI   r<  r?   rŽ   r@   rÏ   rÜ   r—  rÝ   r“  rA   rÏ   r�   r3   )rã   zdict[str, Any]rz   r–  rI   r<  r?   rŽ   r@   rÏ   rÝ   r“  r  r   r�   r3   )rã   r   rz   r–  rI   r<  r?   rŽ   r@   rÏ   r  r   r�   r3   )rã   únp.ndarray[Any, Any]r  r   r�   r3   )rã   z1pd.Series[Any] | pd.Index[Any] | pd.DatetimeIndexrz   r–  rI   r<  r?   rŽ   r@   rÏ   r  r   r�   r3   )rã   r   rz   r–  rI   r<  r?   rŽ   rÝ   r“  r@   rÏ   r  r   r�   r3   )
rã   r   rI   r<  r?   rŽ   r  zlist[str] | Noner�   z.tuple[bool, list[str], SchemaDict, SchemaDict])rI   r=   r5  zSequence[str]r�   z#MutableMapping[str, PolarsDataType])rz   zIterable[Any]rI   r<  r?   rŽ   r@   rÏ   rÜ   r—  r6  r“  rÝ   r“  r7  rÏ   r�   r3   )rz   úpd.DataFramerP  rÏ   r�   ÚNone)rz   r™  rI   r<  r?   rŽ   r@   rÏ   r7  rÏ   rA   rÏ   rP  rÏ   r�   r3   )rI  r™  r�   rÏ   )rz   zpa.Table | pa.RecordBatchrI   r<  r?   rŽ   r@   rÏ   r7  rÏ   r�   r3   )rz   r˜  rI   r<  r?   rŽ   rÜ   r—  r@   rÏ   rA   rÏ   r�   r3   )
rz   r8   rI   r<  r?   rŽ   r@   rÏ   r�   r3   )
rz   r7   rI   r<  r?   rŽ   r@   rÏ   r�   r3   )yÚ
__future__r   Ú
contextlibÚcollections.abcr   r   r   r   r   r	   r
   Ú	functoolsr   Ú	itertoolsr   r   Úoperatorr   Útypingr   r   Úpolars._reexportÚ	_reexportr_   Úpolars._utils.constructionÚ_utilsÚconstructionr  Úpolarsr   r¥   Úpolars._dependenciesr   r   r   r   r   r   rQ   r   rç   r   ra  Ú polars._utils.construction.utilsr   r   r   r   r   r   r    r!   Úpolars._utils.variousr"   r#   r$   r%   Úpolars.datatypesr&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Úpolars.exceptionsr0   r1   Úpolars.metar2   Úsuppressr^  Úpolars._plrr3   r4   r5   r6   r7   r8   r9   Úpolars._typingr:   r;   r<   r=   rT   r„   rj   rw   ry   rv   rÉ   rá   rà   rð   rl   rä   rå   Útuplerî   rp   r  r‘   rï   ræ   rê   rì   rí   r  rû   rL  rV  rj  rZ  rc  rŠ  r�  r‘  rF   rb   rJ   ú<module>r²     s?	  ðÝ "ã ß 8Ñ 8ß 4Ó 4Ý $ß )Ý ÷õ
 ß (Ð (Ý !÷õ õ -Ý -Ý .÷	÷ 	ó 	÷ó ÷÷ ÷ ÷ AÝ (à€Z×Ñ˜Ó%ñ (Ý'÷(ñ ßBÑBç(Ý$÷ó ð &*Ð "ð
 '+ðWð +/ØØØ $ñWØ
RðWà#ðWð (ð	Wð
 ðWð ðWð ðWð óWðz +/Ø!Ø)-ñW'Ø#ðW'ð (ðW'ð ð	W'ð
 'ðW'ð "óW'ðx %)ðð ñ	Ø
ðà!ðð ð	ð
 óð> )-Ø*.ð	/ð ñ/Ø
ð/à$ð/ð &ð/ð (ð	/ð ð/ð ó/ðj +/ØØ"&ØñSØ
RðSð (ðSð ð	Sð
  ðSð ðSð óSðt ñ	Ø
Rðàðð ð	ð
 Nóð2 '+ðð +/ØØ!%Ø&5ØñØ
ðà#ðð (ð	ð
 ðð ðð $ðð ðð óð4 ð ð ñ?$Øð?$à
ð?$ð $ð?$ð
 (ð?$ð ð?$ð ð?$ð $ð?$ð ð?$ð ò?$ó ð?$ðD ×&Ñ& tÓ,ð ñVØ7ðVà
ðVð $ðVð
 (ðVð ðVð ðVð $ðVð ðVð òVó -ðVðr$Øð$à
ð$ð $ð$ð
 (ð$ð ð$ð ð$ð ó$ð8 ×&Ñ& uÓ-ð ñ"Ø"ð"à
ð"ð $ð"ð
 (ð"ð ð"ð ð"ð $ð"ð ð"ð ò"ó .ð"ðJ ×&Ñ& wÓ/Ø×&Ñ& tÓ,ðØ!ðà
ðð $ðð
 (ðð ðð $ðð ðð òó -ó 0ðð: ×&Ñ& sÓ+ð$Øð$à
ð$ð $ð$ð (ð	$ð ð$ð ð$ð ò$ó ,ð$ð0FØ'ðFàðFð óFð$ØDð$à
ð$ð $ð$ð (ð	$ð ð$ð ð$ð ó$ðH ñ,Øð,à
ð,ð $ð,ð (ð	,ð
 $ð,ð ð,ð ð,ð ó,ð^CØðCà
ðCð $ðCð (ð	Cð
 $ðCð ðCð ðCð óCðL,DØð,Dà#ð,Dð (ð,Dð #ð	,Dð
 4ó,Dð^ØðØ+ðà(óð '+ð[ð +/ØØ!%Ø!Ø&5Øñ[Ø
ð[à#ð[ð (ð	[ð
 ð[ð ð[ð ð[ð $ð[ð ð[ð ó[ó|ð4 '+ð=ð +/ØØØØñ=Ø
ð=à#ð=ð (ð	=ð
 ð=ð ð=ð ð=ð ð=ð ó=ó@
ð, '+ð)ð +/ØØñ)Ø
#ð)à#ð)ð (ð	)ð
 ð)ð ð)ð ó)ð\ '+ðE$ð +/Ø!%ØØñE$Ø
ðE$à#ðE$ð (ð	E$ð
 ðE$ð ðE$ð ðE$ð óE$ðT '+Ø*.ð$ð
 ñ$Ø
ð$à#ð$ð (ð$ð
 ð$ð ó$ð: '+ð$ð +/Øñ$Ø
ð$à#ð$ð (ð	$ð
 ð$ð ô$÷A)(ñ (ús   Ã
M1Í1M;