Ë
    ÚÍ:jã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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& 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lm2Z2 d dl3Z4d dl5Z6d dl7m8Z8m9Z9 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<   dZ]d e\d!<    G d"„ d#ed$   «      Z^y)%é    )Úannotations)Ú
CollectionÚIteratorÚMappingÚSequence)ÚTYPE_CHECKINGÚAnyÚFinalÚ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)Úis_numpy_array_1d)Ú
ShapeError)ÚIterable)ÚBytesIO)ÚPath)Ú
ModuleType)Ú	TypeAlias)ÚSelfÚ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$   ÚJoinTypeFr
   ÚMYPYc                  ó  — 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_namesrI   s        ún/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/narwhals/_arrow/dataframe.pyÚ__init__zArrowDataFrame.__init__X   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         rT   Ú
from_arrowzArrowDataFrame.from_arrowg   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Ð7rV   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 )Nr[   c              3  ó$   K  — | ]  }|d u –— Œ
 y ­wrK   © ©Ú.0Údtypes     rT   ú	<genexpr>z+ArrowDataFrame.from_dict.<locals>.<genexpr>ƒ   s   è ø€ Ò> U�5˜D”=Ñ>ùó   ‚r   ©ÚSchemar6   ©ÚschemarX   z8Passing `None` dtype in `from_dict` requires PyArrow>=14©rR   )rc   )rg   ra   rb   ÚanyÚvaluesÚnarwhals.schemarw   r   Úto_arrowÚempty_tableÚTableÚfrom_pydictr]   r^   ÚNotImplementedErrorÚitemsÚchunked_arrayr   rO   )rh   ri   r\   ry   rw   Ú	pa_schemark   rl   ÚnameÚnw_dtypeÚress              rT   Ú	from_dictzArrowDataFrame.from_dictv   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   rv   c              3  ó$   K  — | ]  }|d u –— Œ
 y ­wrK   rp   rq   s     rT   rt   z,ArrowDataFrame.from_dicts.<locals>.<genexpr>§   s   è ø€ ÒE¨E˜% 4œ-ÑEùru   zR`from_dicts` with `schema` where any dtype is `None` is not supported for PyArrow.r6   rx   r[   )r}   rw   r{   r|   r‚   r   r~   r   ra   r€   Úfrom_pylistrg   )rh   ri   r\   ry   rw   rl   r…   rk   s           rT   Ú
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Ð7rV   c                ó6   — t        | t        j                  «      S rK   )r`   ra   r€   )Úobjs    rT   r_   zArrowDataFrame._is_nativeµ   s   € ä˜#œrŸx™xÓ(Ð(rV   c              ó,   —  | ||j                   d¬«      S )NT©rR   rS   )rO   )rh   ri   r\   s      rT   rg   zArrowDataFrame.from_native¹   s   € á�4 ×!1Ñ!1ÈÔNÐNrV   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   rv   rx   r[   )r}   rw   ÚTra   Úarrayr`   r   r€   Úfrom_arraysr~   Ú_numpy_column_namesrg   )rh   ri   r\   ry   rw   ÚvalÚarraysrk   s           rT   Ú
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*   rz   )Únarwhals._arrow.namespacer+   rO   )rP   r+   s     rT   Ú__narwhals_namespace__z%ArrowDataFrame.__narwhals_namespace__Ï   s   € Ý<á d§m¡mÔ4Ð4rV   c                ó´   — | j                   t        j                  u r| j                   j                  «       S dt	        | j                   «      › �}t        |«      ‚)NzExpected pyarrow, got: )r]   r   ÚPYARROWÚto_native_namespacerc   ÚAssertionError)rP   rl   s     rT   Ú__native_namespace__z#ArrowDataFrame.__native_namespace__Ô   sN   € Ø×Ñ¤>×#9Ñ#9Ñ9Ø×'Ñ'×;Ñ;Ó=Ð=à'¬¨T×-AÑ-AÓ(BÐ'CÐDˆÜ˜SÓ!Ð!rV   c                ó   — | S rK   rp   ©rP   s    rT   Ú__narwhals_dataframe__z%ArrowDataFrame.__narwhals_dataframe__Û   ó   € ØˆrV   c                ó   — | S rK   rp   r£   s    rT   Ú__narwhals_lazyframe__z%ArrowDataFrame.__narwhals_lazyframe__Þ   r¥   rV   c                ó>   — | j                  | j                  |d¬«      S )NFr‘   )Ú	__class__rk   )rP   rR   s     rT   Ú_with_versionzArrowDataFrame._with_versioná   s   € Ø�~‰~˜dŸk™k°7ÐRWˆ~ÓXÐXrV   T©rS   c               ó>   — | j                  || j                  |¬«      S )Nr‘   )r©   rO   )rP   ÚdfrS   s      rT   Ú_with_nativezArrowDataFrame._with_nativeä   s$   € Ø�~‰~Ø˜Ÿ™Ð=Rð ó 
ð 	
rV   c                ó.   — | j                   j                  S rK   )rk   Úshaper£   s    rT   r°   zArrowDataFrame.shapeé   s   € à�{‰{× Ñ Ð rV   c                ó,   — t        | j                  «      S rK   )Úlenrk   r£   s    rT   Ú__len__zArrowDataFrame.__len__í   s   € Ü�4—;‘;ÓÐrV   c                óŠ   — t        | j                  j                  |g«      j                  «       d   j	                  «       «      S ©Nr   )Útuplerk   ÚtakeÚ	to_pylistr|   )rP   Úindexs     rT   ÚrowzArrowDataFrame.rowð   s5   € Ü�T—[‘[×%Ñ% u gÓ.×8Ñ8Ó:¸1Ñ=×DÑDÓFÓGÐGrV   c                ó   — y rK   rp   ©rP   Únameds     rT   ÚrowszArrowDataFrame.rowsó   s   € ØEHrV   c                ó   — y rK   rp   r¼   s     rT   r¾   zArrowDataFrame.rowsö   s   € ØGJrV   c                ó   — y rK   rp   r¼   s     rT   r¾   zArrowDataFrame.rowsù   s   € ØTWrV   c               ór   — |st        | j                  dd¬«      «      S | j                  j                  «       S )NFi   )r½   Úbuffer_size)ÚlistÚ	iter_rowsrk   r¸   r¼   s     rT   r¾   zArrowDataFrame.rowsü   s0   € ÙÜ˜Ÿ™¨UÀ˜ÓDÓEÐEØ�{‰{×$Ñ$Ó&Ð&rV   c              #  ó°   K  — t        | j                  | j                  j                  «       d¬«      D ]  \  }}t	        j
                  || |¬«      –— Œ! y ­w)NT©Ústrict©r\   r†   )ÚzipÚcolumnsrk   Úitercolumnsr   rg   )rP   r†   Úseriess      rT   Úiter_columnszArrowDataFrame.iter_columns  sK   è ø€ Ü §¡¨d¯k©k×.EÑ.EÓ.GÐPTÔUò 	K‰LˆD�&Ü×)Ñ)¨&¸$ÀTÔJÓJñ	Kùs   ‚AAc             #  ó<  K  — | j                   }|j                  }|sJt        d||«      D ]9  }||||z    j                  «       j	                  «       }t        |ddiŽE d {  –—†  Œ; y t        d||«      D ]   }||||z    j                  «       E d {  –—†  Œ" y 7 Œ87 Œ	­w)Nr   rÇ   T)rk   Únum_rowsÚrangeÚ	to_pydictr|   rÉ   r¸   )rP   r½   rÂ   r­   rÏ   Úir¾   s          rT   rÄ   zArrowDataFrame.iter_rows  s¬   è ø€ ð �[‰[ˆØ—;‘;ˆáÜ˜1˜h¨Ó4ò 3�Ø˜!˜a +™oÐ.×8Ñ8Ó:×AÑAÓC�Ü Ð2¨TÑ2×2Ñ2ñ3ô ˜1˜h¨Ó4ò ?�Ø˜a ! k¡/Ð2×<Ñ<Ó>×>Ñ>ñ?ð 3øð ?ú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`   Ústrrc   rf   r   rg   rk   )rP   r†   rl   s      rT   Ú
