Ë
    ðmxi…´  ã                  ó  — U d dl mZ d dlmZmZmZmZ d dlmZm	Z	 d dl
mZmZmZmZmZmZ d dlZd dlmZ d dl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" d d	l#m$Z$ d d
l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z6 er’d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dl=Z>d dl?Z@d dlAmBZBmCZCmDZD d dlEmFZFmGZG d dlHmIZI d dlJmKZK d dlLmMZM d dlNmOZO d dlPmQZQ d dlRmSZSmTZT d dl%mUZUmVZV d dlWmXZX d dlYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZe ede>jÌ                  f   Zgdehd<    ei ejÔ                  d«       ejÔ                  d «       ejÔ                  d!«       ejÔ                  d"«       ejÔ                  d#«       ejÔ                  d$«       ejÔ                  d%«       ejÔ                  d&«       ejÔ                  d'«       ejÔ                  d(«       ejÔ                  d)«       ejÔ                  d*«       ejÔ                  d+«       ejÔ                  d,«       ejÔ                  d-«       ejÔ                  d.«       ejÔ                  d/«       ejÔ                  d0«       ejÔ                  d1«       ejÔ                  d2«      g«      Zkd3ehd4<    G d5„ d6ed7   «      Zly)8é    )Úannotations)ÚIterableÚIteratorÚMappingÚSequence)ÚchainÚproduct)ÚTYPE_CHECKINGÚAnyÚCallableÚLiteralÚcastÚoverloadN)ÚEagerDataFrame)ÚPANDAS_TO_NUMPY_DTYPE_MISSINGÚPandasLikeSeries)
Úalign_and_extract_nativeÚget_dtype_backendÚimport_array_moduleÚiter_dtype_backendsÚnarwhals_to_native_dtypeÚnative_to_narwhals_dtypeÚobject_native_to_narwhals_dtypeÚrenameÚselect_columns_by_nameÚ	set_index)Úassert_never)	ÚImplementationÚ_into_arrow_tableÚ_remap_full_join_keysÚcheck_column_names_are_uniqueÚexclude_column_namesÚgenerate_temporary_column_nameÚparse_columns_to_dropÚscale_bytesÚ
zip_strict©Úis_pandas_like_dataframe)ÚInvalidOperationErrorÚ
ShapeError)Úcol)ÚBytesIO)ÚPath)Ú
ModuleType)ÚSelfÚ	TypeAliasÚTypeIs)ÚCompliantDataFrameAnyÚCompliantLazyFrameAny)ÚPandasLikeExpr©ÚPandasLikeGroupBy©ÚPandasLikeNamespace)ÚSparkSession)ÚIntoArrowTable)Ú_EagerAllowedImplÚ_LazyAllowedImpl)ÚVersionÚ_LimitedContext)ÚDType)ÚAsofJoinStrategyÚDTypeBackendÚ
IntoSchemaÚJoinStrategyÚPivotAggÚSizedMultiIndexSelectorÚSizedMultiNameSelectorÚSizeUnitÚUniqueKeepStrategyÚ_2DArrayÚ_SliceIndexÚ
_SliceName.r0   ÚConstructorÚfloat64Úfloat32Úint64Úint32Úint16Úint8Úuint64Úuint32Úuint16Úuint8Úboolzdatetime64[s]zdatetime64[ms]zdatetime64[us]zdatetime64[ns]ztimedelta64[s]ztimedelta64[ms]ztimedelta64[us]ztimedelta64[ns]Úobjectzfrozenset[np.dtype[Any]]ÚCLASSICAL_NUMPY_DTYPESc                  ór  — e Zd Zddœ	 	 	 	 	 	 	 	 	 	 	 d^d„Zed_d„«       Ze	 	 	 	 	 	 	 	 d`d„«       Ze	 	 	 	 	 	 	 	 dad„«       Zedbd„«       Z	edcd„«       Z
e	 	 	 	 	 	 	 	 ddd	„«       Zded
„Zded„Zdfd„Zdgd„Zdhd„Zdid„Zddœdjd„Zdkd„Zed„ «       Zdld„Zdmddœdnd„Zdod„Zdpd„Zdqd„Zdrd„Z	 	 	 	 dsd„Zdtd„Zedud„«       Zedvd „«       Z edwd!„«       Z edxd"„«       Z dxd#„Z dyd$„Z!e!Z"	 	 	 	 	 	 dzd%„Z#ed{d&„«       Z$d{d'„Z%d|d(„Z&d}d)„Z'd~d*„Z(dd+„Z)d€d,„Z*d�d-„Z+d‚d.„Z,d}d/„Z-dƒd0„Z.d„d1„Z/d…d2„Z0d†d3„Z1	 	 	 	 	 	 d‡d4„Z2	 	 	 	 	 	 dˆd5„Z3	 	 	 	 	 	 	 	 	 	 d‰d6„Z4	 	 	 	 	 	 	 	 	 	 d‰d7„Z5	 	 	 	 	 	 	 	 	 	 d‰d8„Z6dŠd9„Z7	 	 	 	 	 	 	 	 d‹d:„Z8	 	 	 	 	 	 	 	 d‹d;„Z9	 	 	 	 	 	 	 	 dŒd<„Z:	 	 	 	 	 	 	 	 	 	 	 	 d�d=„Z;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dŽd>„Z<d�d?„Z=d�d@„Z>ddAœ	 	 	 	 	 	 	 	 	 d�dB„Z?	 dmddCœ	 	 	 	 	 d‘dD„Z@ed’dE„«       ZAd“dF„ZBdmddœdndG„ZCd”dH„ZDd•dI„ZEd–dJ„ZFed—dK„«       ZGed–dL„«       ZGd˜dM„ZGd™dN„ZHdšdO„ZIdedP„ZJd›dQ„ZK	 	 	 	 	 	 	 	 dœdR„ZLed�dS„«       ZMe	 	 	 	 	 	 	 	 dždT„«       ZN	 	 	 	 	 	 	 	 	 	 dŸdU„ZO	 	 	 	 	 	 	 	 	 	 d dV„ZP	 	 	 	 	 	 	 	 	 	 d¡dW„ZQ	 	 	 	 	 	 	 	 	 	 d¢dX„ZR	 	 	 	 	 	 	 	 	 	 	 	 	 	 d£dY„ZSd¤dZ„ZT	 	 	 	 	 	 	 	 	 	 d¥d[„ZU	 	 	 	 	 	 	 	 	 	 d¦d\„ZVd§d]„ZWy)¨ÚPandasLikeDataFrameF©Úvalidate_backend_versionc               ó‚   — || _         || _        || _        |rt        |j                  «       |r| j                  «        y y ©N)Ú_native_frameÚ_implementationÚ_versionr!   ÚcolumnsÚ_validate_backend_version)ÚselfÚnative_dataframeÚimplementationÚversionÚvalidate_column_namesr]   s         úV/home/htdocs/ttos/venv/lib/python3.12/site-packages/narwhals/_pandas_like/dataframe.pyÚ__init__zPandasLikeDataFrame.__init__h   sA   € ð .ˆÔØ-ˆÔØˆŒÙ Ü)Ð*:×*BÑ*BÔCÙ#Ø×*Ñ*Õ,ð $ó    c              óš  — |j                   }t        ||«      }|j                  «       r|j                  «       }n€|j	                  «       r)|j                  «       dk\  rddlm} nddlm}  ||«      }nG|j                  «       r*|j                  «       j                  j                  |«      }nd}t        |«      ‚| j                  ||¬«      S )N)r   é   r   r   )Ú
from_arrowzCcongratulations, you entered unreachable code - please report a bug©Úcontext)ra   r   Ú	is_pandasÚ	to_pandasÚis_modinÚ_backend_versionÚmodin.pandas.ioro   Úmodin.pandas.utilsÚis_cudfÚto_native_namespaceÚ	DataFrameÚAssertionErrorÚfrom_native)ÚclsÚdatarq   rg   ÚtblÚnativeÚmpd_from_arrowÚmsgs           rj   ro   zPandasLikeDataFrame.from_arrowy   s±   € à ×0Ñ0ˆÜ  gÓ.ˆØ×#Ñ#Ô%Ø—]‘]“_‰FØ×$Ñ$Ô&ð ×.Ñ.Ó0°JÒ>ÞHõñ $ CÓ(‰FØ×#Ñ#Ô%Ø#×7Ñ7Ó9×CÑC×NÑNÈsÓS‰FàWˆCÜ  Ó%Ð%Ø�‰˜v¨wˆÓ7Ð7rl   c              ó6  — |j                   }|j                  «       }t        d|j                  «      }t        d|j                  «      }i }d }	|j                  «       D ]J  \  }
}t        ||«      r4t        j                  ||¬«      }|	€|}	|||
<   Œ3t        |	|«      d   ||
<   ŒF|||
<   ŒL |s|s|j                  |«      }n |j                  |D �ci c]  }|g “Œ c}«      }|rš|rt        |j                  |«      }nd„ t        t        |«      «      D «       }t        |j                  «       |«      D ���ci c].  \  \  }}}|�$|t!        |||j                   |j"                  ¬«      “Œ0 }}}}|j%                  |«      }| j                  ||¬«      S c c}w c c}}}w )Nztype[pd.Series[Any]]útype[pd.DataFrame]rp   é   c              3  ó    K  — | ]  }d –— Œ y ­wr_   © ©Ú.0Ú_s     rj   ú	<genexpr>z0PandasLikeDataFrame.from_dict.<locals>.<genexpr>³   ó   è ø€ Ò= QœDÑ=ùó   ‚©rg   rh   )ra   ry   r   ÚSeriesrz   ÚitemsÚ
isinstancer   r|   r   Ú	from_dictr   ÚdtypesÚrangeÚlenÚzipr   rb   Úastype)r}   r~   rq   Úschemarg   Úpdxr�   rz   Úaligned_dataÚ	left_mostÚnameÚseriesÚ	compliantr€   r+   ÚbackendsÚkeyÚdtypeÚbackendÚnative_schemas                       rj   r’   zPandasLikeDataFrame.from_dict‘   s§  € ð !×0Ñ0ˆØ×0Ñ0Ó2ˆÜÐ,¨c¯j©jÓ9ˆÜÐ-¨s¯}©}Ó=ˆ	Ø8:ˆØ-1ˆ	Ø ŸJ™J›Lò 		,‰LˆD�&Ü˜& &Ô)Ü,×8Ñ8¸ÈÔQ�	ØÐ$Ø )�IØ)/�L Ò&ä)AÀ)ÈYÓ)WÐXYÑ)Z�L Ò&à%+�˜TÒ"ð		,ñ ™vØ×(Ñ(¨Ó6‰Fà×(Ñ(¸VÖ)D°c¨#¨r©'Ò)DÓEˆFÙáÜ.¨v¯}©}¸nÓM‘á=¬%´°F³Ó*<Ô=�ô 03°6·<±<³>À8Ó/L÷	ð 	ñ ,‘\�c˜5 7ØÐ$ð Ô-ØØØ#*×#:Ñ#:Ø#×,Ñ,ô	ñ ð	ˆMò 	ð —]‘] =Ó1ˆFØ�‰˜v¨wˆÓ7Ð7ùò% *Eùô	s   Ã
FÄ43Fc              óH  — |j                   }|j                  «       }t        d|j                  «      }|s|s|j	                  |«      }n |j                  |D �ci c]  }|g “Œ c}«      }|rš|rt        |j                  |«      }	nd„ t        t        |«      «      D «       }	t        |j                  «       |	«      D �
��ci c].  \  \  }
}}|�$|
t        |||j                   |j                  ¬«      “Œ0 }}}
}|j                  |«      }| j                  ||¬«      S c c}w c c}}}
w )Nr„   c              3  ó    K  — | ]  }d –— Œ y ­wr_   r‡   rˆ   s     rj   r‹   z1PandasLikeDataFrame.from_dicts.<locals>.<genexpr>Ö   rŒ   r�   rŽ   rp   )ra   ry   r   rz   Úfrom_recordsr’   r   r“   r”   r•   r–   r�   r   rb   r—   r|   )r}   r~   rq   r˜   rg   Únsrz   r€   r+   rŸ   r    r¡   r¢   r£   s                 rj   Ú
from_dictszPandasLikeDataFrame.from_dictsÁ   s  € ð !×0Ñ0ˆØ×/Ñ/Ó1ˆÜÐ-¨r¯|©|Ó<ˆ	Ù‘vØ×+Ñ+¨DÓ1‰Fà×(Ñ(¸VÖ)D°c¨#¨r©'Ò)DÓEˆFÙáÜ.¨v¯}©}¸nÓM‘á=¬%´°F³Ó*<Ô=�ô 03°6·<±<³>À8Ó/L÷	ð 	ñ ,‘\�c˜5 7ØÐ$ð Ô-ØØØ#*×#:Ñ#:Ø#×,Ñ,ô	ñ ð	ˆMò 	ð —]‘] =Ó1ˆFØ�‰˜v¨wˆÓ7Ð7ùò% *Eùô	s   Á
DÂ=3Dc                ó   — t        | «      S r_   r'   )Úobjs    rj   Ú
_is_nativezPandasLikeDataFrame._is_nativeä   s   € ä'¨Ó,Ð,rl   c              óB   —  | ||j                   |j                  d¬«      S )NT©rg   rh   ri   )ra   rb   )r}   r~   rq   s      rj   r|   zPandasLikeDataFrame.from_nativeè   s'   € áØØ"×2Ñ2Ø×$Ñ$Ø"&ô	
ð 	
rl   c              ó†  ‡— ddl m} |j                  Š‰j                  «       j                  }t        |t        |f«      rVˆfd„|j                  «       D «       } |||j                  «       ¬«      j                   ||«      j                  |«      «      }n ||| j                  ||«      ¬«      }| j                  ||¬«      S )Nr   )ÚSchemac              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr_   )r   )r‰   Únative_typerg   s     €rj   r‹   z1PandasLikeDataFrame.from_numpy.<locals>.<genexpr>ÿ   s    øè ø€ ò *àô " +¨~×>ñ*ùs   ƒ©rc   rp   )Únarwhals.schemar¯   ra   ry   rz   r‘   r   ÚvaluesÚkeysr—   rs   Ú_numpy_column_namesr|   )	r}   r~   rq   r˜   r¯   rz   Úitr€   rg   s	           @rj   Ú
from_numpyzPandasLikeDataFrame.from_numpyñ   sª   ø€ õ 	+à ×0Ñ0ˆØ!/×!CÑ!CÓ!E×!OÑ!Oˆ	Ü�fœw¨Ð/Ô0ó*à#)§=¡=£?ô*ˆBñ ˜t¨V¯[©[«]Ô;×BÑBÙ�v“×(Ñ(¨Ó,ó‰Fñ ˜t¨S×-DÑ-DÀTÈ6Ó-RÔSˆFØ�‰˜v¨wˆÓ7Ð7rl   c                ó   — | S r_   r‡   ©re   s    rj   Ú__narwhals_dataframe__z*PandasLikeDataFrame.__narwhals_dataframe__
  ó   € Øˆrl   c                ó   — | S r_   r‡   rº   s    rj   Ú__narwhals_lazyframe__z*PandasLikeDataFrame.__narwhals_lazyframe__  r¼   rl   c                óJ   — ddl m}  || j                  | j                  ¬«      S )Nr   r7   )rh   )Únarwhals._pandas_like.namespacer8   ra   rb   )re   r8   s     rj   Ú__narwhals_namespace__z*PandasLikeDataFrame.__narwhals_namespace__  s   € ÝGá" 4×#7Ñ#7ÀÇÁÔOÐOrl   c                óò   — | j                   t        j                  t        j                  t        j                  hv r| j                   j                  «       S dt        | j                   «      › �}t        |«      ‚)Nz!Expected pandas/modin/cudf, got: )ra   r   ÚPANDASÚMODINÚCUDFry   Útyper{   ©re   r‚   s     rj   Ú__native_namespace__z(PandasLikeDataFrame.__native_namespace__  sj   € Ø×ÑÜ×!Ñ!Ü× Ñ Ü×Ñð$
ñ 
ð
 ×'Ñ'×;Ñ;Ó=Ð=à1´$°t×7KÑ7KÓ2LÐ1MÐNˆÜ˜SÓ!Ð!rl   c                ó,   — t        | j                  «      S r_   )r•   r€   rº   s    rj   Ú__len__zPandasLikeDataFrame.__len__   s   € Ü�4—;‘;ÓÐrl   c                óT   — | j                  | j                  | j                  |d¬«      S )NFr­   )Ú	__class__r€   ra   )re   rh   s     rj   Ú_with_versionz!PandasLikeDataFrame._with_version#  s.   € Ø�~‰~Ø�K‰KØ×/Ñ/ØØ"'ð	 ó 
ð 	
rl   T©ri   c               óT   — | j                  || j                  | j                  |¬«      S )Nr­   )rÌ   ra   rb   )re   Údfri   s      rj   Ú_with_nativez PandasLikeDataFrame._with_native+  s.   € Ø�~‰~ØØ×/Ñ/Ø—M‘MØ"7ð	 ó 
ð 	
rl   c                ó´  — | j                   j                  }|j                  rB|j                   } t        |«      |j                  d   ||j
                  |j                  ¬«      S t        |«      x}t        |«      x}k7  rd|› d|› d�}t        |«      ‚|j                   j                  |ur"t        |j                   ||j                  ¬«      S |j                   S )Nr   )Úindexr¡   rœ   zExpected object of length z, got: ú.)rg   )r€   rÓ   Ú
_broadcastrÆ   Úilocr¡   rœ   r•   r*   r   ra   )re   ÚotherrÓ   ÚsÚ	len_otherÚlen_idxr‚   s          rj   Ú_extract_comparandz&PandasLikeDataFrame._extract_comparand3  s·   € Ø—‘×!Ñ!ˆØ×ÒØ—‘ˆAØ”4˜“7˜1Ÿ6™6 !™9¨E¸¿¹ÀqÇvÁvÔNÐNÜ˜U›Ð#ˆI´C¸³JÐ)>¨Ò?Ø.¨w¨i°w¸y¸kÈÐKˆCÜ˜S“/Ð!Ø�<‰<×Ñ UÑ*Ü˜UŸ\™\¨5À×AVÑAVÔWÐWØ�|‰|Ðrl   c                óD   — t         rdd l}|S t        | j                  «      S ©Nr   )r
   Únumpyr   ra   )re   Únps     rj   Ú_array_funcsz PandasLikeDataFrame._array_funcs?  s   € åÛàˆIÜ" 4×#7Ñ#7Ó8Ð8rl   c                óJ   — t        j                  | j                  |   | ¬«      S ©Nrp   )r   r|   r€   )re   rœ   s     rj   Ú
get_columnzPandasLikeDataFrame.get_columnG  s   € Ü×+Ñ+¨D¯K©K¸Ñ,=ÀtÔLÐLrl   N©Úcopyc               ó(   — | j                  ||¬«      S )N©r¡   rå   )Úto_numpy)re   r¡   rå   s      rj   Ú	__array__zPandasLikeDataFrame.__array__J  s   € Ø�}‰} 5¨tˆ}Ó4Ð4rl   c                ó”   — t        |t        «      rt        |«      n|}| j                  | j                  j
                  |d d …f   «      S r_   ©r‘   ÚtupleÚlistrÑ   r€   rÖ   )re   Úrowsr�   s      rj   Ú_gatherzPandasLikeDataFrame._gatherM  s:   € Ü(¨¬uÔ5”�T”
¸4ˆØ× Ñ  §¡×!1Ñ!1°%º°(Ñ!;Ó<Ð<rl   c                ó°   — | j                  | j                  j                  t        |j                  |j
                  |j                  «      d d …f   d¬«      S ©NFrÎ   )rÑ   r€   rÖ   ÚsliceÚstartÚstopÚstep)re   rî   s     rj   Ú_gather_slicez!PandasLikeDataFrame._gather_sliceQ  sI   € Ø× Ñ Ø�K‰K×ÑœU 4§:¡:¨t¯y©y¸$¿)¹)ÓDÂaÐGÑHØ"'ð !ó 
ð 	
rl   c                ó†  — |j                   �/| j                  j                  j                  |j                   «      nd }|j                  �2| j                  j                  j                  |j                  «      dz   nd }t        |||j                  «      }| j                  | j                  j                  d d …|f   d¬«      S )Nr…   FrÎ   )	ró   r€   rc   Úget_locrô   rò   rõ   rÑ   rÖ   )re   rc   ró   rô   Úselectors        rj   Ú_select_slice_namez&PandasLikeDataFrame._select_slice_nameW  s¯   € ð �}‰}Ð(ð �K‰K×Ñ×'Ñ'¨¯©Ô6àð 	ð �|‰|Ð'ð �K‰K×Ñ×'Ñ'¨¯©Ó5¸Ò9àð 	ô
 ˜  g§l¡lÓ3ˆØ× Ñ Ø�K‰K×ÑšQ ˜[Ñ)Àð !ó 
ð 	
rl   c                ó^   — | j                  | j                  j                  d d …|f   d¬«      S rñ   ©rÑ   r€   rÖ   ©re   rc   s     rj   Ú_select_slice_indexz'PandasLikeDataFrame._select_slice_indexg  s2   € Ø× Ñ Ø�K‰K×ÑšQ ˜ZÑ(Àð !ó 
ð 	
rl   c                ó˜   — t        |t        «      rt        |«      n|}| j                  | j                  j
                  d d …|f   d¬«      S rñ   rë   rý   s     rj   Ú_select_multi_indexz'PandasLikeDataFrame._select_multi_indexl  sH   € ô $.¨g´uÔ#=”$�w”-À7ˆØ× Ñ Ø�K‰K×ÑšQ ˜ZÑ(Àð !ó 
ð 	
rl   c                óZ   — | j                  | j                  j                  d d …|f   «      S r_   )rÑ   r€   Úlocrý   s     rj   Ú_select_multi_namez&PandasLikeDataFrame._select_multi_namet  s$   € Ø× Ñ  §¡§¡²°G°Ñ!<Ó=Ð=rl   c                óJ   — | j                   j                  j                  «       S r_   )r€   rc   Útolistrº   s    rj   rc   zPandasLikeDataFrame.columnsx  s   € à�{‰{×"Ñ"×)Ñ)Ó+Ð+rl   c                ó   — y r_   r‡   ©re   Únameds     rj   rî   zPandasLikeDataFrame.rows|  s   € ØEHrl   c                ó   — y r_   r‡   r  s     rj   rî   zPandasLikeDataFrame.rows  s   € ØGJrl   c                ó   — y r_   r‡   r  s     rj   rî   zPandasLikeDataFrame.rows‚  s   € ØTWrl   c               ó:  — |sy| j                   t        j                  u r7| j                  d¬«      D �cg c]  }t	        |j                  «       «      ‘Œ c}S t        | j                  j                  dd ¬«      «      S | j                  j                  d¬«      S c c}w )NT)r  F©rÓ   rœ   Úrecords©Úorient)
ra   r   rÅ   rî   rì   r´   rí   r€   Ú
itertuplesÚto_dict)re   r  Úrows      rj   rî   zPandasLikeDataFrame.rows…  s}   € Ùà×#Ñ#¤~×':Ñ':Ñ:à7;·y±yÀt°yÓ7LÖM°œ˜cŸj™j›lÕ+ÒMÐMä˜Ÿ™×.Ñ.°UÀÐ.ÓFÓGÐGà�{‰{×"Ñ"¨)Ð"Ó4Ð4ùò	 Ns   ³ Bc              #  ó‚   K  — | j                   j                  «       D ]  \  }}t        j                  || ¬«      –— Œ  y ­wrâ   )r€   r�   r   r|   )re   Ú_namer�   s      rj   Úiter_columnsz PandasLikeDataFrame.iter_columns�  s;   è ø€ Ø!Ÿ[™[×.Ñ.Ó0ò 	E‰MˆE�6Ü"×.Ñ.¨v¸tÔDÓDñ	Eùs   ‚=?c             #  óü   K  — |s&| j                   j                  dd ¬«      E d {  –—†  y | j                   j                  }| j                   j                  d¬«      D ]  }t        t	        ||«      «      –— Œ y 7 ŒT­w)NFr  ©rÓ   )r€   r  rc   Údictr–   )re   r  Úbuffer_sizeÚ	col_namesr  s        rj   Ú	iter_rowszPandasLikeDataFrame.iter_rows–  sp   è ø€ ñ
 Ø—{‘{×-Ñ-°EÀÐ-ÓE×EÑEàŸ™×+Ñ+ˆIØ—{‘{×-Ñ-°EÐ-Ó:ò 0�Üœ3˜y¨#Ó.Ó/Ó/ñ0ð Fús   ‚#A<¥A:¦AA<c           	     ó2  — | j                   j                  }| j                   j                  D �ci c]]  }|||   dk7  r$t        ||   | j                  | j
                  «      n-t        | j                   |   | j                  | j
                  «      “Œ_ c}S c c}w )NrX   )r€   r“   rc   r   rb   ra   r   )re   Únative_dtypesr+   s      rj   r˜   zPandasLikeDataFrame.schema¢  s—   € àŸ™×*Ñ*ˆð —{‘{×*Ñ*ö	
ð ð ð ˜SÑ! XÒ-ô *Ø˜cÑ" D§M¡M°4×3GÑ3Gôô 1Ø—‘˜CÑ  $§-¡-°×1EÑ1Eóñ	ò	
ð 		
ùò 	
s   ¯A"Bc                ó   — | j                   S r_   )r˜   rº   s    rj   Úcollect_schemaz"PandasLikeDataFrame.collect_schema°  s   € Ø�{‰{Ðrl   c                óx   — | j                  t        | j                  t        |«      | j                  «      d¬«      S rñ   )rÑ   r   r€   rí   ra   )re   Úcolumn_namess     rj   Úsimple_selectz!PandasLikeDataFrame.simple_select´  s8   € Ø× Ñ Ü" 4§;¡;´°\Ó0BÀD×DXÑDXÓYØ"'ð !ó 
ð 	
rl   c                óž  —  | j                   |Ž }|s+| j                   t        | j                  «      «       d¬«      S  |d   j                  |Ž }| j                  «       }|j                  |D �cg c]  }|j                  ‘Œ c}«      }| j                  j                  j                  |j                  _        | j                  |d¬«      S c c}w )NFrÎ   r   T)	Ú_evaluate_exprsrÑ   rÆ   r€   Ú_align_full_broadcastrÁ   Ú_concat_horizontalrc   rœ   )re   ÚexprsÚ
new_seriesÚ	namespacerØ   rÐ   s         rj   ÚselectzPandasLikeDataFrame.selectº  s·   € Ø)�T×)Ñ)¨5Ð1ˆ
Ùà×$Ñ$Ð%6¤T¨$¯+©+Ó%6Ó%8ÐPUÐ$ÓVÐVØ8�Z ‘]×8Ñ8¸*ÐEˆ
Ø×/Ñ/Ó1ˆ	Ø×)Ñ)¸ZÖ*H¸¨1¯8«8Ò*HÓIˆàŸ+™+×-Ñ-×2Ñ2ˆ�
‰
ŒØ× Ñ  ¸4Ð Ó@Ð@ùò +Is   Á.C
c                ó   — |€-| j                  | j                  j                  d¬«      d¬«      S | j                  «       }|j	                   |j
                  |Ž j                  «       d¬«       }| j                  |«      S )Nr   ©ÚaxisFrÎ   T)Úignore_nulls)rÑ   r€   ÚdropnarÁ   Úany_horizontalr+   Úis_nullÚfilter)re   ÚsubsetÚplxÚmasks       rj   Ú
drop_nullszPandasLikeDataFrame.drop_nullsÆ  s�   € Øˆ>Ø×$Ñ$Ø—‘×"Ñ"¨Ð"Ó*À%ð %ó ð ð ×)Ñ)Ó+ˆØ×"Ñ" 7 3§7¡7¨FÐ#3×#;Ñ#;Ó#=ÈDÐ"ÓQÐQˆØ�{‰{˜4Ó Ð rl   c                óp   — | j                   j                  d¬«      j                  «       }t        ||¬«      S )NT)Údeep)Úunit)r€   Úmemory_usageÚsumr%   )re   r9  Úszs      rj   Úestimated_sizez"PandasLikeDataFrame.estimated_sizeÏ  s/   € Ø�[‰[×%Ñ%¨4Ð%Ó0×4Ñ4Ó6ˆÜ˜2 DÔ)Ð)rl   c                ó<  — | j                  «       }|€q| j                  j                  t        | «      «      }|j                  j                  |j                  j                  || | j                  j                  |¬«      «      }nzt        dt        |d   «      j                  d¬«      j                  |«      «      }|j                  g |¬«      |j                  dd «      j!                  «       z
  j#                  |«      }| j%                  ||j'                  «       «      S )N)rq   rÓ   rœ   r4   r   Úordinal)Úmethod)Úpartition_byÚorder_byr…   )rÁ   rà   Úaranger•   Ú_exprÚ_from_seriesÚ_seriesÚfrom_iterabler€   rÓ   r   Únw_colÚrankÚ_to_compliant_exprÚoverÚlitÚ	broadcastÚaliasr*  Úall)re   rœ   rB  r4  r~   Ú	row_indexrI  s          rj   Úwith_row_indexz"PandasLikeDataFrame.with_row_indexÓ  s÷   € Ø×)Ñ)Ó+ˆØÐØ×$Ñ$×+Ñ+¬C°«IÓ6ˆDØŸ	™	×.Ñ.Ø—‘×)Ñ)Ø $¨d¯k©k×.?Ñ.?Àdð *ó ó‰Iô Ø Ü�x ‘{Ó#×(Ñ(°	Ð(Ó:×MÑMÈcÓRóˆDð
 —	‘	 r°H�	Ó=Ø—'‘'˜!˜TÓ"×,Ñ,Ó.ñ/ç‰e�D‹kð ð �{‰{˜9 c§g¡g£iÓ0Ð0rl   c                óT   — t        d„ | j                  j                  |   D «       «      S )Nc              3  ó    K  — | ]  }|–— Œ y ­wr_   r‡   )r‰   Úxs     rj   r‹   z*PandasLikeDataFrame.row.<locals>.<genexpr>è  s   è ø€ Ò8˜1”QÑ8ùr�   )rì   r€   rÖ   )re   rÓ   s     rj   r  zPandasLikeDataFrame.rowç  s"   € ÜÑ8 §¡× 0Ñ 0°Ñ 7Ô8Ó8Ð8rl   c                óš   — | j                  |«      }| j                  |«      }| j                  | j                  j                  |   d¬«      S rñ   )Ú_evaluate_single_output_exprrÛ   rÑ   r€   r  )re   Ú	predicater5  Úmask_natives       rj   r2  zPandasLikeDataFrame.filterê  sL   € Ø×0Ñ0°Ó;ˆØ×-Ñ-¨dÓ3ˆØ× Ñ Ø�K‰K�O‰O˜KÑ(Àð !ó 
ð 	
rl   c                ó^  ‡ —  ‰ j                   |Ž }|st        ‰ «      dk(  r‰ S |D �ci c]  }|j                  |“Œ }}g }‰ j                  j                  D ]G  }||v r!‰ j                  |j                  |«      «      }n‰ j                  |   }|j                  |«       ŒI |j                  ˆ fd„|j                  «       D «       «       ‰ j                  «       }|j                  |«      }	‰ j                  j                  j                  |	j                  _        ‰ j                  |	d¬«      S c c}w )Nr   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr_   )rÛ   )r‰   rØ   re   s     €rj   r‹   z3PandasLikeDataFrame.with_columns.<locals>.<genexpr>þ  s   øè ø€ ÒS¸˜×0Ñ0°×3ÑSùs   ƒFrÎ   )r$  r•   rœ   r€   rc   rÛ   ÚpopÚappendÚextendr´   rÁ   r&  rÑ   )
re   r'  rc   rØ   Úname_columnsÚ	to_concatrœ   r�   r)  rÐ   s
   `         rj   Úwith_columnsz PandasLikeDataFrame.with_columnsñ  s  ø€ Ø&�$×&Ñ&¨Ð.ˆÙœ3˜t›9¨š>ØˆKØHOÖ4PÀ1°Q·V±V¸Q±YÐ4PˆÐ4PØˆ	à—K‘K×'Ñ'ò 	%ˆDØ�|Ñ#Ø×0Ñ0°×1AÑ1AÀ$Ó1GÓH‘àŸ™ TÑ*�Ø×Ñ˜VÕ$ð	%ð 	×ÑÓS¸\×=PÑ=PÓ=RÔSÔSØ×/Ñ/Ó1ˆ	Ø×)Ñ)¨)Ó4ˆàŸ+™+×-Ñ-×2Ñ2ˆ�
‰
ŒØ× Ñ  ¸5Ð ÓAÐAùò 5Qs   §D*c                ód   — | j                  t        | j                  || j                  ¬«      «      S )N©rc   rg   )rÑ   r   r€   ra   )re   Úmappings     rj   r   zPandasLikeDataFrame.rename  s+   € Ø× Ñ Ü�4—;‘;¨À×@TÑ@TÔUó
ð 	
rl   c               óx   — t        | ||¬«      }| j                  | j                  j                  |¬«      d¬«      S )N)Ústrictr²   FrÎ   )r$   rÑ   r€   Údrop)re   rc   re  Úto_drops       rj   rf  zPandasLikeDataFrame.drop
  s?   € Ü'¨¨g¸fÔEˆØ× Ñ Ø�K‰K×Ñ WÐÓ-ÀUð !ó 
ð 	
rl   c               óÔ   — | j                   }t        |t        «      r| }n|D �cg c]  }| ‘Œ }}|rdnd}| j                  |j	                  t        |«      ||¬«      d¬«      S c c}w )NÚlastÚfirst)Ú	ascendingÚna_positionFrÎ   )r€   r‘   rW   rÑ   Úsort_valuesrí   )re   Ú
descendingÚ
nulls_lastÚbyrÐ   rk  Údrl  s           rj   ÚsortzPandasLikeDataFrame.sort  sp   € Ø�[‰[ˆÜ�j¤$Ô'Ø/9¨>‰Ià(2Ö3 1˜QšÐ3ˆIÐ3Ù *‘f°ˆØ× Ñ Ø�N‰Nœ4 ›8¨yÀkˆNÓRØ"'ð !ó 
ð 	
ùò 4s   ¥
A%c               ó|  ‡— | j                   }| j                  Št        |t        «      rXt	        ˆfd„|D «       «      rD|r!| j                  |j                  ||«      «      S | j                  |j                  ||«      «      S | j                  |j                  t        |«      |¬«      j                  |«      d¬«      S )Nc              3  óD   •K  — | ]  }‰|   j                  «       –— Œ y ­wr_   )Ú
is_numeric)r‰   rT  r˜   s     €rj   r‹   z,PandasLikeDataFrame.top_k.<locals>.<genexpr>   s   øè ø€ Ò,PÈ¨V°A©Y×-AÑ-A×-CÑ,Pùs   ƒ )rk  FrÎ   )r€   r˜   r‘   rW   rO  rÑ   Ú	nsmallestÚnlargestrm  rí   Úhead)re   Úkrp  ÚreverserÐ   r˜   s        @rj   Útop_kzPandasLikeDataFrame.top_k  s¡   ø€ Ø�[‰[ˆØ—‘ˆÜ�gœtÔ$¬Ó,PÈRÔ,PÔ)PÙØ×(Ñ(¨¯©°a¸Ó)<Ó=Ð=Ø×$Ñ$ R§[¡[°°BÓ%7Ó8Ð8Ø× Ñ Ø�N‰Nœ4 ›8¨wˆNÓ7×<Ñ<¸QÓ?Ø"'ð !ó 
ð 	
rl   c                óB  — |€-t        | j                  | j                  | j                  d¬«      S |t        j
                  u rXt        j
                  | j                  ddœ}|| j                  ur|j                  d¬«       t        | j                  «       fi |¤ŽS |t        j                  u r*ddl	m
}  || j                  «       d| j                  d¬«      S |t        j                  u r)ddlm}  || j                  «       d| j                  ¬	«      S d
|› �}t!        |«      ‚)NFr­   Tr\   r   )ÚArrowDataFrame)rf   r]   rh   ri   )ÚPolarsDataFrame©rÐ   r]   rh   zUnsupported `backend` value: )r[   r€   ra   rb   r   rÃ   Úupdaters   ÚPYARROWÚnarwhals._arrow.dataframer}  Úto_arrowÚPOLARSÚnarwhals._polars.dataframer~  Ú	to_polarsÚ
ValueError)re   r¢   ÚkwargsÚkwdsr}  r~  r‚   s          rj   ÚcollectzPandasLikeDataFrame.collect*  s  € ð ˆ?Ü&Ø—‘Ø#×3Ñ3ØŸ™Ø&+ô	ð ð ”n×+Ñ+Ñ+ä"0×"7Ñ"7ØŸ=™=Ø).ñ$ˆDð
 ˜d×2Ñ2Ñ2Ø—‘°T�Ô:Ü& t§~¡~Ó'7Ñ@¸4Ñ@Ð@à”n×,Ñ,Ñ,Ý@á!Ø!%§¡£Ø)-ØŸ™Ø&+ô	ð ð ”n×+Ñ+Ñ+ÝBá"Ø—>‘>Ó#¸dÈDÏMÉMôð ð .¨g¨YÐ7ˆÜ˜‹oÐrl   c               ó$   — ddl m}  || ||¬«      S )Nr   r5   )Údrop_null_keys)Únarwhals._pandas_like.group_byr6   )re   rµ   rŒ  r6   s       rj   Úgroup_byzPandasLikeDataFrame.group_byT  s   € õ 	Eá   t¸NÔKÐKrl   c               ó|   — | j                   j                  |d¬«      j                  |j                   ||dd|f¬«      S )NÚany©r3  ÚhowÚinnerÚ ©Úleft_onÚright_onr’  Úsuffixes)r€   r/  Úmerge)re   r×   r–  r—  Úsuffixs        rj   Ú_join_innerzPandasLikeDataFrame._join_inner[  sH   € ð �{‰{×!Ñ!¨°eÐ!Ó<×BÑBØ�L‰LØØØØ˜&�\ð Có 
