Ë
    ðmxi[y  ã                  ó  — U d dl mZ d dlmZmZmZmZ d dlmZm	Z	m
Z
mZmZ d dlZd dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d dlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d d	l'm(Z( d d
l)m*Z* er�d dlm+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2Z3d dl4Z5d dl6m7Z7m8Z8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z? d dl@mAZAmBZB d dlCmDZDmEZE d dlFmGZG d dlHmIZI d dlJmKZKmLZL d dlmZmMZM d dlNmOZO d dlPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZ e
d   Z[de\d<    G d„ ded    «      Z]y)!é    )Úannotations)Ú
CollectionÚIteratorÚMappingÚSequence)ÚTYPE_CHECKINGÚAnyÚLiteralÚcastÚoverloadN)ÚArrowSeries)ÚarangeÚconcat_tablesÚnarwhals_to_native_dtypeÚnative_to_narwhals_dtypeÚrepeat)ÚEagerDataFrame)
ÚImplementationÚVersionÚcheck_column_names_are_uniqueÚconvert_str_slice_to_int_sliceÚgenerate_temporary_column_nameÚnot_implementedÚparse_columns_to_dropÚscale_bytesÚsupports_arrow_c_streamÚ
zip_strict)Úis_numpy_array_1d)Ú
ShapeError)ÚIterable)ÚBytesIO)ÚPath)Ú
ModuleType)ÚSelfÚ	TypeAliasÚTypeIs)Ú	ArrowExpr©ÚArrowGroupBy©ÚArrowNamespace)ÚChunkedArrayAnyÚOrder)ÚCompliantDataFrameAnyÚCompliantLazyFrameAny)ÚSparkSession)ÚIntoArrowTable)Ú_EagerAllowedImplÚ_LazyAllowedImpl)r   Ú_LimitedContext)ÚDType)
Ú
IntoSchemaÚJoinStrategyÚSizedMultiIndexSelectorÚSizedMultiNameSelectorÚSizeUnitÚUniqueKeepStrategyÚ_1DArrayÚ_2DArrayÚ_SliceIndexÚ
_SliceName)ú	left semiz
right semiú	left antiz
right antiÚinnerú
left outerzright outerú
full outerr%   ÚJoinTypec                  ó  — e Zd Zej                  Zddœ	 	 	 	 	 	 	 	 	 dNd„ZedOd„«       Ze	 	 	 	 	 	 	 	 dPd„«       Z	e	 	 	 	 	 	 	 	 dQd„«       Z
edRd„«       ZedSd„«       Ze	 	 	 	 	 	 	 	 dTd	„«       ZdUd
„ZdVd„ZdWd„ZdWd„ZdXd„ZddœdYd„ZedZd„«       Zd[d„Zd\d„Zed]d„«       Zed^d„«       Zed_d„«       Zd_d„Zd`d„ZeZ	 	 	 	 	 	 dad„Zdbd„Zdcd„Zddd„Z ded„Z!dfd„Z"dgd „Z#	 	 	 	 dhd!„Z$	 	 	 	 did"„Z%edjd#„«       Z&djd$„Z'dkd%„Z( e)«       Z*edld&„«       Z+dmd'„Z,dnd(„Z-dod)„Z.dnd*„Z/	 	 	 	 	 	 dpd+„Z0	 	 	 	 	 	 	 	 	 	 	 	 dqd,„Z1 e)«       Z2drd-„Z3dsd.„Z4dtd/„Z5dud0„Z6dvd1„Z7dwd2„Z8dxd3d4œdcd5„Z9edyd6„«       Z:edzd7„«       Z:	 	 	 	 d{d8„Z:d|d9„Z;d}d:„Z<d~d;„Z=d~d<„Z>	 dxd3d=œ	 	 	 	 	 dd>„Z?	 	 	 	 	 	 d€d?„Z@dWd@„ZAd�dA„ZBd‚dB„ZCdƒdC„ZDed„dD„«       ZEedƒdE„«       ZEd…dF„ZEd†dG„ZFd3dHœ	 	 	 	 	 	 	 	 	 d‡dI„ZGdˆdJ„ZHd‰dK„ZI	 	 	 	 	 	 	 	 	 	 dŠdL„ZJ	 	 	 	 	 	 	 	 	 	 d‹dM„ZK e)«       ZLy3)ŒÚArrowDataFrameF)Úvalidate_backend_versionc               ór   — |rt        |j                  «       |r| j                  «        || _        || _        y ©N)r   Úcolumn_namesÚ_validate_backend_versionÚ_native_frameÚ_version)ÚselfÚnative_dataframeÚversionÚvalidate_column_namesrH   s        úP/home/htdocs/ttos/venv/lib/python3.12/site-packages/narwhals/_arrow/dataframe.pyÚ__init__zArrowDataFrame.__init__V   s4   € ñ !Ü)Ð*:×*GÑ*GÔHÙ#Ø×*Ñ*Ô,Ø-ˆÔØˆ�ó    c              ó€  — |j                   j                  «       }| j                  |«      r|}n~|dk\  st        |t        «      rt        j                  |«      }nSt        |«      r$dt        |«      j                  ›d�}t        |«      ‚dt        |«      j                  ›d�}t        |«      ‚| j                  ||¬«      S )N©é   zB'pyarrow>=14.0.0' is required for `from_arrow` for object of type ú.z1`from_arrow` is not supported for object of type ©Úcontext)Ú_implementationÚ_backend_versionÚ
_is_nativeÚ
isinstancer   ÚpaÚtabler   ÚtypeÚ__name__ÚModuleNotFoundErrorÚ	TypeErrorÚfrom_native)ÚclsÚdatar[   Úbackend_versionÚnativeÚmsgs         rS   Ú
from_arrowzArrowDataFrame.from_arrowe   s¬   € à!×1Ñ1×BÑBÓDˆØ�>‰>˜$ÔØ‰FØ Ò%¬°D¼*Ô)EÜ—X‘X˜d“^‰FÜ$ TÔ*ØVÔW[Ð\`ÓWa×WjÑWjÐVmÐmnÐoˆCÜ% cÓ*Ð*àEÄdÈ4Ãj×FYÑFYÐE\Ð\]Ð^ˆCÜ˜C“.Ð Ø�‰˜v¨wˆÓ7Ð7rU   c              óJ  — |s(|s&| j                  t        j                  i «      |¬«      S |s&| j                  t        j                  |«      |¬«      S t        d„ |j	                  «       D «       «      soddlm}  |t        d|«      «      j                  «       }|r|s|j                  «       }n!t        j                  j                  ||¬«      }| j                  ||¬«      S |j                  j                  «       dk  rd}t        |«      ‚t        j                  |j                  «       D ��	ci c]>  \  }}	|t        j                   |r||   ng g|	�t#        |	|j$                  ¬	«      nd ¬
«      “Œ@ c}	}«      }
| j                  t        j                  |
«      |¬«      S c c}	}w )NrZ   c              3  ó$   K  — | ]  }|d u –— Œ
 y ­wrJ   © ©Ú.0Údtypes     rS   ú	<genexpr>z+ArrowDataFrame.from_dict.<locals>.<genexpr>�   s   è ø€ Ò> U�5˜D”=Ñ>ùó   ‚r   ©ÚSchemar6   ©ÚschemarW   z8Passing `None` dtype in `from_dict` requires PyArrow>=14©rQ   )rb   )rf   r`   ra   ÚanyÚvaluesÚnarwhals.schemarv   r   Úto_arrowÚempty_tableÚTableÚfrom_pydictr\   r]   ÚNotImplementedErrorÚitemsÚchunked_arrayr   rN   )rg   rh   r[   rx   rv   Ú	pa_schemarj   rk   ÚnameÚnw_dtypeÚress              rS   Ú	from_dictzArrowDataFrame.from_dictt   sh  € ñ ™dØ—?‘?¤2§8¡8¨B£<¸�?ÓAÐAÙØ—?‘?¤2§8¡8¨D£>¸7�?ÓCÐCÜÑ>¨f¯m©m«oÔ>Ô>Ý.áœt L°&Ó9Ó:×CÑCÓEˆIÙ¡Ø"×.Ñ.Ó0‘äŸ™×-Ñ-¨d¸9Ð-ÓE�Ø—?‘? 6°7�?Ó;Ð;Ø×"Ñ"×3Ñ3Ó5¸Ò=ØLˆCÜ% cÓ*Ð*Ü�h‰hð '-§l¡l£n÷ñ #�D˜(ð ”b×&Ñ&Ù#'�T˜$’Z¨RÐ0àÐ+ô 2°(ÀG×DTÑDTÕUàô	ñ óó

ˆð �‰œrŸx™x¨›}°gˆÓ>Ð>ùós   Ä.AF
c              óF  — ddl m} |r-t        d„ |j                  «       D «       «      rd}t	        |«      ‚|�  |t        d|«      «      j                  «       n|}|r|s|j                  «       }n!t        j                  j                  ||¬«      }| j                  ||¬«      S )Nr   ru   c              3  ó$   K  — | ]  }|d u –— Œ
 y ­wrJ   ro   rp   s     rS   rs   z,ArrowDataFrame.from_dicts.<locals>.<genexpr>¥   s   è ø€ ÒE¨E˜% 4œ-ÑEùrt   zR`from_dicts` with `schema` where any dtype is `None` is not supported for PyArrow.r6   rw   rZ   )r|   rv   rz   r{   r�   r   r}   r~   r`   r   Úfrom_pylistrf   )rg   rh   r[   rx   rv   rk   r„   rj   s           rS   Ú
from_dictszArrowDataFrame.from_dictsš   s˜   € õ 	+á”cÑE°V·]±]³_ÔEÔEØfˆCÜ% cÓ*Ð*ð Ð!ñ ”4˜ fÓ-Ó.×7Ñ7Ô9àð 	ñ
 ™TØ×*Ñ*Ó,‰Fä—X‘X×)Ñ)¨$°yÐ)ÓAˆFØ�‰˜v¨wˆÓ7Ð7rU   c                ó6   — t        | t        j                  «      S rJ   )r_   r`   r   )Úobjs    rS   r^   zArrowDataFrame._is_native³   s   € ä˜#œrŸx™xÓ(Ð(rU   c              ó,   —  | ||j                   d¬«      S )NT©rQ   rR   )rN   )rg   rh   r[   s      rS   rf   zArrowDataFrame.from_native·   s   € á�4 ×!1Ñ!1ÈÔNÐNrU   c              ó†  — ddl m} |j                  D �cg c]  }t        j                  |«      ‘Œ }}t        |t        |f«      r6t        j                  j                  | ||«      j                  «       ¬«      }n0t        j                  j                  || j                  ||«      «      }| j                  ||¬«      S c c}w )Nr   ru   rw   rZ   )r|   rv   ÚTr`   Úarrayr_   r   r   Úfrom_arraysr}   Ú_numpy_column_namesrf   )rg   rh   r[   rx   rv   ÚvalÚarraysrj   s           rS   Ú