get_columnzArrowDataFrame.get_column  sD   € Ü˜$¤Ô$Ø'¬¨T«
 |Ð4ˆCÜ˜C“.Ð Ü×&Ñ& t§{¡{°4Ñ'8À$ÈTÔRÐRrV   c               ó<   — | j                   j                  ||¬«      S )N©Úcopy)rk   Ú	__array__)rP   rs   rØ   s      rT   rÙ   zArrowDataFrame.__array__  s   € Ø�{‰{×$Ñ$ U°Ð$Ó6Ð6rV   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®   rk   Úslicer^   r`   r¶   rÃ   r·   )rP   r¾   s     rT   Ú_gatherzArrowDataFrame._gather  so   € Üˆt‹9˜Š>Ø×$Ñ$ T§[¡[×%6Ñ%6°q¸!Ó%<Ó=Ð=Ø× Ñ  5Ò(¬Z¸¼eÔ-DÜ˜“:ˆDØ× Ñ  §¡×!1Ñ!1°$Ó!7Ó8Ð8rV   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²   rk   Ústepr‚   r®   rÜ   )rP   r¾   rà   rá   rl   s        rT   Ú_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ÐHrV   c                óª   — t        || j                  «      \  }}}| j                  | j                  j	                  | j                  |||…   «      «      S rK   )r   rÊ   r®   rk   Úselect)rP   rÊ   rà   rá   râ   s        rT   Ú_select_slice_namez!ArrowDataFrame._select_slice_name1  sH   € Ü:¸7ÀDÇLÁLÓQÑˆˆt�TØ× Ñ  §¡×!3Ñ!3°D·L±LÀÀtÈDÀÑ4QÓ!RÓSÐSrV   c                ó²   — | j                  | j                  j                  | j                  |j                  |j
                  |j                  …   «      «      S rK   )r®   rk   rå   rÊ   rà   rá   râ   )rP   rÊ   s     rT   Ú_select_slice_indexz"ArrowDataFrame._select_slice_index5  sC   € Ø× Ñ Ø�K‰K×Ñ˜tŸ|™|¨G¯M©M¸G¿L¹LÈ7Ï<É<Ð,WÑXÓYó