ð 	
rl   c               ó   — | j                   j                  |j                   j                  |d¬«      d||d|f¬«      }t        ||«      D ��cg c]   \  }}||k7  r|| j                  vr|n|› |› �‘Œ" }}}|j                  |d¬«       |S c c}}w )Nr�  r‘  Úleftr”  ©r’  r–  r—  r˜  T©rc   Úinplace)r€   r™  r/  r&   rc   rf  )	re   r×   r–  r—  rš  Úresult_nativeÚleft_keyÚ	right_keyÚextras	            rj   Ú
_join_leftzPandasLikeDataFrame._join_leftf  s¯   € ð Ÿ™×)Ñ)Ø�L‰L×Ñ x°UÐÓ;ØØØØ˜&�\ð *ó 
ˆô (2°'¸8Ó'D÷
á#�˜)Ø˜HÒ$ð #¨$¯,©,Ñ6‰I¸y¸kÈ&ÈÐ<RÑRð
ˆñ 
ð 	×Ñ 5°$ÐÔ7ØÐùó
s   Á%B
c               óÈ  — | j                  «       }| j                  }t        |||«      }|j                  j                  |¬«      }t	        |j
                  «       t        |j                  «       «      }	|t        |«         j                  «       j                  d¬«      }
||	   j                  «       j                  d¬«      }t        |j
                  «      j                  | j
                  «      j                  |«      }||   j                  |D �ci c]	  }||› |› �“Œ c}¬«      }||
    j                  ||    ||	dd|f¬«      }|j                  |||
   |g«      S c c}w )Nr²   r…   r,  Úouterr”  r•  )rÁ   r€   r    r   r!   rc   rí   r´   Úisnar�  ÚsetÚintersectionÚ