from_numpyzArrowDataFrame.from_numpy»   s—   € õ 	+à+/¯6©6Ö2 C”"—(‘(˜3•-Ð2ˆÐ2Ü�fœw¨Ð/Ô0Ü—X‘X×)Ñ)¨&¹À»×9PÑ9PÓ9RÐ)ÓS‰Fä—X‘X×)Ñ)¨&°#×2IÑ2IÈ$ÐPVÓ2WÓXˆFØ�‰˜v¨wˆÓ7Ð7ùò 3s   •B>c                ó4   — ddl m}  || j                  ¬«      S )Nr   r*   ry   )Únarwhals._arrow.namespacer+   rN   )rO   r+   s     rS   Ú__narwhals_namespace__z%ArrowDataFrame.__narwhals_namespace__Í   s   € Ý<á d§m¡mÔ4Ð4rU   c                ó´   — | j                   t        j                  u r| j                   j                  «       S dt	        | j                   «      › �}t        |«      ‚)NzExpected pyarrow, got: )r\   r   ÚPYARROWÚto_native_namespacerb   ÚAssertionError)rO   rk   s     rS   Ú__native_namespace__z#ArrowDataFrame.__native_namespace__Ò   sN   € Ø×Ñ¤>×#9Ñ#9Ñ9Ø×'Ñ'×;Ñ;Ó=Ð=à'¬¨T×-AÑ-AÓ(BÐ'CÐDˆÜ˜SÓ!Ð!rU   c                ó   — | S rJ   ro   ©rO   s    rS   Ú__narwhals_dataframe__z%ArrowDataFrame.__narwhals_dataframe__Ù   ó   € ØˆrU   c                ó   — | S rJ   ro   r¢   s    rS   Ú__narwhals_lazyframe__z%ArrowDataFrame.__narwhals_lazyframe__Ü   r¤   rU   c                ó>   — | j                  | j                  |d¬«      S )NFr�   )Ú	__class__rj   )rO   rQ   s     rS   Ú_with_versionzArrowDataFrame._with_versionß   s   € Ø�~‰~˜dŸk™k°7ÐRWˆ~ÓXÐXrU   T©rR   c               ó>   — | j                  || j                  |¬«      S )Nr�   )r¨   rN   )rO   ÚdfrR   s      rS   Ú_with_nativezArrowDataFrame._with_nativeâ   s$   € Ø�~‰~Ø˜Ÿ™Ð=Rð ó 
ð 	
rU   c                ó.   — | j                   j                  S rJ   )rj   Úshaper¢   s    rS   r¯   zArrowDataFrame.shapeç   s   € à�{‰{× Ñ Ð rU   c                ó,   — t        | j                  «      S rJ   )Úlenrj   r¢   s    rS   Ú__len__zArrowDataFrame.__len__ë   s   € Ü�4—;‘;ÓÐrU   c                óŠ   — t        | j                  j                  |g«      j                  «       d   j	                  «       «      S ©Nr   )Útuplerj   ÚtakeÚ	to_pylistr{   )rO   Úindexs     rS   ÚrowzArrowDataFrame.rowî   s5   € Ü�T—[‘[×%Ñ% u gÓ.×8Ñ8Ó:¸1Ñ=×DÑDÓFÓGÐGrU   c                ó   — y rJ   ro   ©rO   Únameds     rS   ÚrowszArrowDataFrame.rowsñ   s   € ØEHrU   c                ó   — y rJ   ro   r»   s     rS   r½   zArrowDataFrame.rowsô   s   € ØGJrU   c                ó   — y rJ   ro   r»   s     rS   r½   zArrowDataFrame.rows÷   s   € ØTWrU   c               ór   — |st        | j                  dd¬«      «      S | j                  j                  «       S )NFi   )r¼   Úbuffer_size)ÚlistÚ	iter_rowsrj   r·   r»   s     rS   r½   zArrowDataFrame.rowsú   s0   € ÙÜ˜Ÿ™¨UÀ˜ÓDÓEÐEØ�{‰{×$Ñ$Ó&Ð&rU   c              #  ó¬   K  — t        | j                  | j                  j                  «       «      D ]  \  }}t	        j
                  || |¬«      –— Œ! y ­w)N©r[   r…   )r   Úcolumnsrj   Úitercolumnsr   rf   )rO   r…   Úseriess      rS   Úiter_columnszArrowDataFrame.iter_columnsÿ   sH   è ø€ Ü& t§|¡|°T·[±[×5LÑ5LÓ5NÓOò 	K‰LˆD�&Ü×)Ñ)¨&¸$ÀTÔJÓJñ	Kùs   ‚AAc             #  ó6  K  — | j                   }|j                  }|sGt        d||«      D ]6  }||||z    j                  «       j	                  «       }t        |Ž E d {  –—†  Œ8 y t        d||«      D ]   }||||z    j                  «       E d {  –—†  Œ" y 7 Œ87 Œ	­wr´   )rj   Únum_rowsÚrangeÚ	to_pydictr{   r   r·   )rO   r¼   rÁ   r¬   rË   Úir½   s          rS   rÃ   zArrowDataFrame.iter_rows  s§   è ø€ ð �[‰[ˆØ—;‘;ˆáÜ˜1˜h¨Ó4ò -�Ø˜!˜a +™oÐ.×8Ñ8Ó:×AÑAÓC�Ü% tÐ,×,Ñ,ñ-ô ˜1˜h¨Ó4ò ?�Ø˜a ! k¡/Ð2×<Ñ<Ó>×>Ñ>ñ?ð -øð ?ús$   ‚ABÁBÁ0BÂBÂBÂBc                óž   — t        |t        «      sdt        |«      › �}t        |«      ‚t	        j
                  | j                  |   | |¬«      S )NzExpected str, got: rÅ   )r_   Ústrrb   re   r   rf   rj   )rO   r…   rk   s      rS   Ú