ð 	
rV   c                ó  — t        |t        j                  «      rt        d|j	                  «       «      }n't        |«      r|j                  «       }nt        r|}n|}| j                  | j                  j                  |«      «      S )NzSequence[int])r`   ra   ÚChunkedArrayr   r¸   r   ÚtolistrF   r®   rk   rå   ©rP   rÊ   Úselectors      rT   Ú_select_multi_indexz"ArrowDataFrame._select_multi_index:  sj   € ô �gœrŸ™Ô/ä˜O¨W×->Ñ->Ó-@ÓA‰Hô ˜wÔ'Ø—~‘~Ó'‰HÝØ‰HàˆHØ× Ñ  §¡×!3Ñ!3°HÓ!=Ó>Ð>rV   c                óÄ   — t        |t        j                  «      rt        d|j	                  «       «      }n|}| j                  | j                  j                  |«      «      S )NúSequence[str])r`   ra   rê   r   r¸   r®   rk   rå   rì   s      rT   Ú_select_multi_namez!ArrowDataFrame._select_multi_nameK  sL   € ô �gœrŸ™Ô/ä˜O¨W×->Ñ->Ó-@ÓA‰HàˆHà× Ñ  §¡×!3Ñ!3°HÓ!=Ó>Ð>rV   c                ó¦   — | j                   j                  D �ci c]-  }|j                  t        |j                  | j
                  «      “Œ/ c}S c c}w rK   )rk   ry   r†   r   rc   rO   )rP   Úfields     rT   ry   zArrowDataFrame.schemaW  sG   € ð Ÿ™×+Ñ+ö