differencer™  Ú_concat_diagonal)re   r×   r–  r—  rš  r§   Úself_nativeÚright_on_mapperÚother_nativeÚright_suffixedÚleft_null_maskÚright_null_maskÚ	to_renamer+   Úright_null_rowsÚjoin_results                   rj   Ú
_join_fullzPandasLikeDataFrame._join_fullz  sj  € ð ×(Ñ(Ó*ˆØ—k‘kˆÜ/°¸À6ÓJˆØ—|‘|×*Ñ*°?Ð*ÓCˆÜ% l×&:Ñ&:Ô;Ü˜o×4Ñ4Ó6Ó7ˆà$¤T¨'£]Ñ3×8Ñ8Ó:×>Ñ>ÀAÐ>ÓFˆØ& ~Ñ6×;Ñ;Ó=×AÑAÀqÐAÓIˆô ˜Ÿ™Ó&×3Ñ3°D·L±LÓA×LÑLÈXÓVˆ	Ø& Ñ7×>Ñ>Ø6?Ö@¨s�S˜S˜E & Ð*Ñ*Ò@ð ?ó 
ˆð " > /Ñ2×8Ñ8Ø˜/Ð)Ñ*ØØ#ØØ˜&�\ð 9ó 
ˆð ×"Ñ"Ø˜+ nÑ5°ÐGó
ð 	
ùò As   ÄEc               ó  — | j                   }| j                  }|j                  «       s%|j                  «       s|j	                  «       r�|dk  r‹t        dg | j                  ¢|j                  ¢­¬«      } | j                  j                  di |di¤Žj                   |j                  j                  di |di¤Žd||d|f¬«      }|j                  |d¬	«       |S | j                  j                  |j                  d
d|f¬«      S )N)r…   é   é   ©Ún_bytesrc   r   r“  r”  rž  TrŸ  Úcross)r’  r˜  r‡   )ra   ru   rt   rx   rr   r#   rc   r€   Úassignr™  rf  )re   r×   rš  rg   Úbackend_versionÚ	key_tokenr¡  s          rj   Ú_join_crosszPandasLikeDataFrame._join_crossš  sþ   € Ø×-Ñ-ˆØ×/Ñ/ˆØ×#Ñ#Ô%¨×)?Ñ)?Ô)AØ×$Ñ$Ô&¨?¸VÒ+Cä6ØÐ#B T§\¡\Ð#B°E·M±MÑ#BôˆIð /˜DŸK™K×.Ñ.Ñ@°)¸Q°Ñ@×FÑFØ#�—‘×#Ñ#Ñ5 y°! nÑ5ØØ!Ø"Ø˜f˜ð Gó ˆMð ×Ñ y¸$ÐÔ?Ø Ð Ø�{‰{× Ñ  §¡°7ÀbÈ&À\Ð ÓRÐRrl   c          
     óÂ   — | j                  |t        |«      t        t        ||«      «      ¬«      }| j                  j                  |d¬«      j                  |d||¬«      S )N©r×   Úcolumns_to_selectÚcolumns_mappingr�  r‘  r“  ©r’  r–  r—  )Ú_join_filter_renamerí   r  r–   r€   r/  r™  )re   r×   r–  r—  r¯  s        rj   Ú