get_columnzArrowDataFrame.get_column  sD   € Ü˜$¤Ô$Ø'¬¨T«
 |Ð4ˆCÜ˜C“.Ð Ü×&Ñ& t§{¡{°4Ñ'8À$ÈTÔRÐRrU   c               ó<   — | j                   j                  ||¬«      S )N©Úcopy)rj   Ú	__array__)rO   rr   rÔ   s      rS   rÕ   zArrowDataFrame.__array__  s   € Ø�{‰{×$Ñ$ U°Ð$Ó6Ð6rU   c                ó  — t        |«      dk(  r+| j                  | j                  j                  dd«      «      S | j                  dk  rt        |t        «      rt        |«      }| j                  | j                  j                  |«      «      S )Nr   )é   )	r±   r­   rj   Úslicer]   r_   rµ   rÂ   r¶   )rO   r½   s     rS   Ú_gatherzArrowDataFrame._gather  so   € Üˆt‹9˜Š>Ø×$Ñ$ T§[¡[×%6Ñ%6°q¸!Ó%<Ó=Ð=Ø× Ñ  5Ò(¬Z¸¼eÔ-DÜ˜“:ˆDØ× Ñ  §¡×!1Ñ!1°$Ó!7Ó8Ð8rU   c                óœ  — |j                   xs d}|j                  �|j                  nt        | j                  «      }|dk  rt        | j                  «      |z   }|dk  rt        | j                  «      |z   }|j                  �|j                  dk7  rd}t        |«      ‚| j                  | j                  j                  |||z
  «      «      S )Nr   é   z4Slicing with step is not supported on PyArrow tables)ÚstartÚstopr±   rj   Ústepr�   r­   rØ   )rO   r½   rÜ   rÝ   rk   s        rS   Ú_gather_slicezArrowDataFrame._gather_slice#  sª   € Ø—
‘
’˜aˆØ ŸI™IÐ1ˆt�yŠy´s¸4¿;¹;Ó7GˆØ�1Š9Ü˜Ÿ™Ó$ uÑ,ˆEØ�!Š8Ü�t—{‘{Ó# dÑ*ˆDØ�9‰9Ð  T§Y¡Y°!¢^ØHˆCÜ% cÓ*Ð*Ø× Ñ  §¡×!2Ñ!2°5¸$À¹,Ó!GÓHÐHrU   c                óª   — t        || j                  «      \  }}}| j                  | j                  j	                  | j                  |||…   «      «      S rJ   )r   rÆ   r­   rj   Úselect)rO   rÆ   rÜ   rÝ   rÞ   s        rS   Ú_select_slice_namez!ArrowDataFrame._select_slice_name/  sH   € Ü:¸7ÀDÇLÁLÓQÑˆˆt�TØ× Ñ  §¡×!3Ñ!3°D·L±LÀÀtÈDÀÑ4QÓ!RÓSÐSrU   c                ó²   — | j                  | j                  j                  | j                  |j                  |j
                  |j                  …   «      «      S rJ   )r­   rj   rá   rÆ   rÜ   rÝ   rÞ   )rO   rÆ   s     rS   Ú_select_slice_indexz"ArrowDataFrame._select_slice_index3  sC   € Ø× Ñ Ø�K‰K×Ñ˜tŸ|™|¨G¯M©M¸G¿L¹LÈ7Ï<É<Ð,WÑXÓYó
ð 	
rU   c                óü   — t        |t        j                  «      rt        d|j	                  «       «      }nt        |«      r|j                  «       }n|}| j                  | j                  j                  |«      «      S )NzSequence[int])
r_   r`   ÚChunkedArrayr   r·   r   Útolistr­   rj   rá   ©rO   rÆ   Úselectors      rS   Ú_select_multi_indexz"ArrowDataFrame._select_multi_index8  sb   € ô �gœrŸ™Ô/ä˜O¨W×->Ñ->Ó-@ÓA‰Hô ˜wÔ'Ø—~‘~Ó'‰HàˆHØ× Ñ  §¡×!3Ñ!3°HÓ!=Ó>Ð>rU   c                óÄ   — t        |t        j                  «      rt        d|j	                  «       «      }n|}| j                  | j                  j                  |«      «      S )NúSequence[str])r_   r`   ræ   r   r·   r­   rj   rá   rè   s      rS   Ú_select_multi_namez!ArrowDataFrame._select_multi_nameG  sL   € ô �gœrŸ™Ô/ä˜O¨W×->Ñ->Ó-@ÓA‰HàˆHà× Ñ  §¡×!3Ñ!3°HÓ!=Ó>Ð>rU   c                ó¦   — | j                   j                  D �ci c]-  }|j                  t        |j                  | j
                  «      “Œ/ c}S c c}w rJ   )rj   rx   r…   r   rb   rN   )rO   Úfields     rS   rx   zArrowDataFrame.schemaS  sG   € ð Ÿ™×+Ñ+ö