àð �J‰JÔ0°·±¸T¿]¹]ÓKÑKò
ð 	
ùò 
s   ™2Ac                ó   — | j                   S rK   rx   r£   s    rT   Úcollect_schemazArrowDataFrame.collect_schema^  ó   € Ø�{‰{ÐrV   c                óF   — | j                   j                  }t        ||«      S rK   )rk   Únbytesr   )rP   ÚunitÚszs      rT   Úestimated_sizezArrowDataFrame.estimated_sizea  s   € Ø�[‰[×ÑˆÜ˜2˜tÓ$Ð$rV   c                ó.   — | j                   j                  S rK   )rk   rL   r£   s    rT   rÊ   zArrowDataFrame.columnsg  s   € à�{‰{×'Ñ'Ð'rV   c                ól   — | j                  | j                  j                  t        |«      «      d¬«      S ©NFr«   )r®   rk   rå   rÃ   )rP   rL   s     rT   Úsimple_selectzArrowDataFrame.simple_selectk  s3   € Ø× Ñ Ø�K‰K×Ñœt LÓ1Ó2È%ð !ó 
ð 	
rV   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®   rk   r©   r•   r†   Ú_align_full_broadcastra   r€   )rP   ÚexprsÚ
new_seriesÚsr  ÚalignÚreshapedr­   s           rT   rå   zArrowDataFrame.selectp  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: rZ   r   )r²   Ú
_broadcastr   rk   ra   r„   r   )rP   ÚotherÚlengthÚ	len_otherrl   Úvalues         rT   Ú_extract_comparandz!ArrowDataFrame._extract_comparand}  sy   € Ü�T“ˆØ×ÒÜ  ›ZÐ'�	¨FÒ2Ø2°6°(¸'À)ÀÈAÐN�Ü  “oÐ%Ø—<‘<Ðà—‘˜Q‘ˆÜ×Ñ¤§¡¨5°&Ó!9Ð :Ó;Ð;rV   c                ó2  — | j                   } | j                  |Ž }| j                  }|D ]Y  }|j                  }| j	                  |«      }||v r#|j                  |j                  |«      ||¬«      n|j                  ||¬«      }Œ[ | j                  |d¬«      S )N)ÚcolumnFr«   )	rk   r  rÊ   r†   r  Ú
set_columnr¹   Úappend_columnr®   )rP   r  Únative_frameÚnew_columnsrÊ   Ú	col_valueÚcol_namer  s           rT   Úwith_columnszArrowDataFrame.with_columnsˆ  s«   € ð —{‘{ˆØ*�d×*Ñ*¨EÐ2ˆØ—,‘,ˆà$ò 	ˆIØ —~‘~ˆHØ×,Ñ,¨YÓ7ˆFð ˜wÑ&ð ×'Ñ'¨¯©°hÓ(?ÀÐRXÐ'ÔYà!×/Ñ/°ÀÐ/ÓHñ ð	ð × Ñ  ÀUÐ ÓKÐKrV   c               ó$   — ddl m}  || ||¬«      S )Nr   r(   )Údrop_null_keys)Únarwhals._arrow.group_byr)   )rP   Úkeysr  r)   s       rT   Úgroup_byzArrowDataFrame.group_byš  s   € õ 	:á˜D $°~ÔFÐFrV   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Ú	broadcastrk   ÚjoinÚdrop)
rP   r  ÚhowÚleft_onÚright_onÚsuffixÚhow_to_join_mapÚplxÚ	key_tokenr*  s
             rT   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×ÑØ—‘Ø’] Ø#Ø)¨#Ñ.Ø#Ø+ð ó ó	
ð 		
rV   c               óv   — t        | ||¬«      }| j                  | j                  j                  |«      d¬«      S )NrÆ   Fr«   )r   r®   rk   r/  )rP   rÊ   rÇ   Úto_drops       rT   r/  zArrowDataFrame.dropÔ  s6   € Ü'¨¨g¸fÔEˆØ× Ñ  §¡×!1Ñ!1°'Ó!:ÐRWÐ ÓXÐXrV   c                óü   — |€+| j                  | j                  j                  «       d¬«      S | j                  «       }|j	                   |j
                  |Ž j                  «       d¬«       }| j                  |«      S )NFr«   T)Úignore_nulls)r®   rk   Ú	drop_nullrœ   Úany_horizontalÚcolÚis_nullÚfilter)rP   Úsubsetr5  Úmasks       rT   Ú