_join_semizPandasLikeDataFrame._join_semi°  sj   € ð ×/Ñ/ØÜ" 8›nÜ ¤ X¨wÓ!7Ó8ð 0ó 
ˆð
 �{‰{×!Ñ!¨°eÐ!Ó<×BÑBØ˜g¨wÀð Có 
ð 	
rl   c          
     ó,  ‡— | j                   }|j                  «       r:| j                  j                  |j                  j	                  |d¬«      d||¬«      S t        dg | j                  ¢|j                  ¢­¬«      Š| j                  |t        |«      t        t        ||«      «      ¬«      }| j                  j                  |j	                  |d¬«      |j                  «       rdnd	‰||¬
«      j                  ˆfd„   }|j                  ‰d¬«       |S )Nr�  r‘  ÚleftantirÅ  r¹  rº  rÂ  r�  r§  )r’  Ú	indicatorr–  r—  c                ó   •— | ‰   dk(  S )NÚ	left_onlyr‡   )ÚtÚindicator_tokens    €rj   ú<lambda>z0PandasLikeDataFrame._join_anti.<locals>.<lambda>Ù  s   ø€ ˜˜/Ñ*¨kÑ9€ rl   TrŸ  )ra   rx   r€   r™  r/  r#   rc   rÆ  rí   r  r–   rr   r  rf  )re   r×   r–  r—  rg   r¯  r¡  rÎ  s          @rj   Ú
_join_antizPandasLikeDataFrame._join_anti¼  s  ø€ ð ×-Ñ-ˆà×!Ñ!Ô#Ø—;‘;×$Ñ$Ø—‘×#Ñ#¨7¸Ð#Ó>ØØØ!ð	 %ó ð ô 9ØÐ> §¡Ð>°·±Ñ>ô
ˆð ×/Ñ/ØÜ" 8›nÜ ¤ X¨wÓ!7Ó8ð 0ó 
ˆð
 Ÿ™×)Ñ)Ø×Ñ w°EÐÓ:à(×2Ñ2Ô4‘¸'Ø%ØØð *ó 
÷ ‰#Ó9ñ;ˆð 	×Ñ ?¸DÐÔAØÐrl   c                ó~   — | j                   }t        t        |j                  ||¬«      ||¬«      j	                  «       S )z®Helper function to avoid creating extra columns and row duplication.

        Used in `"anti"` and `"semi`" join's.

        Notice that a native object is returned.
        )r!  rg   rb  )ra   r   r   r€   Údrop_duplicates)re   r×   rÃ  rÄ  rg   s        rj   rÆ  z'PandasLikeDataFrame._join_filter_renameß  sC   € ð ×-Ñ-ˆÜÜ"Ø—‘Ø.Ø-ôð
 $Ø)ô
÷ ‰/Ó
ð	rl   c               ó–  — |dk(  r| j                  ||¬«      }n |�|€t        ||«      ‚|dk(  r| j                  ||||¬«      }nu|dk(  r| j                  |||¬«      }n[|dk(  r| j	                  |||¬«      }nA|dk(  r| j                  ||||¬«      }n&|d	k(  r| j                  ||||¬«      }nt        |«       | j                  «      S )
Nr¼  )r×   rš  r“  )r×   r–  r—  rš  Úanti)r×   r–  r—  Úsemir�  Úfull)	rÀ  r‡  r›  rÐ  rÇ  r¥  r¶  r   rÑ   )re   r×   r’  r–  r—  rš  Úresults          rj   ÚjoinzPandasLikeDataFrame.joinó  s÷   € ð �'Š>Ø×%Ñ%¨E¸&Ð%ÓA‰Fàˆ_ Ð 0Ü˜W hÓ/Ð/à�GŠ^Ø×%Ñ%Ø W°xÈð &ó ‰Fð �FŠ]Ø—_‘_¨5¸'ÈH�_ÓU‰FØ�FŠ]Ø—_‘_¨5¸'ÈH�_ÓU‰FØ�FŠ]Ø—_‘_Ø W°xÈð %ó ‰Fð �FŠ]Ø—_‘_Ø W°xÈð %ó ‰Fô ˜Ôà× Ñ  Ó(Ð(rl   c               óž   — | j                  «       }| j                  |j                  | j                  |j                  |||||d|f¬«      «      S )Nr”  )r–  r—  Úleft_byÚright_byÚ	directionr˜  )rÈ   rÑ   Ú
merge_asofr€   )	re   r×   r–  r—  Úby_leftÚby_rightÚstrategyrš  r4  s	            rj   Ú	join_asofzPandasLikeDataFrame.join_asof  sZ   € ð ×'Ñ'Ó)ˆØ× Ñ Ø�N‰NØ—‘Ø—‘ØØ!ØØ!Ø"Ø˜f˜ð ó 	ó
ð 	
rl   c                óZ   — | j                  | j                  j                  |«      d¬«      S rñ   )rÑ   r€   rx  ©re   Úns     rj   rx  zPandasLikeDataFrame.head2  ó'   € Ø× Ñ  §¡×!1Ñ!1°!Ó!4ÈEÐ ÓRÐRrl   c                óZ   — | j                  | j                  j                  |«      d¬«      S rñ   )rÑ   r€   Útailrã  s     rj   rç  zPandasLikeDataFrame.tail5  rå  rl   )Úmaintain_orderc               óh  — dddœj                  ||«      }|r| j                  |«      x}r|‚|rˆ|r†t        d| j                  «      } | j	                  |d ¬«      j
                  |dddœŽj                  j                  |xs | j                  |¬«      j                  |«      }|j                  |d¬	«       nj|r= | j
                  |dddœŽj                  j                  |xs | j                  |¬«      }n+| j                  j                  |xs | j                  |¬«      }| j                  |d¬