àð �J‰JÔ0°·±¸T¿]¹]ÓKÑKò
ð 	
ùò 
s   ™2Ac                ó   — | j                   S rJ   rw   r¢   s    rS   Úcollect_schemazArrowDataFrame.collect_schemaZ  ó   € Ø�{‰{ÐrU   c                óF   — | j                   j                  }t        ||«      S rJ   )rj   Únbytesr   )rO   ÚunitÚszs      rS   Úestimated_sizezArrowDataFrame.estimated_size]  s   € Ø�[‰[×ÑˆÜ˜2˜tÓ$Ð$rU   c                ó.   — | j                   j                  S rJ   )rj   rK   r¢   s    rS   rÆ   zArrowDataFrame.columnsc  s   € à�{‰{×'Ñ'Ð'rU   c                ól   — | j                  | j                  j                  t        |«      «      d¬«      S ©NFrª   )r­   rj   rá   rÂ   )rO   rK   s     rS   Úsimple_selectzArrowDataFrame.simple_selectg  s3   € Ø× Ñ Ø�K‰K×Ñœt LÓ1Ó2È%ð !ó 
ð 	
rU   c                ó–  —  | j                   |Ž }|s6| j                  | j                  j                  j	                  g «      d¬«      S |D �cg c]  }|j
                  ‘Œ }}|d   j                  } ||Ž }t        j                  j	                  |D �cg c]  }|j                  ‘Œ c}|¬«      }| j                  |d¬«      S c c}w c c}w )NFrª   r   )ÚnamesT)	Ú_evaluate_exprsr­   rj   r¨   r”   r…   Ú_align_full_broadcastr`   r   )rO   ÚexprsÚ
new_seriesÚsrý   ÚalignÚreshapedr¬   s           rS   rá   zArrowDataFrame.selectl  sÃ   € Ø)�T×)Ñ)¨5Ð1ˆ
Ùà×$Ñ$Ø—‘×%Ñ%×1Ñ1°"Ó5ÈUð %ó ð ð ",Ö,˜A�—“Ð,ˆÐ,Ø˜1‘×3Ñ3ˆÙ˜*Ð%ˆÜ�X‰X×!Ñ!°XÖ">° 1§8£8Ò">ÀeÐ!ÓLˆØ× Ñ  ¸4Ð Ó@Ð@ùò	 -ùò #?s   ÁCÂCc                ó  — t        | «      }|j                  s0t        |«      x}|k7  rd|› d|› d�}t        |«      ‚|j                  S |j                  d   }t	        j
                  t	        j                  ||«      g«      S )NzExpected object of length z, got: rY   r   )r±   Ú
_broadcastr   rj   r`   rƒ   r   )rO   ÚotherÚlengthÚ	len_otherrk   Úvalues         rS   Ú_extract_comparandz!ArrowDataFrame._extract_comparandy  sy   € Ü�T“ˆØ×ÒÜ  ›ZÐ'�	¨FÒ2Ø2°6°(¸'À)ÀÈAÐN�Ü  “oÐ%Ø—<‘<Ðà—‘˜Q‘ˆÜ×Ñ¤§¡¨5°&Ó!9Ð :Ó;Ð;rU   c                ó2  — | j                   } | j                  |Ž }| j                  }|D ]Y  }|j                  }| j	                  |«      }||v r#|j                  |j                  |«      ||¬«      n|j                  ||¬«      }Œ[ | j                  |d¬«      S )N)ÚcolumnFrª   )	rj   rþ   rÆ   r…   r  Ú
set_columnr¸   Úappend_columnr­   )rO   r   Únative_frameÚnew_columnsrÆ   Ú	col_valueÚcol_namer  s           rS   Úwith_columnszArrowDataFrame.with_columns„  s«   € ð —{‘{ˆØ*�d×*Ñ*¨EÐ2ˆØ—,‘,ˆà$ò 	ˆIØ —~‘~ˆHØ×,Ñ,¨YÓ7ˆFð ˜wÑ&ð ×'Ñ'¨¯©°hÓ(?ÀÐRXÐ'ÔYà!×/Ñ/°ÀÐ/ÓHñ ð	ð × Ñ  ÀUÐ ÓKÐKrU   c               ó$   — ddl m}  || ||¬«      S )Nr   r(   )Údrop_null_keys)Únarwhals._arrow.group_byr)   )rO   Úkeysr  r)   s       rS   Úgroup_byzArrowDataFrame.group_by–  s   € õ 	:á˜D $°~ÔFÐFrU   c          
     ó”  — ddddddœ}|dk(  rö| j                  «       }t        dg | j                  ¢|j                  ¢¬	«      }| j                  | j	                  |j                  d
d «      j                  |«      j                  «       «      j                  j                  |j	                  |j                  d
d «      j                  |«      j                  «       «      j                  ||d|¬«      j                  |g«      «      S |dk7  }	| j                  | j                  j                  |j                  |xs g |||   ||	¬«      «      S )NrA   r@   rB   rC   rD   )ÚantiÚsemirB   ÚleftÚfullÚcrossé   ©Ún_bytesrÆ   r   )r  Ú
right_keysÚ	join_typeÚright_suffixr  )r  r#  r$  r%  Úcoalesce_keys)r›   r   rÆ   r­   r  ÚlitÚaliasÚ	broadcastrj   ÚjoinÚdrop)
rO   r  ÚhowÚleft_onÚright_onÚsuffixÚhow_to_join_mapÚplxÚ	key_tokenr&  s
             rS   r*  zArrowDataFrame.join�  sK  € ð  ØØØ Ø ñ0
ˆð �'Š>Ø×-Ñ-Ó/ˆCÜ6ØÐ#B T§\¡\Ð#B°E·M±MÐ#BôˆIð ×$Ñ$Ø×!Ñ! #§'¡'¨!¨TÓ"2×"8Ñ"8¸Ó"C×"MÑ"MÓ"OÓPß‘Ÿ™Ø×&Ñ&ØŸ™  4Ó(×.Ñ.¨yÓ9×CÑCÓEóç‘fØ"Ø(Ø%Ø!'ð ó ÷ ‘�y�kÓ"óð ð ˜v™ˆØ× Ñ Ø�K‰K×ÑØ—‘Ø’] Ø#Ø)¨#Ñ.Ø#Ø+ð ó ó	
ð 		
rU   c               óv   — t        | ||¬«      }| j                  | j                  j                  |«      d¬«      S )N©ÚstrictFrª   )r   r­   rj   r+  )rO   rÆ   r5  Úto_drops       rS   r+  zArrowDataFrame.dropÐ  s6   € Ü'¨¨g¸fÔEˆØ× Ñ  §¡×!1Ñ!1°'Ó!:ÐRWÐ ÓXÐXrU   c                óü   — |€+| j                  | j                  j                  «       d¬«      S | j                  «       }|j	                   |j
                  |Ž j                  «       d¬«       }| j                  |«      S )NFrª   T)Úignore_nulls)r­   rj   Ú	drop_nullr›   Úany_horizontalÚcolÚis_nullÚfilter)rO   Úsubsetr1  Úmasks       rS   Ú