drop_nullszArrowDataFrame.drop_nullsØ  st   € Øˆ>Ø×$Ñ$ T§[¡[×%:Ñ%:Ó%<ÐTYÐ$ÓZÐZØ×)Ñ)Ó+ˆØ×"Ñ" 7 3§7¡7¨FÐ#3×#;Ñ#;Ó#=ÈDÐ"ÓQÐQˆØ�{‰{˜4Ó Ð rV   c               ó  — t        |t        «      r|rdnd}|D �cg c]  }||f‘Œ }}n&t        ||d¬«      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Ú	ascendingTrÆ   Úat_endÚat_start)Únull_placementFr«   )r`   ÚboolrÉ   r®   rk   Úsort_by)	rP   rD  Ú
nulls_lastÚbyÚorderÚkeyÚsortingÚis_descendingrH  s	            rT   ÚsortzArrowDataFrame.sortß  s©   € Ü�j¤$Ô'Ù+5™<¸;ˆEØHJÖ/KÀ°°e²Ð/KˆGÑ/Kô +.¨b°*ÀTÔ*J÷á&�C˜ð ¡m‘l¸ÒEðˆGñ ñ
 &0™°Zˆà× Ñ Ø�K‰K×Ñ ¸ÐÓGØ"'ð !ó 
ð 	
ùò 0Lùós
   ›BºBc          	     óJ  — t        |t        «      r|rdnd}|D �cg c]  }||f‘Œ }}n&t        ||d¬«      D ��cg c]  \  }}||rdndf‘Œ }}}| j                  | j                  j                  t        j                  | j                  ||«      «      d¬«      S c c}w c c}}w )NrE  rD  TrÆ   Fr«   )r`   rI  rÉ   r®   rk   r·   ÚpcÚselect_k_unstable)rP   ÚkrL  ÚreverserM  rN  rO  Úis_ascendings           rT   Útop_kzArrowDataFrame.top_kð  s®   € Ü�gœtÔ$Ù*1™;°|ˆEØHJÖ/KÀ°°e²Ð/KˆGÑ/Kô *-¨R°ÀÔ)F÷á%�C˜ð ¡\‘k°|ÒDðˆGñ ð × Ñ Ø�K‰K×ÑœR×1Ñ1°$·+±+¸qÀ'ÓJÓKØ"'ð !ó 
ð 	
ùò 0Lùós
   ›BºBc                ó6   — | j                   j                  «       S rK   )rk   Ú	to_pandasr£   s    rT   rZ  zArrowDataFrame.to_pandasþ  s   € Ø�{‰{×$Ñ$Ó&Ð&rV   c                óB   — dd l } |j                  | j                  «      S rµ   )Úpolarsrm   rk   )rP   Úpls     rT   Ú	to_polarszArrowDataFrame.to_polars  s   € Ûàˆr�}‰}˜TŸ[™[Ó)Ð)rV   Nr×   c               óš   — dd l }|j                  | j                  j                  D �cg c]  }|j	                  «       ‘Œ c}«      }|S c c}w rµ   )ÚnumpyÚcolumn_stackrk   rÊ   Úto_numpy)rP   rs   rØ   Únpr=  Úarrs         rT   rb  zArrowDataFrame.to_numpy  s9   € Ûà—?‘?¸d¿k¹k×>QÑ>QÖ#R°s C§L¡L¥NÒ#RÓSˆØˆ
ùò $Ss   ¨Ac                ó   — y rK   rp   ©rP   Ú	as_seriess     rT   Úto_dictzArrowDataFrame.to_dict  s   € ØNQrV   c                ó   — y rK   rp   rf  s     rT   rh  zArrowDataFrame.to_dict  s   € ØMPrV   c               óÂ   — | j                  «       }|r|D �ci c]  }|j                  |“Œ c}S |D �ci c]  }|j                  |j                  «       “Œ c}S c c}w c c}w rK   )rÍ   r†   Úto_list)rP   rg  ÚitÚsers       rT   rh  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È   rE  )é   )rœ   r   r²   Ú_exprÚ_from_seriesÚ_seriesÚfrom_iterablerå   ÚallrS  Úsort_indicesrk   r^   r·   Úscatterr   ra   Úint64r®   Ú
add_column)	rP   r†   Úorder_byr5  ri   Ú	row_indexrL  ÚindicesÚnew_cols	            rT   Ú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_exprrk   r®   r?  )rP   Ú	predicateÚmask_natives      rT   r?  zArrowDataFrame.filter)  sD   € Ø×7Ñ7¸	ÓB×IÑIˆØ× Ñ Ø�K‰K×Ñ˜{Ó+À5ð !ó 
ð 	
rV   c           
     óâ   — | j                   }|dk\  r#| j                  |j                  d|«      d¬«      S |j                  }| j                  |j                  dt	        d||z   «      «      d¬«      S ©Nr   Fr«   )rk   r®   rÜ   rÏ   Úmax©rP   Únr­   rÏ   s       rT   ÚheadzArrowDataFrame.head/  sn   € Ø�[‰[ˆØ�Š6Ø×$Ñ$ R§X¡X¨a°£^È5Ð$ÓQÐQØ—;‘;ˆØ× Ñ Ø�H‰H�Qœ˜A˜x¨!™|Ó,Ó-ÀUð !ó 
ð 	
rV   c           	     óð   — | j                   }|dk\  r;|j                  }| j                  |j                  t	        d||z
  «      «      d¬«      S | j                  |j                  t        |«      «      d¬«      S rƒ  )rk   rÏ   r®   rÜ   r„  Úabsr…  s       rT   ÚtailzArrowDataFrame.tail8  sq   € Ø�[‰[ˆØ�Š6Ø—{‘{ˆHØ×$Ñ$Ø—‘œ˜Q ¨1¡Ó-Ó.Àeð %ó ð ð × Ñ  §¡¬#¨a«&Ó!1ÈÐ ÓOÐOrV   )Ú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©rI   rR   )ÚPolarsLazyFrameúpl.DataFrame)ÚDaskLazyFrame)ÚIbisLazyFrame)rÊ   )ÚSparkLikeLazyFramez5Spark like backends require `session` to be not None.)r‹  ÚimplementationrR   )"r   ÚDUCKDBÚduckdbÚnarwhals._duckdb.dataframer�  rk   rb   rO   ÚPOLARSr\  Únarwhals._polars.dataframer�  r   rm   ÚlazyÚDASKÚdask.dataframeÚ	dataframeÚnarwhals._dask.dataframer’  Úfrom_pandasrZ  ÚIBISÚibisÚnarwhals._ibis.dataframer“  ÚmemtablerÊ   Úis_spark_likeÚnarwhals._spark_like.dataframer”  Ú
ValueErrorÚ_from_compliant_dataframer    )rP   Úbackendr‹  r—  r�  rŽ  r]  r�  Úddr’  r¢  r“  r”  rl   s                 rT   r›  zArrowDataFrame.lazyA  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Ç}Á}ð @ó ð ô ÐrV   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   )rH   Fr‘   )ÚPandasLikeDataFrameT)r•  rI   rR   rS   )ÚPolarsDataFramer‘  r�  zUnsupported `backend` value: )r   rž   Únarwhals._arrow.dataframerH   rk   rO   ÚPANDASÚnarwhals._pandas_like.dataframer¬  rZ  r™  r\  rš  r­  r   rm   r    )rP   r©  ÚkwargsrH   r¬  r]  r­  rl   s           rT   ÚcollectzArrowDataFrame.collect~  sÚ   € ð ”n×,Ñ,Ñ,°°Ý@á!Ø—‘ T§]¡]È%ôð ð ”n×+Ñ+Ñ+ÝKá&Ø—‘×%Ñ%Ó'Ü-×4Ñ4Ø)-ØŸ™Ø&+ôð ð ”n×+Ñ+Ñ+ÛåBá"Ü�^ ] R§]¡]°4·;±;Ó%?Ó@Ø)-ØŸ™ôð ð .¨g¨YÐ7ˆÜ˜SÓ!Ð!rV   c                ó<   — | j                  | j                  d¬«      S rþ   ©r®   rk   r£   s    rT   ÚclonezArrowDataFrame.clone¡  s   € Ø× Ñ  §¡ÀEÐ ÓJÐJrV   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§  rk   r`   rÔ   rÊ   r¹   )rP   rº   r  r·  r°   rl   Ú_cols          rT   Ú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ÐUrV   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®   rk   Úrename_columns)rP   Úmappingr  Úcs       rT   Ú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_tablerk   )rP   ÚfileÚpps      rT   Úwrite_parquetzArrowDataFrame.write_parquet¿  s   € Ý$à
�‰�t—{‘{ DÕ)rV   c                 ó   — y rK   rp   ©rP   rÇ  s     rT   Ú	write_csvzArrowDataFrame.write_csvÄ  s   € Ø,/rV   c                 ó   — y rK   rp   rË  s     rT   rÌ  zArrowDataFrame.write_csvÇ  s   € Ø=@rV   c                ó  — dd l m} |€\t        j                  «       }|j	                  | j
                  |«       |j                  «       j                  «       j                  «       S |j	                  | j
                  |«       y rµ   )	Úpyarrow.csvÚcsvra   ÚBufferOutputStreamrÌ  rk   ÚgetvalueÚ