«      S )NFrj  )Únoner�  r¹  )rB  )ro  rn  ©ÚkeepTrŸ  rÎ   )ÚgetÚ_check_columns_existr#   rc   rQ  rr  r€   rÒ  rm  rf  rÑ   )	re   r3  rì  rè  rB  Úmapped_keepÚerrorÚtokenÚress	            rj   ÚuniquezPandasLikeDataFrame.unique8  s#  € ð  %¨WÑ5×9Ñ9¸$ÀÓEˆÙ × 9Ñ 9¸&Ó AÐA�uÐAØˆKÙ™Ü2°1°d·l±lÓCˆEð�×#Ñ# E°DÐ#Ó9ß‘�x¨E¸eòEç‘Ÿ™¨Ò(>°$·,±,À[˜ÓQß‘˜UÓ#ð	 ð �H‰H˜U¨DˆHÕ1ÙØ�$—)‘)Ø e¸òç‰f—_‘_ VÒ%;¨t¯|©|À+�_ÓNñ ð —+‘+×-Ñ-¨fÒ.D¸¿¹È;Ð-ÓWˆCØ× Ñ  ¸EÐ ÓBÐBrl   )Úsessionc               ó  — | j                  «       }|€| S |t        j                  u r.dd l}ddlm}  ||j                  d«      d| j                  ¬«      S |t        j                  u r=dd l	}ddl
m}  | |j                  |«      j                  «       d| j                  ¬«      S |t        j                  u r0dd lm} ddlm}	  |	|j                  |«      d| j                  ¬«      S |t        j&                  u r:dd l}
dd	lm}  ||
j/                  || j0                  ¬
«      d| j                  ¬«      S |j3                  «       r:ddlm} |€d}t9        |«      ‚ ||j;                  |«      | j                  |d¬«      S t<        ‚)Nr   )ÚDuckDBLazyFrameÚ	pandas_dfTr  )ÚPolarsLazyFrame)ÚDaskLazyFrame)rf   r]   rh   )ÚIbisLazyFramer²   )r]   rh   )ÚSparkLikeLazyFramez5Spark like backends require `session` to be not None.)rh   rg   r]   )rs   r   ÚDUCKDBÚduckdbÚnarwhals._duckdb.dataframerö  Útablerb   r„  Úpolarsr…  rø  Úfrom_pandasÚlazyÚDASKÚdask.dataframeÚ	dataframeÚnarwhals._dask.dataframerù  ÚIBISÚibisÚnarwhals._ibis.dataframerú  Úmemtablerc   Úis_spark_likeÚnarwhals._spark_like.dataframerû  r‡  ÚcreateDataFramer{   )re   r¢   rô  r÷  rý  rö  Úplrø  Úddrù  r  rú  rû  r‚   s                 rj   r  zPandasLikeDataFrame.lazyW  sd  € ð —N‘NÓ$ˆ	Øˆ?ØˆKØ”n×+Ñ+Ñ+ÛåBá"Ø—<‘< Ó,Ø)-ØŸ™ôð ð
 ”n×+Ñ+Ñ+ÛåBá"Ø!�2—>‘> )Ó,×1Ñ1Ó3Ø)-ØŸ™ôð ð
 ”n×)Ñ)Ñ)Ý'å>á Ø!#§¡°	Ó!:Ø)-ØŸ™ôð ð
 ”n×)Ñ)Ñ)Ûå>á Ø—‘˜i°·±�Ó>Ø)-ØŸ™ôð ð × Ñ Ô"ÝIàˆØM�Ü  “oÐ%á%Ø×'Ñ'¨	Ó2ØŸ™Ø&Ø)-ô	ð ô Ðrl   c                ó.   — | j                   j                  S r_   )r€   Úshaperº   s    rj   r  zPandasLikeDataFrame.shape™  s   € à�{‰{× Ñ Ð rl   c               óÂ   — |r=| j                   D �ci c]'  }|t        j                  | j                  |   | ¬«      “Œ) c}S | j                  j	                  d¬«      S c c}w )Nrp   rí   r  )rc   r   r|   r€   r  )re   Ú	as_seriesr+   s      rj   r  zPandasLikeDataFrame.to_dict�  sa   € Ùð  Ÿ<™<öàð Ô%×1Ñ1°$·+±+¸cÑ2BÈDÔQÑQòð ð �{‰{×"Ñ"¨&Ð"Ó1Ð1ùò	s   ‘,Ac          
     ó   — | j                   j                  }|€| j                  t        j                  u }|j                  t        «      j                  «       r;|�| j                   j                  ||¬«      S | j                   j                  |¬«      S | j                  j                  j                  }| j                  j                  «       D ��cg c]  \  }}t        ||«      r|j                  �|‘Œ! }}}|ri| j                   | j!                  «       j"                  |Ž j$                  j'                  d«      j$                  j)                  d «      «      j                   }n| j                   }|�|j                  ||¬«      S |D ]k  }	t+        |	«      t,        v sŒt/        j0                  | j2                  D �
cg c]+  }
| j5                  |
«      j                  |d ¬«      d d …d f   ‘Œ- c}
«      }|c S  |j                  |¬«      S c c}}w c c}
w )Nrç   rä   ÚUTC)rå   r¡   )r€   r“   ra   r   rÅ   ÚisinrY   rO  rè   rb   ÚDatetimer˜   r�   r‘   Ú	time_zoner`  rÁ   r+   ÚdtÚconvert_time_zoneÚreplace_time_zoneÚstrr   rß   Úhstackrc   rã   )re   r¡   rå   r  Údtype_datetimer    ÚvalÚ
to_convertrÐ   Ú	col_dtyper+   Úarrs               rj   rè   zPandasLikeDataFrame.to_numpy¥  sâ  € ØŸ™×*Ñ*ˆàˆ<à×'Ñ'¬>×+>Ñ+>Ð>ˆDà×ÑÔ4Ó5×9Ñ9Ô;àÐ Ø—{‘{×+Ñ+°%¸dÐ+ÓCÐCØ—;‘;×'Ñ'¨TÐ'Ó2Ð2àŸ™×-Ñ-×6Ñ6ˆð !ŸK™K×-Ñ-Ó/÷
á��SÜ˜#˜~Ô.°3·=±=Ð3Lò ð
ˆ
ñ 
ñ
 Ø×"Ñ"ð�×+Ñ+Ó-ß‘�jð"ç‘×%Ñ% eÓ,ß‘×%Ñ% dÓ+ó	÷
 ‰fñ ð —‘ˆBàÐØ—;‘; U°�;Ó6Ð6ð 'ò 	ˆIÜ�9‹~Ô!>Ò>ÜŸ9™9ð $(§<¡<öàð Ÿ™¨Ó,×5Ñ5¸4ÀtÐ5ÓLÊQÐPTÈWÓUòó�ð ’
ð	ð �{‰{ ˆ{Ó%Ð%ùó?
ùò2s   Ã$HÆ70H
c                ó^  — | j                   t        j                  u r| j                  S | j                   t        j                  u r| j                  j                  «       S | j                   t        j                  u r| j                  j                  «       S d| j                   › �}t        |«      ‚)NzUnknown implementation: )	ra   r   rÃ   r€   rÅ   rs   rÄ   Ú
_to_pandasr{   rÇ   s     rj   rs   zPandasLikeDataFrame.to_pandasÔ  sŒ   € Ø×Ñ¤>×#8Ñ#8Ñ8Ø—;‘;ÐØ×Ñ¤>×#6Ñ#6Ñ6Ø—;‘;×(Ñ(Ó*Ð*Ø×Ñ¤>×#7Ñ#7Ñ7Ø—;‘;×)Ñ)Ó+Ð+Ø(¨×)=Ñ)=Ð(>Ð?ˆÜ˜SÓ!Ð!rl   c                óJ   — dd l } |j                  | j                  «       «      S rÝ   )r   r  rs   )re   r  s     rj   r†  zPandasLikeDataFrame.to_polarsÞ  s   € Ûàˆr�~‰~˜dŸn™nÓ.Ó/Ð/rl   c                ó:   — | j                   j                  |«       y r_   )r€   Ú
to_parquet©re   Úfiles     rj   Úwrite_parquetz!PandasLikeDataFrame.write_parquetã  s   € Ø�‰×Ñ˜tÕ$rl   c                 ó   — y r_   r‡   r(  s     rj   Ú	write_csvzPandasLikeDataFrame.write_csvæ  s   € Ø,/rl   c                 ó   — y r_   r‡   r(  s     rj   r,  zPandasLikeDataFrame.write_csvé  s   € Ø=@rl   c                ó<   — | j                   j                  |d¬«      S )NFr  )r€   Úto_csvr(  s     rj   r,  zPandasLikeDataFrame.write_csvì  s   € Ø�{‰{×!Ñ! $¨eÐ!Ó4Ð4rl   c                óf   — t        j                  | j                  j                  d¬«       | ¬«      S )NFrë  rp   )r   r|   r€   Ú
duplicatedrº   s    rj   Ú	is_uniquezPandasLikeDataFrame.is_uniqueð  s/   € Ü×+Ñ+Ø�[‰[×#Ñ#¨Ð#Ó/Ð/¸ô
ð 	
rl   c                ó0  — |€<|€:| j                   x}dk7  rd|›�}t        |«      ‚| j                  j                  d   S |�|€d}t        |«      ‚t	        |t
        «      r| j                  j                  |«      n|}| j                  j                  ||f   S )N)r…   r…   zfcan only call `.item()` without "row" or "column" values if the DataFrame has a single element; shape=)r   r   z8cannot call `.item()` with only one of `row` or `column`)r  r‡  r€   rÖ   r‘   r  rc   rÓ   )re   r  Úcolumnr  r‚   Ú_cols         rj   ÚitemzPandasLikeDataFrame.itemõ  s¢   € Øˆ;˜6˜>ØŸ™Ð#�¨Ò.ð=Ø=B¸IðGð ô ! “oÐ%Ø—;‘;×#Ñ# DÑ)Ð)àˆ;˜&˜.ØLˆCÜ˜S“/Ð!ä-7¸ÄÔ-Dˆt�|‰|×!Ñ! &Ô)È&ˆØ�{‰{×Ñ  T 	Ñ*Ð*rl   c                óX   — | j                  | j                  j                  «       d¬«      S rñ   )rÑ   r€   rå   rº   s    rj   ÚclonezPandasLikeDataFrame.clone  s%   € Ø× Ñ  §¡×!1Ñ!1Ó!3È5Ð ÓQÐQrl   c                ó\   — | j                  | j                  j                  |d |…   d¬«      S rñ   rü   )re   rä  Úoffsets      rj   Úgather_everyz PandasLikeDataFrame.gather_every	  s.   € Ø× Ñ  §¡×!1Ñ!1°&°)¸!°)Ñ!<ÐTYÐ ÓZÐZrl   c               óv   — |xs |rt        | h |£|£«      nt        | |«      }|xs t        | h |£|£«      }||fS r_   )r"   )re   ÚonrÓ   r´   s       rj   Ú_pivot_into_index_valuesz,PandasLikeDataFrame._pivot_into_index_values  sX   € ð ò 
áô !  ~¨ ~¨f ~Ô6ä% d¨BÓ/ð 	ð
 ÒDÔ/°°m¸°m¸U°mÓDˆØ�fˆ}Ðrl   c               óH   — d\  }}}dj                  | «      }|› |› |› |› |› �S )N)ú{ú}ú"z",")rØ  )Úunique_valuesÚLBÚRBÚQÚbodys        rj   Ú_pivot_multi_on_namez(PandasLikeDataFrame._pivot_multi_on_name  s6   € à!‰	ˆˆB�Ø�z‰z˜-Ó(ˆØ��a�S˜˜˜q˜c " Ð&Ð&rl   c               ó    — |dkD  r-| D �cg c]!  }|j                  |«      j                  «       ‘Œ# c}S | D �cg c]  }|d   ‘Œ	 c}S c c}w c c}w )Nr…   éÿÿÿÿ)rØ  Ústrip)r!  Ún_valuesÚ	separatorr+   s       rj   Ú_pivot_single_on_namesz*PandasLikeDataFrame._pivot_single_on_names!  sL   € ð �aŠ<Ø;GÖH°C�I—N‘N 3Ó'×-Ñ-Õ/ÒHÐHØ#/Ö0˜C��B“Ò0Ð0ùò IùÚ0s
   Š&A·Ac             #  óÀ   K  — |dkD  r7|D ]1  }|| d  }|d   }|j                  || j                  |«      f«      –— Œ3 y |D ]  }| j                  || d  «      –— Œ y ­w)Nr…   r   )rØ  rH  )re   r!  Ún_onrL  rM  r+   ÚnamesÚprefixs           rj   Ú_pivot_multi_on_namesz)PandasLikeDataFrame._pivot_multi_on_names)  s   è ø€ ð �aŠ<Ø#ò Q�Ø˜T˜E˜F˜�Ø˜Q™�Ø—n‘n f¨d×.GÑ.GÈÓ.NÐ%OÓPÓPñQð
 $ò =�Ø×/Ñ/°°T°E°F°Ó<Ó<ñ=ùs   ‚AAc               ól   — |dk(  r| j                  |||«      S t        | j                  ||||«      «      S )z­Reformat output column names from a native pivot operation, to match `polars`.

        Note:
            `column_names` is a `pd.MultiIndex`, but not in the stubs.
        r…   )rN  rí   rS  )re   r!  rP  rL  rM  s        rj   Ú_pivot_remap_column_namesz-PandasLikeDataFrame._pivot_remap_column_names:  s<   € ð �1Š9Ø×.Ñ.¨|¸XÀyÓQÐQÜ�D×.Ñ.¨|¸TÀ8ÈYÓWÓXÐXrl   c          	     óŠ   — | j                   t        j                  u ri nddi} | j                  j                  d||||ddœ|¤ŽS )NÚobservedTF)r´   rÓ   rc   ÚaggfuncÚmarginsr‡   )ra   r   rÅ   r€   Úpivot_table)re   r=  rÓ   r´   Úaggregate_functionr‰  s         rj   Ú_pivot_tablez PandasLikeDataFrame._pivot_tableF  s`   € ð ×&Ñ&¬.×*=Ñ*=Ñ=‰BÀJÐPTÐCUð 	ð 'ˆt�{‰{×&Ñ&ð 