drop_nullszArrowDataFrame.drop_nullsÔ  st   € Øˆ>Ø×$Ñ$ T§[¡[×%:Ñ%:Ó%<ÐTYÐ$ÓZÐZØ×)Ñ)Ó+ˆØ×"Ñ" 7 3§7¡7¨FÐ#3×#;Ñ#;Ó#=ÈDÐ"ÓQÐQˆØ�{‰{˜4Ó Ð rU   c               ó  — t        |t        «      r|rdnd}|D �cg c]  }||f‘Œ }}n$t        ||«      D ��cg c]  \  }}||rdndf‘Œ }}}|rdnd}| j                  | j                  j                  ||¬«      d¬«      S c c}w c c}}w )NÚ
descendingÚ	ascendingÚat_endÚat_start)Únull_placementFrª   )r_   Úboolr   r­   rj   Úsort_by)	rO   rB  Ú
nulls_lastÚbyÚorderÚkeyÚsortingÚis_descendingrF  s	            rS   ÚsortzArrowDataFrame.sortÛ  s§   € Ü�j¤$Ô'Ù+5™<¸;ˆEØHJÖ/KÀ°°e²Ð/KˆGÑ/Kô +5°R¸Ó*D÷á&�C˜ð ¡m‘l¸ÒEðˆGñ ñ
 &0™°Zˆà× Ñ Ø�K‰K×Ñ ¸ÐÓGØ"'ð !ó 
ð 	
ùò 0Lùós
   ›B¸Bc          	     óF  — t        |t        «      r|rdnd}|D �cg c]  }||f‘Œ }}n$t        ||«      D ��cg c]  \  }}||rdndf‘Œ }}}| j                  | j                  j                  t        j                  | j                  ||«      «      d¬«      S c c}w c c}}w )NrC  rB  Frª   )r_   rG  r   r­   rj   r¶   ÚpcÚselect_k_unstable)rO   ÚkrJ  ÚreverserK  rL  rM  Úis_ascendings           rS   Útop_kzArrowDataFrame.top_kì  s¬   € Ü�gœtÔ$Ù*1™;°|ˆEØHJÖ/KÀ°°e²Ð/KˆGÑ/Kô *4°B¸Ó)@÷á%�C˜ð ¡\‘k°|ÒDðˆGñ ð × Ñ Ø�K‰K×ÑœR×1Ñ1°$·+±+¸qÀ'ÓJÓKØ"'ð !ó 
ð 	
ùò 0Lùós
   ›B¸Bc                ó6   — | j                   j                  «       S rJ   )rj   Ú	to_pandasr¢   s    rS   rX  zArrowDataFrame.to_pandasú  s   € Ø�{‰{×$Ñ$Ó&Ð&rU   c                óB   — dd l } |j                  | j                  «      S r´   )Úpolarsrl   rj   )rO   Úpls     rS   Ú	to_polarszArrowDataFrame.to_polarsý  s   € Ûàˆr�}‰}˜TŸ[™[Ó)Ð)rU   NrÓ   c               óš   — dd l }|j                  | j                  j                  D �cg c]  }|j	                  «       ‘Œ c}«      }|S c c}w r´   )ÚnumpyÚcolumn_stackrj   rÆ   Úto_numpy)rO   rr   rÔ   Únpr;  Úarrs         rS   r`  zArrowDataFrame.to_numpy  s9   € Ûà—?‘?¸d¿k¹k×>QÑ>QÖ#R°s C§L¡L¥NÒ#RÓSˆØˆ
ùò $Ss   ¨Ac                ó   — y rJ   ro   ©rO   Ú	as_seriess     rS   Úto_dictzArrowDataFrame.to_dict  s   € ØNQrU   c                ó   — y rJ   ro   rd  s     rS   rf  zArrowDataFrame.to_dict  s   € ØMPrU   c               óÂ   — | j                  «       }|r|D �ci c]  }|j                  |“Œ c}S |D �ci c]  }|j                  |j                  «       “Œ c}S c c}w c c}w rJ   )rÉ   r…   Úto_list)rO   re  ÚitÚsers       rS   rf  zArrowDataFrame.to_dict  sV   € ð ×ÑÓ ˆÙØ-/Ö0 c�C—H‘H˜c‘MÒ0Ð0Ø35Ö6¨C�—‘˜#Ÿ+™+›-Ñ'Ò6Ð6ùò 1ùÚ6s
   —A²"Ac                ó˜  — | j                  «       }t        dt        | «      d«      }|€W|j                  j	                  |j
                  j                  || |¬«      «      }| j                  ||j                  «       «      S t        j                  | j                  |D �cg c]  }|df‘Œ c}«      }| j                  dk  r%|j                  t        j                  |«      «      }n7t        j                  ||j                  t!        j"                  «       «      «      }| j%                  | j                  j'                  d||«      «      S c c}w )Nr   rÛ   rÅ   rC  )é   )r›   r   r±   Ú_exprÚ_from_seriesÚ_seriesÚfrom_iterablerá   ÚallrQ  Úsort_indicesrj   r]   r¶   Úscatterr   r`   Úint64r­   Ú
add_column)	rO   r…   Úorder_byr1  rh   Ú	row_indexrJ  ÚindicesÚnew_cols	            rS   Úwith_row_indexzArrowDataFrame.with_row_index  s   € Ø×)Ñ)Ó+ˆÜ�aœ˜T› AÓ&ˆØÐØŸ	™	×.Ñ.Ø—‘×)Ñ)¨$¸À4Ð)ÓHóˆIð —;‘;˜y¨#¯'©'«)Ó4Ð4Ü—/‘/ $§+¡+ÈHÖ/UÀb°°[Ò0AÒ/UÓVˆØ× Ñ  5Ò(Ø—i‘i¤§¡°Ó 8Ó9‰Gä—j‘j  w§|¡|´B·H±H³JÓ'?Ó@ˆGØ× Ñ  §¡×!7Ñ!7¸¸4ÀÓ!IÓJÐJùò 0Vs   ÂE
c                ó�   — | j                  |«      j                  }| j                  | j                  j                  |«      d¬«      S rú   )Ú_evaluate_single_output_exprrj   r­   r=  )rO   Ú	predicateÚmask_natives      rS   r=  zArrowDataFrame.filter%  sD   € Ø×7Ñ7¸	ÓB×IÑIˆØ× Ñ Ø�K‰K×Ñ˜{Ó+À5ð !ó 
ð 	
rU   c           
     óâ   — | j                   }|dk\  r#| j                  |j                  d|«      d¬«      S |j                  }| j                  |j                  dt	        d||z   «      «      d¬«      S ©Nr   Frª   )rj   r­   rØ   rË   Úmax©rO   Únr¬   rË   s       rS   ÚheadzArrowDataFrame.head+  sn   € Ø�[‰[ˆØ�Š6Ø×$Ñ$ R§X¡X¨a°£^È5Ð$ÓQÐQØ—;‘;ˆØ× Ñ Ø�H‰H�Qœ˜A˜x¨!™|Ó,Ó-ÀUð !ó 
ð 	
rU   c           	     óð   — | j                   }|dk\  r;|j                  }| j                  |j                  t	        d||z
  «      «      d¬«      S | j                  |j                  t        |«      «      d¬«      S r�  )rj   rË   r­   rØ   r‚  Úabsrƒ  s       rS   ÚtailzArrowDataFrame.tail4  sq   € Ø�[‰[ˆØ�Š6Ø—{‘{ˆHØ×$Ñ$Ø—‘œ˜Q ¨1¡Ó-Ó.Àeð %ó ð ð × Ñ  §¡¬#¨a«&Ó!1ÈÐ ÓOÐOrU   )Úsessionc               ó\  — |€| S |t         j                  u r:dd l}ddlm} | j
                  } ||j                  d«      d| j                  ¬«      S |t         j                  u rQdd l	}ddl
m}  |t        d |j                  | j
                  «      «      j                  «       d| j                  ¬«      S |t         j                  u rHdd lm} ddlm}	  |	|j)                  | j
                  j+                  «       «      d| j                  ¬«      S |t         j,                  u rDdd l}