to_pybytesÚdecode)rP   rÇ  Úpa_csvÚ
csv_buffers       rT   rÌ  zArrowDataFrame.write_csvÊ  sd   € Ý$àˆ<Ü×.Ñ.Ó0ˆJØ×Ñ˜TŸ[™[¨*Ô5Ø×&Ñ&Ó(×3Ñ3Ó5×<Ñ<Ó>Ð>Ø×Ñ˜Ÿ™ dÔ+ØrV   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Ú_maxr[   )r`  r   rÊ   ra   r”   r   r²   rk   r  r  Ú	aggregater„   rS  Úand_Úis_inr   rg   )rP   rc  Ú	col_tokenrz  Úkeep_idxrk   s         rT   Ú	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Ô<Ð<rV   )Ú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   >   r{   ÚlastÚfirstr(   r$  r%  )ry  F)rK  rD  )r@  Úkeeprá  ry  )rD  rK  rÆ   Ú_r«   )r`  Ú_check_columns_existrÃ   rÊ   r  r)   Ú_REMAP_UNIQUEr   r}  rQ  Úuniquer/  rk   r  ra   r”   r   r²   r  rÛ  r  r®   r·   rÿ   rà  rœ   r?  rp  rq  )rP   r@  rå  rá  ry  rc  Úerrorr)   Úagg_funcrÞ  Ú	idx_tokenr­   rk   Úkeep_idx_nativerß  r5  s                   rT   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°(Ó;Ó<Ð<rV   c                óH   — | j                  | j                  |d |…   d¬«      S rþ   r´  )rP   r†  Úoffsets      rT   Úgather_everyzArrowDataFrame.gather_every  s'   € Ø× Ñ  §¡¨V¨Y°Q¨YÑ!7ÈuÐ ÓUÐUrV   c                ó   — | j                   S rK   )rk   r£   s    rT   r~   zArrowDataFrame.to_arrow  rö   rV   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®   rk   r·   )
rP   r†  ÚfractionÚwith_replacementró  rc  rÏ   ÚrngÚidxrA  s
             rT   ÚsamplezArrowDataFrame.sample  sˆ   € ó 	ä�t“9ˆØˆ9˜Ð-Ü�H˜xÑ'Ó(ˆAØ�i‰i×#Ñ#¨Ð#Ó.ˆØ�i‰i˜Ó!ˆØ�z‰z˜# AÐ/?ˆzÓ@ˆØ× Ñ  §¡×!1Ñ!1°$Ó!7ÈuÐ ÓUÐUrV   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rK   rp   )rr   rÁ  r¹   s     €rT   rt   z)ArrowDataFrame.unpivot.<locals>.<genexpr><  s   øè ø€ Ò9�Q¨!°5ª.ŒqÑ9ùs   ƒ	�c              3  ó‚   •K  — | ]6  }‰j                  ‰t        |‰«      «      j                  ‰ ‰|«      «      –— Œ8 y ­wrK   )r  r   )rr   r†   r  Ú