ØØØØ&Øñ
ð ñ
ð 	
rl   c               ó   — |€| j                   j                  |||¬«      S |dk(  rV| j                   j                  g |¢|¢d¬«      j                  t        j                  |d«      «      j                  |||¬«      S | j                  ||||«      S )N)rc   rÓ   r´   r•   F)Úas_indexÚsize)r€   ÚpivotÚgroupbyÚaggr  Úfromkeysr\  )re   r=  rÓ   r´   r[  s        rj   Ú_pivotzPandasLikeDataFrame._pivot\  s‘   € ð Ð%Ø—;‘;×$Ñ$¨R°uÀVÐ$ÓLÐLØ Ò&à—‘×#Ñ# M b M¨5 M¸EÐ#ÓBß‘”T—]‘] 6¨6Ó2Ó3ß‘˜r¨°v�Ó>ðð
 × Ñ   U¨FÐ4FÓGÐGrl   c               ó  ‡ — ‰ j                   }|j                  «       rd}t        |«      ‚‰ j                  |||«      \  }}‰ j	                  ||||«      }	|rˆ fd„|D «       n
ˆ fd„|D «       }
t        t        |gt        |
«      ¢­Ž «      }|	j                  d d …|f   }	|	j                  }‰ j                  |t        |«      t        |«      |¬«      }||	_	        dg|	j                  _        ‰ j                  |	j                  «       «      S )Nzcpivot is not supported for Modin backend due to https://github.com/modin-project/modin/issues/7409.c              3  óš   •K  — | ]B  }‰j                  |«      j                  «       j                  d d ¬«      j                  «       –— ŒD y­w)F)rn  ro  N)rã   ró  rr  Úto_list©r‰   r+   re   s     €rj   r‹   z,PandasLikeDataFrame.pivot.<locals>.<genexpr>‚  sE   øè ø€ ò ð
 ð	 —‘ Ó$ß‘“ß‘ °5�Ó9ß‘“óñùs   ƒAAc              3  óx   •K  — | ]1  }‰j                  |«      j                  «       j                  «       –— Œ3 y ­wr_   )rã   ró  rg  rh  s     €rj   r‹   z,PandasLikeDataFrame.pivot.<locals>.<genexpr>Š  s,   øè ø€ ÒH¸c�$—/‘/ #Ó&×-Ñ-Ó/×7Ñ7×9ÑHùs   ƒ7:)rP  rL  rM  r”  )ra   rt   ÚNotImplementedErrorr>  rd  rí   r	   r   r  rc   rU  r•   rQ  rÑ   Úreset_index)re   r=  rÓ   r´   r[  Úsort_columnsrM  rg   r‚   r×  ÚuniquesÚordered_colsrc   Úremappeds   `             rj   r`  zPandasLikeDataFrame.pivotn  s	  ø€ ð ×-Ñ-ˆØ×"Ñ"Ô$ØwˆCÜ% cÓ*Ð*à×5Ñ5°b¸%ÀÓH‰ˆˆvØ—‘˜R ¨Ð0BÓCˆñ óð
 õó IÀRÔHð 	ô œG FÐ<¬U°7«^Ò<Ó=ˆØ—‘šA˜|˜OÑ,ˆØ—.‘.ˆØ×1Ñ1Øœ#˜b›'¬C°«KÀ9ð 2ó 