dd	lm}  ||
j5                  | j
                  | j6                  ¬
«      d| j                  ¬«      S |j9                  «       r4ddlm} |€d}t?        |«      ‚|jA                  | ||| j                  ¬«      S tB        ‚)Nr   )ÚDuckDBLazyFrameÚ_dfT©rH   rQ   )ÚPolarsLazyFrameúpl.DataFrame)ÚDaskLazyFrame)ÚIbisLazyFrame)rÆ   )ÚSparkLikeLazyFramez5Spark like backends require `session` to be not None.)r‰  ÚimplementationrQ   )"r   ÚDUCKDBÚduckdbÚnarwhals._duckdb.dataframer‹  rj   ra   rN   ÚPOLARSrZ  Únarwhals._polars.dataframerŽ  r   rl   ÚlazyÚDASKÚdask.dataframeÚ	dataframeÚnarwhals._dask.dataframer�  Úfrom_pandasrX  ÚIBISÚibisÚnarwhals._ibis.dataframer‘  ÚmemtablerÆ   Úis_spark_likeÚnarwhals._spark_like.dataframer’  Ú
ValueErrorÚ_from_compliant_dataframerŸ   )rO   Úbackendr‰  r•  r‹  rŒ  r[  rŽ  Úddr�  r   r‘  r’  rk   s                 rS   r™  zArrowDataFrame.lazy=  sy  € ð ˆ?ØˆKØ”n×+Ñ+Ñ+ÛåBà—+‘+ˆCÙ"Ø—‘˜UÓ#¸dÈDÏMÉMôð ð ”n×+Ñ+Ñ+ÛåBá"Ü�^ ] R§]¡]°4·;±;Ó%?Ó@×EÑEÓGØ)-ØŸ™ôð ð
 ”n×)Ñ)Ñ)Ý'å>á Ø—‘˜tŸ{™{×4Ñ4Ó6Ó7Ø)-ØŸ™ôð ð
 ”n×)Ñ)Ñ)Ûå>á Ø—‘˜dŸk™k°4·<±<�Ó@Ø)-ØŸ™ôð ð × Ñ Ô"ÝIàˆØM�Ü  “oÐ%à%×?Ñ?Ø˜g°gÀtÇ}Á}ð @ó ð ô ÐrU   c                óè  — |t         j                  u s|€%ddlm}  || j                  | j
                  d¬«      S |t         j                  u rCddlm}  || j                  j                  «       t         j                  d| j
                  d¬«      S |t         j                  u rCdd l}ddlm}  |t        d	 |j                  | j                  «      «      d| j
                  ¬
«      S d|› �}t!        |«      ‚)Nr   )rG   Fr�   )ÚPandasLikeDataFrameT)r“  rH   rQ   rR   )ÚPolarsDataFramer�  r�  zUnsupported `backend` value: )r   r�   Únarwhals._arrow.dataframerG   rj   rN   ÚPANDASÚnarwhals._pandas_like.dataframerª  rX  r—  rZ  r˜  r«  r   rl   rŸ   )rO   r§  ÚkwargsrG   rª  r[  r«  rk   s           rS   ÚcollectzArrowDataFrame.collectz  sÚ   € ð ”n×,Ñ,Ñ,°°Ý@á!Ø—‘ T§]¡]È%ôð ð ”n×+Ñ+Ñ+ÝKá&Ø—‘×%Ñ%Ó'Ü-×4Ñ4Ø)-ØŸ™Ø&+ôð ð ”n×+Ñ+Ñ+ÛåBá"Ü�^ ] R§]¡]°4·;±;Ó%?Ó@Ø)-ØŸ™ôð ð .¨g¨YÐ7ˆÜ˜SÓ!Ð!rU   c                ó<   — | j                  | j                  d¬«      S rú   ©r­   rj   r¢   s    rS   ÚclonezArrowDataFrame.clone�  s   € Ø× Ñ  §¡ÀEÐ ÓJÐJrU   c                ó<  — ddl m} |€=|€;| j                  x}dk7  rd|›�}t        |«      ‚ || j                  d   d   d¬«      S |�|€d}t        |«      ‚t        |t        «      r| j                  j                  |«      n|} || j                  |   |   d¬«      S )Nr   )Úmaybe_extract_py_scalar)rÛ   rÛ   zfcan only call `.item()` without "row" or "column" values if the DataFrame has a single element; shape=T)Úreturn_py_scalarz8cannot call `.item()` with only one of `row` or `column`)	Únarwhals._arrow.seriesrµ  r¯   r¥  rj   r_   rÐ   rÆ   r¸   )rO   r¹   r  rµ  r¯   rk   Ú_cols          rS   ÚitemzArrowDataFrame.item   s­   € ÝBàˆ;˜6˜>ØŸ™Ð#�¨Ò.ð=Ø=B¸IðGð ô ! “oÐ%Ù*¨4¯;©;°q©>¸!Ñ+<ÈtÔTÐTàˆ;˜&˜.ØLˆCÜ˜S“/Ð!ä-7¸ÄÔ-Dˆt�|‰|×!Ñ! &Ô)È&ˆÙ& t§{¡{°4Ñ'8¸Ñ'=ÐPTÔUÐUrU   c                óê   — | j                   dk\  rt        d|«      }n)| j                  D �cg c]  }|j                  ||«      ‘Œ }}| j	                  | j
                  j                  |«      «      S c c}w )N)é   zdict[str, str])r]   r   rÆ   Úgetr­   rj   Úrename_columns)rO   Úmappingrý   Úcs       rS   ÚrenamezArrowDataFrame.rename³  sd   € à× Ñ  EÒ)ÜÐ)¨7Ó3‰Eà04·±Ö=¨1�W—[‘[  AÕ&Ð=ˆEÐ=Ø× Ñ  §¡×!;Ñ!;¸EÓ!BÓCÐCùò >s   «A0c                óH   — dd l m} |j                  | j                  |«       y r´   )Úpyarrow.parquetÚparquetÚwrite_tablerj   )rO   ÚfileÚpps      rS   Úwrite_parquetzArrowDataFrame.write_parquet»  s   € Ý$à