index_colsr†  Ú
value_nameÚvariable_names     €€€€€rT   rt   z)ArrowDataFrame.unpivot.<locals>.<genexpr>?  sB   øè ø€ ò 
ð ð ×$Ñ$ ]´F¸4À³OÓD×RÑRØ™F 4›L÷ñ
ùs   ƒ<?Ú
permissive)	r²   rÃ   rÊ   Úiterrk   rå   r  r®   r   )
rP   Úonr¹   r  r  Úon_Útablesr  r  r†  s
     ```  @@@rT   ÚunpivotzArrowDataFrame.unpivot1  s…   ý€ ô �‹IˆØ�m‘¬¨e«ˆØ=?¸ZÓ9˜$Ÿ,™,Õ9ÌTÐRTËXˆØ—[‘[×'Ñ'¨Ó.ˆ
Ø—‘×#Ñ#ˆ÷
ð ô	
ˆð × Ñ ¤¨v°|Ó!DÓEÐErV   )
rQ   úpa.TablerR   r   rS   rI  rI   rI  ÚreturnÚNone)ri   r1   r\   r4   r  r%   )ri   zMapping[str, Any]r\   r4   ry   ú.IntoSchema | Mapping[str, DType | None] | Noner  r%   )ri   zSequence[Mapping[str, Any]]r\   r4   ry   r  r  r%   )r�   zpa.Table | Anyr  zTypeIs[pa.Table])ri   r  r\   r4   r  r%   )ri   r=   r\   r4   ry   z!IntoSchema | Sequence[str] | Noner  r%   )r  r+   )r  r#   )r  r%   )rR   r   r  r%   )r­   r  rS   rI  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½   rI  r  z,list[tuple[Any, ...]] | list[dict[str, Any]])r  zIterator[ArrowSeries])r½   rI  rÂ   rö  r  z4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])r†   rÔ   r  r   )rs   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])rL   rÔ   r  r%   )r  r'   r  r%   )r  r   r  r,   )r  z#Sequence[str] | Sequence[ArrowExpr]r  rI  r  r)   )r  r%   r0  r7   r1  úSequence[str] | Noner2  r  r3  rÔ   r  r%   )rÊ   rð   rÇ   rI  r  r%   )r@  r  r  r%   )rL  rÔ   rD  úbool | Sequence[bool]rK  rI  r  r%   )rU  rö  rL  zIterable[str]rV  r  r  r%   )r  zpd.DataFrame)r  r‘  rK   )rg  r  r  zdict[str, ArrowSeries])rg  r  r  zdict[str, list[Any]])rg  rI  r  z-dict[str, ArrowSeries] | dict[str, list[Any]])r†   rÔ   ry  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  ry  r  r  r%   )r†  rö  rï  rö  r  r%   )r  r  )
r†  r  rú  zfloat | Nonerû  rI  ró  r  r  r%   )
r  r  r¹   r  r  rÔ   r  rÔ   r  r%   )Mrd   Ú
__module__Ú__qualname__r   rž   r]   rU   Úclassmethodrm   r‰   r�   Ústaticmethodr_   rg   r™   rœ   r¡   r¤   r§   rª   r®   Úpropertyr°   r³   rº   r   r¾   rÍ   Ú_iter_columnsrÄ   rÕ   rÙ   rÝ   rã   ræ   rè   rî   rñ   ry   rõ   rû   r   ÚexploderÊ   rÿ   rå   r  r  r  r.  Ú	join_asofr/  rB  rQ  rX  rZ  r^  rb  rh  r}  r?  r‡  rŠ  r›  r²  rµ  r»  rÂ  rÉ  rÌ  rà  ré  rð  r~   rþ  r
  Úpivotrp   rV   rT   rH   rH   S   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ñ, Ó�ErV   rH   )r   r'   r  r,   )_Ú
__future__r   Úcollections.abcr   r   r   r   Útypingr   r	   r
   r   r   r   Úpyarrowra   Úpyarrow.computeÚcomputerS  r¹  r   Únarwhals._arrow.utilsr   r   r   r   r   Únarwhals._compliantr   Únarwhals._utilsr   r   r   r   r   r   r   r   r   Únarwhals.dependenciesr   Únarwhals.exceptionsr   r    Úior!   Úpathlibr"   Útypesr#   r$   ÚpandasÚpdr\  r]  Útyping_extensionsr%   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__rF   rH   rp   rV   rT   ú<module>r:     sÉ   ðÞ "ç CÓ Cß E× Eã Ý å .÷õ õ /÷
÷ 
õ 
õ 4Ý *áÝ(ÝÝÝ Ý ãÛß.å.Ý5Ý8÷÷ XÝ7Ý2ßDß8Ý%÷÷ ÷ ð "ð	ñ	€Hˆió 	ð €€eÓ ôtØÐLÑMõtrV   