ˆð "ˆŒØ "˜tˆ�‰ÔØ× Ñ  ×!3Ñ!3Ó!5Ó6Ð6rl   c                óÄ   — | j                   t        j                  u r| j                  j	                  d¬«      S dd l}|j                  j                  | j                  «      S )NF)Úpreserve_indexr   )ra   r   rÅ   r€   rƒ  ÚpyarrowÚTabler  )re   Úpas     rj   rƒ  zPandasLikeDataFrame.to_arrow–  sJ   € Ø×Ñ¤>×#6Ñ#6Ñ6Ø—;‘;×'Ñ'°uÐ'Ó=Ð=ãà�x‰x×#Ñ# D§K¡KÓ0Ð0rl   c               ób   — | j                  | j                  j                  ||||¬«      d¬«      S )N)rä  ÚfracÚreplaceÚrandom_stateFrÎ   )rÑ   r€   Úsample)re   rä  ÚfractionÚwith_replacementÚseeds        rj   ry  zPandasLikeDataFrame.samplež  sB   € ð × Ñ Ø�K‰K×ÑØ˜(Ð,<È4ð ó ð #(ð	 !ó 
ð 	
rl   c                ó^   — | j                  | j                  j                  ||||¬«      «      S )N)Úid_varsÚ
value_varsÚvar_nameÚ
value_name)rÑ   r€   Úmelt)re   r=  rÓ   Úvariable_namer�  s        rj   ÚunpivotzPandasLikeDataFrame.unpivot­  s:   € ð × Ñ Ø�K‰K×ÑØØØ&Ø%ð	 ó ó
ð 	
rl   c                ó,  ‡‡— | j                   j                  }| j                  «       }|D ]'  }||   }||j                  k7  sŒd|› d�}t	        |«      ‚ t        |«      dk(  r/| j                  | j                  j                  |d   «      d¬«      S | j                  Š‰|d      j                  j                  «       Št        ˆˆfd„|dd  D «       «      sd}t        |«      ‚| j                  }|D �cg c]	  }||vsŒ|‘Œ }	}‰g |	¢|d   ‘   j                  |d   «      }
|dd  D �cg c]#  }‰|   j                  «       j                  «       ‘Œ% }}| j                  «       }| j                  |j                  |
g|¢d¬	«      |   d¬«      S c c}w c c}w )
Nz-`explode` operation not supported for dtype `z`, expected List typer…   r   FrÎ   c              3  óz   •K  — | ]2  }‰|   j                   j                  «       ‰k(  j                  «       –— Œ4 y ­wr_   )rí   r•   rO  )r‰   Úcol_nameÚanchor_seriesÚnative_frames     €€rj   r‹   z.PandasLikeDataFrame.explode.<locals>.<genexpr>Ò  s;   øè ø€ ò 
àð ˜(Ñ#×(Ñ(×,Ñ,Ó.°-Ñ?×DÑD×Fñ
ùs   ƒ8;z2exploded columns must have matching element countsr,  )rb   r“   r  ÚListr)   r•   rÑ   r€   Úexploderí   rO  r*   rc   Úto_framerÈ   Úconcat)re   rc   r“   r˜   Úcol_to_exploder¡   r‚   Úoriginal_columnsÚcÚother_columnsÚexploded_framer‡  Úexploded_seriesr4  rˆ  r‰  s                 @@rj   r‹  zPandasLikeDataFrame.explode½  sÖ  ù€ Ø—‘×%Ñ%ˆà×$Ñ$Ó&ˆØ%ò 	1ˆNØ˜>Ñ*ˆEà˜Ÿ™Ó#àCÀEÀ7ð K)ð )ð ô ,¨CÓ0Ð0ð	1ô ˆw‹<˜1ÒØ×$Ñ$Ø—‘×#Ñ# G¨A¡JÓ/Àuð %ó ð ð —{‘{ˆØ$ W¨Q¡ZÑ0×5Ñ5×9Ñ9Ó;ˆäô 
à# A B˜Kô
ô 
ð GˆCÜ˜S“/Ð!àŸ<™<ÐØ$4ÖI˜q¸ÀÒ8HšÐIˆÐIà%Ð&B¨Ð&B°w¸q±zÐ&BÑC×KÑKÈGÐTUÉJÓWˆàHOÐPQÐPRÈö
Ø<DˆL˜Ñ"×*Ñ*Ó,×5Ñ5Õ7ð
ˆð 
ð ×'Ñ'Ó)ˆØ× Ñ Ø�J‰J˜Ð9¨Ð9ÀˆJÓBÐCSÑTØ"'ð !ó 
ð 	
ùò Jùò
s   Ã3	FÃ=FÄ((F)rf   r   rg   r   rh   r=   ri   rW   r]   rW   ÚreturnÚNone)r~   r:   rq   r>   r”  r/   )r~   zMapping[str, Any]rq   r>   r˜   ú.IntoSchema | Mapping[str, DType | None] | Noner”  r/   )r~   zSequence[Mapping[str, Any]]rq   r>   r˜   r–  r”  r/   )rª   r   r”  zTypeIs[Any])r~   r   rq   r>   r”  r/   )r~   rI   rq   r>   r˜   z!IntoSchema | Sequence[str] | Noner”  r/   )r”  r/   )r”  r8   )r”  r.   )r”  Úint)rh   r=   r”  r/   )rÐ   r   ri   rW   r”  r/   )r×   r   r”  úpd.Series[Any])rœ   r  r”  r   r_   )r¡   r   rå   úbool | Noner”  rI   )rî   ú'SizedMultiIndexSelector[pd.Series[Any]]r”  r/   )rî   ú_SliceIndex | ranger”  r/   )rc   rK   r”  r/   )rc   r›  r”  r/   )rc   rš  r”  r/   )rc   z&SizedMultiNameSelector[pd.Series[Any]]r”  r/   )r”  ú	list[str])r  zLiteral[True]r”  zlist[dict[str, Any]])r  zLiteral[False]r”  zlist[tuple[Any, ...]])r  rW   r”  z,list[tuple[Any, ...]] | list[dict[str, Any]])r”  zIterator[PandasLikeSeries])r  rW   r  r—  r”  z4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])r”  zdict[str, DType])r!  r  r”  r/   )r'  r4   r”  r/   )r3  úSequence[str] | Noner”  r/   )r9  rG   r”  zint | float)rœ   r  rB  r�  r”  r/   )rÓ   r—  r”  ztuple[Any, ...])rW  r4   r”  r/   )rc  zMapping[str, str]r”  r/   )rc   úSequence[str]re  rW   r”  r/   )rp  r  rn  úbool | Sequence[bool]ro  rW   r”  r/   )ry  r—  rp  úIterable[str]rz  rŸ  r”  r/   )r¢   z_EagerAllowedImpl | Nonerˆ  r   r”  r2   )rµ   z(Sequence[str] | Sequence[PandasLikeExpr]rŒ  rW   r”  r6   )
r×   r/   r–  rž  r—  rž  rš  r  r”  úpd.DataFrame)r×   r/   rš  r  r”  r¡  )r×   r/   r–  rž  r—  rž  r”  r¡  )r×   r/   rÃ  rœ  rÄ  zdict[str, str]r”  r¡  )r×   r/   r’  rC   r–  r�  r—  r�  rš  r  r”  r/   )r×   r/   r–  r  r—  r  rÞ  r�  rß  r�  rà  r@   rš  r  r”  r/   )rä  r—  r”  r/   )
r3  r�  rì  rH   rè  r™  rB  r�  r”  r/   )r¢   z_LazyAllowedImpl | Nonerô  zSparkSession | Noner”  r3   )r”  ztuple[int, int])r  rW   r”  zdict[str, Any])r”  r¡  )r”  zpl.DataFrame)r)  zstr | Path | BytesIOr”  r•  )r)  r•  r”  r  )r)  zstr | Path | BytesIO | Noner”  z
str | None)r”  r   )r  ú
int | Noner4  zint | str | Noner”  r   )rä  r—  r:  r—  r”  r/   )r=  rž  rÓ   r�  r´   r�  r”  z#tuple[Sequence[str], Sequence[str]])rC  ztuple[str, ...]r”  r  )r!  r   rL  r—  rM  r  r”  rœ  )
r!  zIterable[tuple[str, ...]]rP  r—  rL  r—  rM  r  r”  zIterator[str])
r!  zIterable[Any]rP  r—  rL  r—  rM  r  r”  rœ  )
r=  rž  rÓ   rž  r´   rž  r[  z?Literal['min', 'max', 'first', 'last', 'sum', 'mean', 'median']r”  r   )
r=  rž  rÓ   rž  r´   rž  r[  úPivotAgg | Noner”  r¡  )r=  rž  rÓ   r�  r´   r�  r[  r£  rl  rW   rM  r  r”  r/   )r”  r   )
rä  r¢  rz  zfloat | Noner{  rW   r|  r¢  r”  r/   )
r=  r�  rÓ   r�  rƒ  r  r�  r  r”  r/   )rc   rž  r”  r/   )XÚ__name__Ú
__module__Ú__qualname__rk   Úclassmethodro   r’   r¨   Ústaticmethodr«   r|   r¸   r»   r¾   rÁ   rÈ   rÊ   rÍ   rÑ   rÛ   Úpropertyrà   rã   ré   rï   rö   rú   rþ   r   r  rc   r   rî   r  Ú_iter_columnsr  r˜   r  r"  r*  r6  r=  rQ  r  r2  r`  r   rf  rr  r{  rŠ  rŽ  r›  r¥  r¶  rÀ  rÇ  rÐ  rÆ  rØ  rá  rx  rç  ró  r  r  r  rè   rs   r†  r*  r,  r2  r6  r8  r;  r>  rH  rN  rS  rU  r\  rd  r`  rƒ  ry  r„  r‹  r‡   rl   rj   r[   r[   e   sF  „ ð */ñ-àð-ð 'ð	-ð
 ð-ð  $ð-ð #'ð-ð 
ó-ð" ò8ó ð8ð. ð-8àð-8ð
 !ð-8ð ?ð-8ð 
ò-8ó ð-8ð^ ð 8à)ð 8ð
 !ð 8ð ?ð 8ð 
ò 8ó ð 8ðD ò-ó ð-ð ò
ó ð
ð ð8àð8ð
 !ð8ð 2ð8ð 
ò8ó ð8ó0óóPó
	"ó ó
ð FJõ 
ó
ð ñ9ó ð9óMð5À$õ 5ó=ó
ó
ó 
ð

Ø>ð
à	ó
ó>ð ò,ó ð,ð ÚHó ØHàÚJó ØJàÚWó ØWó	5óEð !€Mð
0Øð
0Ø+.ð
0à	=ó
0ð ò
ó ð
óó
ó
Aó!ó*ó1ó(9ó
óBó(
ó

ó

ó

ð'Ø/ð'Ø;>ð'à	ó'ðTLØ<ðLØQUðLà	óLð	
Øð	
Ø'4ð	
Ø@Mð	
ØWZð	
à	ó	
ðØðØ'4ðØ@MðØWZðà	óð(
Øð
Ø'4ð
Ø@Mð
ØWZð
à	ó
ó@Sð,

Øð

Ø'4ð

Ø@Mð

à	ó

ð!Øð!Ø'4ð!Ø@Mð!à	ó!ðFØðØ.7ðØJXðà	óð(")àð")ð ð	")ð
 &ð")ð 'ð")ð ð")ð 
ó")ðH
àð
ð ð	
ð
 ð
ð &ð
ð 'ð
ð #ð
ð ð
ð 
ó
ó6SóSð '+ñCà$ðCð !ð	Cð
 $ðCð 'ðCð 
óCðB ,0ð@ð (,ñ	@à(ð@ð %ð	@ð
 
ó@ðD ò!ó ð!ó2ð-&Àõ -&ó^"ó0ó
%ð Ú/ó Ø/àÚ@ó Ø@ó5ó
ó
+ó"Ró[ðàðð $ðð %ð	ð 
-óð ò'ó ð'ð
 ð1Ø#ð1Ø/2ð1Ø?Bð1à	ò1ó ð1ð=à/ð=ð ð=ð ð	=ð
 ð=ð 
ó=ð"
YØ)ð
YØ47ð
YØCFð
YØSVð
Yà	ó
Yð
àð
ð ð
ð ð	
ð

ð
ð 
ó
ð,HàðHð ðHð ð	Hð
 ,ðHð 
óHð$&7àð&7ð $ð	&7ð
 %ð&7ð ,ð&7ð ð&7ð ð&7ð 
ó&7óP1ð
àð
ð ð	
ð
 ð
ð ð
ð 
ó
ð
à ð
ð $ð
ð ð	
ð
 ð
ð 
ó
ô (
rl   r[   )r   r4   r   r˜  )mÚ
__future__r   Úcollections.abcr   r   r   r   Ú	itertoolsr   r	   Útypingr
   r   r   r   r   r   rÞ   rß   Únarwhals._compliantr   Únarwhals._pandas_like.seriesr   r   Únarwhals._pandas_like.utilsr   r   r   r   r   r   r   r   r   r   Únarwhals._typing_compatr   Únarwhals._utilsr   r   r    r!   r"   r#   r$   r%   r&   Únarwhals.dependenciesr(   Únarwhals.exceptionsr)   r*   Únarwhals.functionsr+   rH  Úior,   Úpathlibr-   Útypesr.   ÚpandasÚpdr   r  Útyping_extensionsr/   r0   r1   Únarwhals._compliant.typingr2   r3   Únarwhals._pandas_like.exprr4   r�  r6   rÀ   r8   Únarwhals._spark_like.utilsr9   Únarwhals._translater:   Únarwhals._typingr;   r<   r=   r>   Únarwhals.dtypesr?   Únarwhals.typingr@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rz   rL   Ú__annotations__Ú	frozensetr¡   rY   r[   r‡   rl   rj   ú<module>rÆ     sý  ðÞ "ç AÓ Aß $ß H× Hã å .ß X÷÷ ÷ õ 1÷
÷ 
õ 
õ ;ß AÝ ,áÝÝÝ ãÛß9Ñ9çWÝ9Ý@ÝCÝ7Ý2ßDß8Ý%÷÷ ÷ ó ð & c¨2¯<©<Ð&7Ñ8€K�Ó8ñ 4=àˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�ÓØˆ�‰�Ó!Øˆ�‰Ð!Ó"Øˆ�‰Ð!Ó"Øˆ�‰Ð!Ó"Øˆ�‰Ð!Ó"Øˆ�‰Ð"Ó#Øˆ�‰Ð"Ó#Øˆ�‰Ð"Ó#Øˆ�‰�Óð)ó4Ð Ð0ó ô4@
ØÐPÑQõ@
rl   