�‰�t—{‘{ DÕ)rU   c                 ó   — y rJ   ro   ©rO   rÅ  s     rS   Ú	write_csvzArrowDataFrame.write_csvÀ  s   € Ø,/rU   c                 ó   — y rJ   ro   rÉ  s     rS   rÊ  zArrowDataFrame.write_csvÃ  s   € Ø=@rU   c                ó  — dd l m} |€\t        j                  «       }|j	                  | j
                  |«       |j                  «       j                  «       j                  «       S |j	                  | j
                  |«       y r´   )	Úpyarrow.csvÚcsvr`   ÚBufferOutputStreamrÊ  rj   ÚgetvalueÚ
to_pybytesÚdecode)rO   rÅ  Úpa_csvÚ
csv_buffers       rS   rÊ  zArrowDataFrame.write_csvÆ  sd   € Ý$àˆ<Ü×.Ñ.Ó0ˆJØ×Ñ˜TŸ[™[¨*Ô5Ø×&Ñ&Ó(×3Ñ3Ó5×<Ñ<Ó>Ð>Ø×Ñ˜Ÿ™ dÔ+ØrU   c                ó  — dd l }t        d| j                  ¬«      }t        j                  |j                  t        | «      «      «      }| j                  j                  ||«      j                  | j                  «      j                  |df|dfg«      }t        j                  t        j                  t        j                  |||› d�   «      t        j                  |||› d�   «      «      «      }t        j                   || ¬«      S )	Nr   r   r!  Úminr‚  Ú_minÚ_maxrZ   )r^  r   rÆ   r`   r“   r   r±   rj   r  r  Ú	aggregaterƒ   rQ  Úand_Úis_inr   rf   )rO   ra  Ú	col_tokenrx  Úkeep_idxrj   s         rS   Ú	is_uniquezArrowDataFrame.is_uniqueÐ  s×   € Ûä2¸1ÀdÇlÁlÔSˆ	Ü—H‘H˜RŸY™Y¤s¨4£yÓ1Ó2ˆ	à�K‰K×%Ñ% i°Ó;ß‰X�d—l‘lÓ#ß‰Y˜ EÐ*¨Y¸Ð,>Ð?Ó@ð 	ô
 ×!Ñ!Ü�G‰GÜ—‘˜ H°	¨{¸$Ð-?Ñ$@ÓAÜ—‘˜ H°	¨{¸$Ð-?Ñ$@ÓAóó
ˆô ×&Ñ& v°tÔ<Ð<rU   )Úmaintain_orderc          
     óò  — dd l }|r| j                  |«      x}r|‚t        |xs | j                  «      }|dv �rhddlm} |j                  |   }t        d| j                  ¬«      }	|rz|rxt        dg | j                  ¢|	‘¬«      }
 | j                  |
d ¬«      j                  |dddœŽj                  ||dd ¬	«      }|j                  |
dd¬
«      j                  |
gd¬«      S |r | j                  |dddœŽj                  }n| j                  }|j                  |	t        j                  |j!                  t#        | «      «      «      «      j%                  |«      j'                  |	|fg«      j)                  |	› d|› �«      }| j+                  |j-                  |«      d¬«      S  | j.                  |Ž j1                  «       }| j3                  «       }| j5                  |j6                  j9                  |«      «      S )Nr   >   rz   ÚlastÚfirstr(   r   r!  )rw  F)rI  rB  )r>  Úkeeprß  rw  )rB  rI  r4  Ú_rª   )r^  Ú_check_columns_existrÂ   rÆ   r  r)   Ú_REMAP_UNIQUEr   r{  rO  Úuniquer+  rj   r  r`   r“   r   r±   r  rÙ  r  r­   r¶   rû   rÞ  r›   r=  rn  ro  )rO   r>  rã  rß  rw  ra  Úerrorr)   Úagg_funcrÜ  Ú	idx_tokenr¬   rj   Úkeep_idx_nativerÝ  r1  s                   rS   rç  zArrowDataFrame.uniqueâ  sì  € ó 	á × 9Ñ 9¸&Ó AÐA�uÐAØˆKÜ�fÒ, §¡Ó-ˆàÐ+Ò+Ý=à#×1Ñ1°$Ñ7ˆHÜ6¸qÈ$Ï,É,ÔWˆIÙ™NÜ:ØÐ'A¨¯©Ð'A°yÐ'Aô�	ð�D×'Ñ'¨	¸DÐ'ÓAß‘T˜8°À%òIç‘V 6°ÀUÐUY�VÓZð ð
 —w‘w˜y°UÀu�wÓM×RÑRØ�K¨ð Só ð ñ Ø"˜Ÿ™ H¸È5ÒQ×XÑX‘àŸ™�à×$Ñ$ Y´·±¸¿¹Ä3ÀtÃ9Ó9MÓ0NÓOß‘˜&Ó!ß‘˜Y¨Ð1Ð2Ó3ß‘˜9˜+ Q x jÐ1Ó2ð	 ð ×$Ñ$Ø—‘˜OÓ,ÀEð %ó ð ð &�4×%Ñ% vÐ.×8Ñ8Ó:ˆØ×)Ñ)Ó+ˆØ�{‰{˜3Ÿ9™9×1Ñ1°(Ó;Ó<Ð<rU   c                óH   — | j                  | j                  |d |…   d¬«      S rú   r²  )rO   r„  Úoffsets      rS   Úgather_everyzArrowDataFrame.gather_every  s'   € Ø× Ñ  §¡¨V¨Y°Q¨YÑ!7ÈuÐ ÓUÐUrU   c                ó   — | j                   S rJ   )rj   r¢   s    rS   r}   zArrowDataFrame.to_arrow  rò   rU   c               ó  — dd l }t        | «      }|€|�t        ||z  «      }|j                  j	                  |¬«      }|j                  |«      }|j                  |||¬«      }	| j                  | j                  j                  |	«      d¬«      S )Nr   )Úseed)ÚsizeÚreplaceFrª   )
r^  r±   ÚintÚrandomÚdefault_rngr   Úchoicer­   rj   r¶   )
rO   r„  ÚfractionÚwith_replacementrñ  ra  rË   ÚrngÚidxr?  s
             rS   ÚsamplezArrowDataFrame.sample  sˆ   € ó 	ä�t“9ˆØˆ9˜Ð-Ü�H˜xÑ'Ó(ˆAØ�i‰i×#Ñ#¨Ð#Ó.ˆØ�i‰i˜Ó!ˆØ�z‰z˜# AÐ/?ˆzÓ@ˆØ× Ñ  §¡×!1Ñ!1°$Ó!7ÈuÐ ÓUÐUrU   c                ó<  ‡‡‡‡‡‡	— t        | «      Š	‰€g n
t        ‰«      Š|€ˆfd„| j                  D «       n
t        |«      }| j                  j                  ‰«      Š| j                  j                  Šˆˆˆ	ˆˆfd„|D «       }| j                  t        |d«      «      S )Nc              3  ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wrJ   ro   )rq   r¿  r¸   s     €rS   rs   z)ArrowDataFrame.unpivot.<locals>.<genexpr>8  s   øè ø€ Ò9�Q¨!°5ª.ŒqÑ9ùs   ƒ	�c              3  ó‚   •K  — | ]6  }‰j                  ‰t        |‰«      «      j                  ‰ ‰|«      «      –— Œ8 y ­wrJ   )r  r   )rq   r…   r  Ú
index_colsr„  Ú
value_nameÚvariable_names     €€€€€rS   rs   z)ArrowDataFrame.unpivot.<locals>.<genexpr>;  sB   øè ø€ ò 
ð ð ×$Ñ$ ]´F¸4À³OÓD×RÑRØ™F 4›L÷ñ
ùs   ƒ<?Ú
permissive)	r±   rÂ   rÆ   Úiterrj   rá   r  r­   r   )
rO   Úonr¸   r  r  Úon_Útablesr  r   r„  s
     ```  @@@rS   ÚunpivotzArrowDataFrame.unpivot-  s…   ý€ ô �‹IˆØ�m‘¬¨e«ˆØ=?¸ZÓ9˜$Ÿ,™,Õ9ÌTÐRTËXˆØ—[‘[×'Ñ'¨Ó.ˆ
Ø—‘×#Ñ#ˆ÷
ð ô	
ˆð × Ñ ¤¨v°|Ó!DÓEÐErU   )
rP   úpa.TablerQ   r   rR   rG  rH   rG  ÚreturnÚNone)rh   r1   r[   r4   r
  r$   )rh   zMapping[str, Any]r[   r4   rx   ú.IntoSchema | Mapping[str, DType | None] | Noner
  r$   )rh   zSequence[Mapping[str, Any]]r[   r4   rx   r  r
  r$   )rŽ   zpa.Table | Anyr
  zTypeIs[pa.Table])rh   r	  r[   r4   r
  r$   )rh   r=   r[   r4   rx   z!IntoSchema | Sequence[str] | Noner
  r$   )r
  r+   )r
  r#   )r
  r$   )rQ   r   r
  r$   )r¬   r	  rR   rG  r
  r$   )r
  ztuple[int, int])r
  rô  )r¸   rô  r
  ztuple[Any, ...])r¼   úLiteral[True]r
  zlist[dict[str, Any]])r¼   úLiteral[False]r
  zlist[tuple[Any, ...]])r¼   rG  r
  z,list[tuple[Any, ...]] | list[dict[str, Any]])r
  zIterator[ArrowSeries])r¼   rG  rÁ   rô  r
  z4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])r…   rÐ   r
  r   )rr   r	   rÔ   úbool | Noner
  r=   )r½   ú(SizedMultiIndexSelector[ChunkedArrayAny]r
  r$   )r½   ú_SliceIndex | ranger
  r$   )rÆ   r?   r
  r$   )rÆ   r  r
  r$   )rÆ   r  r
  r$   )rÆ   z'SizedMultiNameSelector[ChunkedArrayAny]r
  r$   )r
  zdict[str, DType])rõ   r:   r
  zint | float)r
  z	list[str])rK   rÐ   r
  r$   )r   r'   r
  r$   )r  r   r
  r,   )r  z#Sequence[str] | Sequence[ArrowExpr]r  rG  r
  r)   )r  r$   r,  r7   r-  úSequence[str] | Noner.  r  r/  rÐ   r
  r$   )rÆ   rì   r5  rG  r
  r$   )r>  r  r
  r$   )rJ  rÐ   rB  úbool | Sequence[bool]rI  rG  r
  r$   )rS  rô  rJ  zIterable[str]rT  r  r
  r$   )r
  zpd.DataFrame)r
  r�  rJ   )re  r  r
  zdict[str, ArrowSeries])re  r  r
  zdict[str, list[Any]])re  rG  r
  z-dict[str, ArrowSeries] | dict[str, list[Any]])r…   rÐ   rw  r  r
  r$   )r~  r'   r
  r$   )r„  rô  r
  r$   )r§  z_LazyAllowedImpl | Noner‰  zSparkSession | Noner
  r/   )r§  z_EagerAllowedImpl | Noner¯  r	   r
  r.   )r¹   ú
int | Noner  zint | str | Noner
  r	   )r¾  zMapping[str, str]r
  r$   )rÅ  zstr | Path | BytesIOr
  r  )rÅ  r  r
  rÐ   )rÅ  zstr | Path | BytesIO | Noner
  z
str | None)r
  r   )
r>  r  rã  r;   rß  r  rw  r  r
  r$   )r„  rô  rí  rô  r
  r$   )r
  r	  )
r„  r  rø  zfloat | Nonerù  rG  rñ  r  r
  r$   )
r  r  r¸   r  r  rÐ   r  rÐ   r
  r$   )Mrc   Ú
__module__Ú__qualname__r   r�   r\   rT   Úclassmethodrl   rˆ   rŒ   Ústaticmethodr^   rf   r˜   r›   r    r£   r¦   r©   r­   Úpropertyr¯   r²   r¹   r   r½   rÉ   Ú_iter_columnsrÃ   rÑ   rÕ   rÙ   rß   râ   rä   rê   rí   rx   rñ   r÷   r   ÚexploderÆ   rû   rá   r  r  r  r*  Ú	join_asofr+  r@  rO  rV  rX  r\  r`  rf  r{  r=  r…  rˆ  r™  r°  r³  r¹  rÀ  rÇ  rÊ  rÞ  rç  rî  r}   rü  r  Úpivotro   rU   rS   rG   rG   Q   s¤  „ ð %×,Ñ,€Oð */ñ à"ð ð ð	 ð
  $ð ð #'ð ð 
ó ð ò8ó ð8ð ð#?àð#?ð
 !ð#?ð ?ð#?ð 
ò#?ó ð#?ðJ ð8à)ð8ð
 !ð8ð ?ð8ð 
ò8ó ð8ð0 ò)ó ð)ð òOó ðOð ð8àð8ð
 !ð8ð 2ð8ð 
ò8ó ð8ó"5ó
"óóóYð KOõ 
ð
 ò!ó ð!ó óHð ÚHó ØHàÚJó ØJàÚWó ØWó'ó
Kð !€Mð?Øð?Ø+.ð?à	=ó?óSó7ó9ó
IóTó
ð
?Ø?ð?à	ó?ð
?Ø>ð
?à	ó
?ð ò
ó ð
óó%ñ Ó€Gàò(ó ð(ó
ó
Aó	<óLð$GØ7ðGØLPðGà	óGð/
àð/
ð ð	/
ð
 &ð/
ð 'ð/
ð ð/
ð 
ó/
ñb  Ó!€IóYó!ó
ó"
ó'ó*ð
Àõ ð ÚQó ØQàÚPó ØPð7Ø ð7à	6ó7óKó
ó
óPð ,0ð;ð (,ñ	;à(ð;ð %ð	;ð
 
ó;ðz!"Ø/ð!"Ø;>ð!"à	ó!"óFKóVó&Dó*ð
 Ú/ó Ø/àÚ@ó Ø@óó=ð. '+ñ1=à$ð1=ð !ð	1=ð
 $ð1=ð 'ð1=ð 
ó1=ófVóðVàðVð ð	Vð
 ðVð ðVð 
óVð$Fà ðFð $ðFð ð	Fð
 ðFð 
óFñ, Ó�ErU   rG   )r   r'   r	  r,   )^Ú
__future__r   Úcollections.abcr   r   r   r   Útypingr   r	   r
   r   r   Úpyarrowr`   Úpyarrow.computeÚcomputerQ  r·  r   Únarwhals._arrow.utilsr   r   r   r   r   Únarwhals._compliantr   Únarwhals._utilsr   r   r   r   r   r   r   r   r   r   Únarwhals.dependenciesr   Únarwhals.exceptionsr   r    Úior!   Úpathlibr"   Útypesr#   ÚpandasÚpdrZ  r[  Útyping_extensionsr$   r%   r&   Únarwhals._arrow.exprr'   r  r)   rš   r+   Únarwhals._arrow.typingr,   r-   Únarwhals._compliant.typingr.   r/   Únarwhals._spark_like.utilsr0   Únarwhals._translater1   Únarwhals._typingr2   r3   r4   Únarwhals.dtypesr5   Únarwhals.typingr6   r7   r8   r9   r:   r;   r<   r=   r>   r?   rE   Ú__annotations__rG   ro   rU   rS   ú<module>r8     s½   ðÞ "ç CÓ Cß >Õ >ã Ý å .÷õ õ /÷÷ ÷ õ 4Ý *áÝ(ÝÝÝ ãÛß9Ñ9å.Ý5Ý8÷÷ XÝ7Ý2ßDß8Ý%÷÷ ÷ ð "ð	ñ	€Hˆió 	ôrØÐLÑMõrrU   