Ë
    7Ò^jðz  ã                  ó,  — 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% 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l/m0Z0 d dlm1Z1 d dl2Z3d dl4Z5d dl6m7Z7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@mAZA d dlBmCZCmDZD d dlEmFZF d dlGmHZH d dlImJZJmKZK d dlmLZLmMZM d dlNmOZO d dlPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[ 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Ú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)ÚVersionÚ_LimitedContext)ÚDType)Ú	IntoDTypeÚ
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„ZIdŠ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_namesrJ   s        úd/var/www/ramen.bs-engineer-server.com/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         rU   Ú
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Ð7rW   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rL   © ©Ú.0Údtypes     rU   ú	<genexpr>z+ArrowDataFrame.from_dict.<locals>.<genexpr>ƒ   s   è ø€ Ò> U�5˜D”=Ñ>ùó   ‚r   ©ÚSchemar7   ©ÚschemarY   z8Passing `None` dtype in `from_dict` requires PyArrow>=14©rS   ©rd   )rh   rb   rc   ÚanyÚvaluesÚnarwhals.schemarx   r   Úto_arrowÚempty_tableÚTableÚfrom_pydictr^   r_   ÚNotImplementedErrorÚitemsÚchunked_arrayr   rP   )ri   rj   r]   rz   rx   Ú	pa_schemarl   rm   ÚnameÚnw_dtypeÚress              rU   Ú	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   rw   c              3  ó$   K  — | ]  }|d u –— Œ
 y ­wrL   rq   rr   s     rU   ru   z,ArrowDataFrame.from_dicts.<locals>.<genexpr>§   s   è ø€ ÒE¨E˜% 4œ-ÑEùrv   zR`from_dicts` with `schema` where any dtype is `None` is not supported for PyArrow.r7   ry   r\   )r   rx   r}   r~   r„   r   r€   r�   rb   r‚   Úfrom_pylistrh   )ri   rj   r]   rz   rx   rm   r‡   rl   s           rU   Ú
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Ð7rW   c                ó6   — t        | t        j                  «      S rL   )ra   rb   r‚   )Úobjs    rU   r`   zArrowDataFrame._is_nativeµ   s   € ä˜#œrŸx™xÓ(Ð(rW   c              ó,   —  | ||j                   d¬«      S )NT©rS   rT   )rP   )ri   rj   r]   s      rU   rh   zArrowDataFrame.from_native¹   s   € á�4 ×!1Ñ!1ÈÔNÐNrW   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   rw   ry   r\   )r   rx   ÚTrb   Úarrayra   r   r‚   Úfrom_arraysr€   Ú_numpy_column_namesrh   )ri   rj   r]   rz   rx   ÚvalÚarraysrl   s           rU   Ú
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)   r{   )Únarwhals._arrow.namespacer*   rP   )rQ   r*   s     rU   Ú__narwhals_namespace__z%ArrowDataFrame.__narwhals_namespace__Ï   s   € Ý<á d§m¡mÔ4Ð4rW   c                ó´   — | j                   t        j                  u r| j                   j                  «       S dt	        | j                   «      › �}t        |«      ‚)NzExpected pyarrow, got: )r^   r   ÚPYARROWÚto_native_namespacerd   ÚAssertionError)rQ   rm   s     rU   Ú__native_namespace__z#ArrowDataFrame.__native_namespace__Ô   sN   € Ø×Ñ¤>×#9Ñ#9Ñ9Ø×'Ñ'×;Ñ;Ó=Ð=à'¬¨T×-AÑ-AÓ(BÐ'CÐDˆÜ˜SÓ!Ð!rW   c                ó   — | S rL   rq   ©rQ   s    rU   Ú__narwhals_dataframe__z%ArrowDataFrame.__narwhals_dataframe__Û   ó   € ØˆrW   c                ó   — | S rL   rq   r¥   s    rU   Ú__narwhals_lazyframe__z%ArrowDataFrame.__narwhals_lazyframe__Þ   r§   rW   c                ó>   — | j                  | j                  |d¬«      S )NFr“   )Ú	__class__rl   )rQ   rS   s     rU   Ú_with_versionzArrowDataFrame._with_versioná   s   € Ø�~‰~˜dŸk™k°7ÐRWˆ~ÓXÐXrW   T©rT   c               ó>   — | j                  || j                  |¬«      S )Nr“   )r«   rP   )rQ   ÚdfrT   s      rU   Ú_with_nativezArrowDataFrame._with_nativeä   s$   € Ø�~‰~Ø˜Ÿ™Ð=Rð ó 
ð 	
rW   c                ó.   — | j                   j                  S rL   )rl   Úshaper¥   s    rU   r²   zArrowDataFrame.shapeé   s   € à�{‰{× Ñ Ð rW   c                ó,   — t        | j                  «      S rL   )Úlenrl   r¥   s    rU   Ú__len__zArrowDataFrame.__len__í   s   € Ü�4—;‘;ÓÐrW   c                óŠ   — t        | j                  j                  |g«      j                  «       d   j	                  «       «      S ©Nr   )Útuplerl   ÚtakeÚ	to_pylistr~   )rQ   Úindexs     rU   ÚrowzArrowDataFrame.rowð   s5   € Ü�T—[‘[×%Ñ% u gÓ.×8Ñ8Ó:¸1Ñ=×DÑDÓFÓGÐGrW   c                ó   — y rL   rq   ©rQ   Únameds     rU   ÚrowszArrowDataFrame.rowsó   s   € ØEHrW   c                ó   — y rL   rq   r¾   s     rU   rÀ   zArrowDataFrame.rowsö   s   € ØGJrW   c                ó   — y rL   rq   r¾   s     rU   rÀ   zArrowDataFrame.rowsù   s   € ØTWrW   c               ór   — |st        | j                  dd¬«      «      S | j                  j                  «       S )NFi   )r¿   Úbuffer_size)ÚlistÚ	iter_rowsrl   rº   r¾   s     rU   rÀ   zArrowDataFrame.rowsü   s0   € ÙÜ˜Ÿ™¨UÀ˜ÓDÓEÐEØ�{‰{×$Ñ$Ó&Ð&rW   c              #  ó°   K  — t        | j                  | j                  j                  «       d¬«      D ]  \  }}t	        j
                  || |¬«      –— Œ! y ­w)NT©Ústrict©r]   rˆ   )ÚzipÚcolumnsrl   Úitercolumnsr   rh   )rQ   rˆ   Úseriess      rU   Ú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)rl   Únum_rowsÚrangeÚ	to_pydictr~   rË   rº   )rQ   r¿   rÄ   r¯   rÑ   ÚirÀ   s          rU   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Ê   )ra   Ústrrd   rg   r   rh   rl   )rQ   rˆ   rm   s      rU   Ú
get_columnzArrowDataFrame.get_column  sD   € Ü˜$¤Ô$Ø'¬¨T«
 |Ð4ˆCÜ˜C“.Ð Ü×&Ñ& t§{¡{°4Ñ'8À$ÈTÔRÐRrW   c               ó<   — | j                   j                  ||¬«      S )N©Úcopy)rl   Ú	__array__)rQ   rt   rÚ   s      rU   rÛ   zArrowDataFrame.__array__  s   € Ø�{‰{×$Ñ$ U°Ð$Ó6Ð6rW   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°   rl   Úslicer_   ra   r¸   rÅ   r¹   )rQ   rÀ   s     rU   Ú_gatherzArrowDataFrame._gather  so   € Üˆt‹9˜Š>Ø×$Ñ$ T§[¡[×%6Ñ%6°q¸!Ó%<Ó=Ð=Ø× Ñ  5Ò(¬Z¸¼eÔ-DÜ˜“:ˆDØ× Ñ  §¡×!1Ñ!1°$Ó!7Ó8Ð8rW   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´   rl   Ústepr„   r°   rÞ   )rQ   rÀ   râ   rã   rm   s        rU   Ú_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ÐHrW   c                óª   — t        || j                  «      \  }}}| j                  | j                  j	                  | j                  |||…   «      «      S rL   )r   rÌ   r°   rl   Úselect)rQ   rÌ   râ   rã   rä   s        rU   Ú_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ÐSrW   c                ó²   — | j                  | j                  j                  | j                  |j                  |j
                  |j                  …   «      «      S rL   )r°   rl   rç   rÌ   râ   rã   rä   )rQ   rÌ   s     rU   Ú_select_slice_indexz"ArrowDataFrame._select_slice_index5  sC   € Ø× Ñ Ø�K‰K×Ñ˜tŸ|™|¨G¯M©M¸G¿L¹LÈ7Ï<É<Ð,WÑXÓYó
ð 	
rW   c                ó  — t        |t        j                  «      rt        d|j	                  «       «      }n't        |«      r|j                  «       }nt        r|}n|}| j                  | j                  j                  |«      «      S )NzSequence[int])ra   rb   ÚChunkedArrayr   rº   r   ÚtolistrG   r°   rl   rç   ©rQ   rÌ   Úselectors      rU   Ú_select_multi_indexz"ArrowDataFrame._select_multi_index:  sj   € ô �gœrŸ™Ô/ä˜O¨W×->Ñ->Ó-@ÓA‰Hô ˜wÔ'Ø—~‘~Ó'‰HÝØ‰HàˆHØ× Ñ  §¡×!3Ñ!3°HÓ!=Ó>Ð>rW   c                óÄ   — t        |t        j                  «      rt        d|j	                  «       «      }n|}| j                  | j                  j                  |«      «      S )NúSequence[str])ra   rb   rì   r   rº   r°   rl   rç   rî   s      rU   Ú_select_multi_namez!ArrowDataFrame._select_multi_nameK  sL   € ô �gœrŸ™Ô/ä˜O¨W×->Ñ->Ó-@ÓA‰HàˆHà× Ñ  §¡×!3Ñ!3°HÓ!=Ó>Ð>rW   c                ó¦   — | j                   j                  D �ci c]-  }|j                  t        |j                  | j
                  «      “Œ/ c}S c c}w rL   )rl   rz   rˆ   r   rd   rP   )rQ   Úfields     rU   rz   zArrowDataFrame.schemaW  sG   € ð Ÿ™×+Ñ+ö
àð �J‰JÔ0°·±¸T¿]¹]ÓKÑKò
ð 	
ùò 
s   ™2Ac                ó   — | j                   S rL   ry   r¥   s    rU   Úcollect_schemazArrowDataFrame.collect_schema^  ó   € Ø�{‰{ÐrW   c                óF   — | j                   j                  }t        ||«      S rL   )rl   Únbytesr   )rQ   ÚunitÚszs      rU   Úestimated_sizezArrowDataFrame.estimated_sizea  s   € Ø�[‰[×ÑˆÜ˜2˜tÓ$Ð$rW   c                ó.   — | j                   j                  S rL   )rl   rM   r¥   s    rU   rÌ   zArrowDataFrame.columnsg  s   € à�{‰{×'Ñ'Ð'rW   c                ól   — | j                  | j                  j                  t        |«      «      d¬«      S ©NFr­   )r°   rl   rç   rÅ   )rQ   rM   s     rU   Úsimple_selectzArrowDataFrame.simple_selectk  s3   € Ø× Ñ Ø�K‰K×Ñœt LÓ1Ó2È%ð !ó 
ð 	
rW   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°   rl   r«   r—   rˆ   Ú_align_full_broadcastrb   r‚   )rQ   ÚexprsÚ
new_seriesÚsr  ÚalignÚreshapedr¯   s           rU   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: r[   r   )r´   Ú
_broadcastr   rl   rb   r†   r   )rQ   ÚotherÚlengthÚ	len_otherrm   Úvalues         rU   Ú_extract_comparandz!ArrowDataFrame._extract_comparand}  sy   € Ü�T“ˆØ×ÒÜ  ›ZÐ'�	¨FÒ2Ø2°6°(¸'À)ÀÈAÐN�Ü  “oÐ%Ø—<‘<Ðà—‘˜Q‘ˆÜ×Ñ¤§¡¨5°&Ó!9Ð :Ó;Ð;rW   c                ó2  — | j                   } | j                  |Ž }| j                  }|D ]Y  }|j                  }| j	                  |«      }||v r#|j                  |j                  |«      ||¬«      n|j                  ||¬«      }Œ[ | j                  |d¬«      S )N)ÚcolumnFr­   )	rl   r  rÌ   rˆ   r  Ú
set_columnr»   Úappend_columnr°   )rQ   r  Únative_frameÚnew_columnsrÌ   Ú	col_valueÚcol_namer  s           rU   Úwith_columnszArrowDataFrame.with_columnsˆ  s«   € ð —{‘{ˆØ*�d×*Ñ*¨EÐ2ˆØ—,‘,ˆà$ò 	ˆIØ —~‘~ˆHØ×,Ñ,¨YÓ7ˆFð ˜wÑ&ð ×'Ñ'¨¯©°hÓ(?ÀÐRXÐ'ÔYà!×/Ñ/°ÀÐ/ÓHñ ð	ð × Ñ  ÀUÐ ÓKÐKrW   c               ó$   — ddl m}  || ||¬«      S )Nr   r'   )Údrop_null_keys)Únarwhals._arrow.group_byr(   )rQ   Úkeysr  r(   s       rU   Úgroup_byzArrowDataFrame.group_byš  s   € õ 	:á˜D $°~ÔFÐFrW   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 )NrB   rA   rC   rD   rE   )ÚantiÚsemirC   Ú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Ú	broadcastrl   ÚjoinÚdrop)
rQ   r  ÚhowÚleft_onÚright_onÚsuffixÚhow_to_join_mapÚplxÚ	key_tokenr,  s
             rU   r0  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×ÑØ—‘Ø’] Ø#Ø)¨#Ñ.Ø#Ø+ð ó ó	
ð 		
rW   c               óv   — t        | ||¬«      }| j                  | j                  j                  |«      d¬«      S )NrÈ   Fr­   )r   r°   rl   r1  )rQ   rÌ   rÉ   Úto_drops       rU   r1  zArrowDataFrame.dropÔ  s6   € Ü'¨¨g¸fÔEˆØ× Ñ  §¡×!1Ñ!1°'Ó!:ÐRWÐ ÓXÐXrW   c                óü   — |€+| j                  | j                  j                  «       d¬«      S | j                  «       }|j	                   |j
                  |Ž j                  «       d¬«       }| j                  |«      S )NFr­   T)Úignore_nulls)r°   rl   Ú	drop_nullrž   Úany_horizontalÚcolÚis_nullÚfilter)rQ   Úsubsetr7  Úmasks       rU   Ú
drop_nullszArrowDataFrame.drop_nullsØ  st   € Øˆ>Ø×$Ñ$ T§[¡[×%:Ñ%:Ó%<ÐTYÐ$ÓZÐZØ×)Ñ)Ó+ˆØ×"Ñ" 7 3§7¡7¨FÐ#3×#;Ñ#;Ó#=ÈDÐ"ÓQÐQˆØ�{‰{˜4Ó Ð rW   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                  dk  r.| j	                  | j
                  j                  ||¬«      d	¬
«      S |D ��cg c]
  \  }}|||f‘Œ }	}}| j	                  | j
                  j                  |	«      d	¬
«      S c c}w c c}}w c c}}w )NÚ
descendingÚ	ascendingTrÈ   Úat_endÚat_start)é   )Únull_placementFr­   )ra   ÚboolrË   r_   r°   rl   Úsort_by)
rQ   rF  Ú
nulls_lastÚbyÚorderÚkeyÚsortingÚis_descendingrK  Úkeyeds
             rU   ÚsortzArrowDataFrame.sortß  s  € Ü�j¤$Ô'Ù+5™<¸;ˆEØHJÖ/KÀ°°e²Ð/KˆGÑ/Kô +.¨b°*ÀTÔ*J÷á&�C˜ð ¡m‘l¸ÒEðˆGñ ñ
 &0™°Zˆà× Ñ  5Ò(Ø×$Ñ$Ø—‘×#Ñ# G¸NÐ#ÓKØ&+ð %ó ð ð AH×H±*°#°u�#�u˜nÒ-ÐHˆÑHØ× Ñ Ø�K‰K×Ñ Ó&Ø"'ð !ó 
ð 	
ùò# 0Lùóùó Is   ›CºCÂC 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 )NrG  rF  TrÈ   Fr­   )ra   rL  rË   r°   rl   r¹   ÚpcÚselect_k_unstable)rQ   ÚkrO  ÚreverserP  rQ  rR  Úis_ascendings           rU   Ú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 rL   )rl   Ú	to_pandasr¥   s    rU   r^  zArrowDataFrame.to_pandas  s   € Ø�{‰{×$Ñ$Ó&Ð&rW   c                óB   — dd l } |j                  | j                  «      S r·   )Úpolarsrn   rl   )rQ   Úpls     rU   Ú	to_polarszArrowDataFrame.to_polars	  s   € Ûàˆr�}‰}˜TŸ[™[Ó)Ð)rW   NrÙ   c               óš   — dd l }|j                  | j                  j                  D �cg c]  }|j	                  «       ‘Œ c}«      }|S c c}w r·   )ÚnumpyÚcolumn_stackrl   rÌ   Úto_numpy)rQ   rt   rÚ   Únpr?  Úarrs         rU   rf  zArrowDataFrame.to_numpy  s9   € Ûà—?‘?¸d¿k¹k×>QÑ>QÖ#R°s C§L¡L¥NÒ#RÓSˆØˆ
ùò $Ss   ¨Ac                ó   — y rL   rq   ©rQ   Ú	as_seriess     rU   Úto_dictzArrowDataFrame.to_dict  s   € ØNQrW   c                ó   — y rL   rq   rj  s     rU   rl  zArrowDataFrame.to_dict  s   € ØMPrW   c               óÂ   — | j                  «       }|r|D �ci c]  }|j                  |“Œ c}S |D �ci c]  }|j                  |j                  «       “Œ c}S c c}w c c}w rL   )rÏ   rˆ   Úto_list)rQ   rk  ÚitÚsers       rU   rl  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Ê   rG  )é   )rž   r   r´   Ú_exprÚ_from_seriesÚ_seriesÚfrom_iterablerç   ÚallrW  Úsort_indicesrl   r_   r¹   Úscatterr   rb   Úint64r°   Ú
add_column)	rQ   rˆ   Úorder_byr7  rj   Ú	row_indexrO  ÚindicesÚnew_cols	            rU   Ú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_exprrl   r°   rA  )rQ   Ú	predicateÚmask_natives      rU   rA  zArrowDataFrame.filter1  sD   € Ø×7Ñ7¸	ÓB×IÑIˆØ× Ñ Ø�K‰K×Ñ˜{Ó+À5ð !ó 
ð 	
rW   c           
     óâ   — | j                   }|dk\  r#| j                  |j                  d|«      d¬«      S |j                  }| j                  |j                  dt	        d||z   «      «      d¬«      S ©Nr   Fr­   )rl   r°   rÞ   rÑ   Úmax©rQ   Únr¯   rÑ   s       rU   ÚheadzArrowDataFrame.head7  sn   € Ø�[‰[ˆØ�Š6Ø×$Ñ$ R§X¡X¨a°£^È5Ð$ÓQÐQØ—;‘;ˆØ× Ñ Ø�H‰H�Qœ˜A˜x¨!™|Ó,Ó-ÀUð !ó 
ð 	
rW   c           	     óð   — | j                   }|dk\  r;|j                  }| j                  |j                  t	        d||z
  «      «      d¬«      S | j                  |j                  t        |«      «      d¬«      S r‡  )rl   rÑ   r°   rÞ   rˆ  Úabsr‰  s       rU   ÚtailzArrowDataFrame.tail@  sq   € Ø�[‰[ˆØ�Š6Ø—{‘{ˆHØ×$Ñ$Ø—‘œ˜Q ¨1¡Ó-Ó.Àeð %ó ð ð × Ñ  §¡¬#¨a«&Ó!1ÈÐ ÓOÐOrW   )Ú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©rJ   rS   )ÚPolarsLazyFrameúpl.DataFrame)ÚDaskLazyFrame)ÚIbisLazyFrame)rÌ   )ÚSparkLikeLazyFramez5Spark like backends require `session` to be not None.)r�  ÚimplementationrS   )"r   ÚDUCKDBÚduckdbÚnarwhals._duckdb.dataframer‘  rl   rc   rP   ÚPOLARSr`  Únarwhals._polars.dataframer”  r   rn   ÚlazyÚDASKÚdask.dataframeÚ	dataframeÚnarwhals._dask.dataframer–  Úfrom_pandasr^  ÚIBISÚibisÚnarwhals._ibis.dataframer—  ÚmemtablerÌ   Úis_spark_likeÚnarwhals._spark_like.dataframer˜  Ú
ValueErrorÚ_from_compliant_dataframer¢   )rQ   Úbackendr�  r›  r‘  r’  ra  r”  Úddr–  r¦  r—  r˜  rm   s                 rU   rŸ  zArrowDataFrame.lazyI  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Ç}Á}ð @ó ð ô ÐrW   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   )rI   Fr“   )ÚPandasLikeDataFrameT)r™  rJ   rS   rT   )ÚPolarsDataFramer•  r“  zUnsupported `backend` value: )r   r    Únarwhals._arrow.dataframerI   rl   rP   ÚPANDASÚnarwhals._pandas_like.dataframer°  r^  r�  r`  rž  r±  r   rn   r¢   )rQ   r­  ÚkwargsrI   r°  ra  r±  rm   s           rU   ÚcollectzArrowDataFrame.collect†  sÚ   € ð ”n×,Ñ,Ñ,°°Ý@á!Ø—‘ T§]¡]È%ôð ð ”n×+Ñ+Ñ+ÝKá&Ø—‘×%Ñ%Ó'Ü-×4Ñ4Ø)-ØŸ™Ø&+ôð ð ”n×+Ñ+Ñ+ÛåBá"Ü�^ ] R§]¡]°4·;±;Ó%?Ó@Ø)-ØŸ™ôð ð .¨g¨YÐ7ˆÜ˜SÓ!Ð!rW   c                ó<   — | j                  | j                  d¬«      S r   ©r°   rl   r¥   s    rU   ÚclonezArrowDataFrame.clone©  s   € Ø× Ñ  §¡ÀEÐ ÓJÐJrW   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«  rl   ra   rÖ   rÌ   r»   )rQ   r¼   r  r»  r²   rm   Ú_cols          rU   Ú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ÐUrW   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°   rl   Úrename_columns)rQ   Úmappingr  Úcs       rU   Ú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_tablerl   )rQ   ÚfileÚpps      rU   Úwrite_parquetzArrowDataFrame.write_parquetÇ  s   € Ý$à
�‰�t—{‘{ DÕ)rW   c                 ó   — y rL   rq   ©rQ   rË  s     rU   Ú	write_csvzArrowDataFrame.write_csvÌ  s   € Ø,/rW   c                 ó   — y rL   rq   rÏ  s     rU   rÐ  zArrowDataFrame.write_csvÏ  s   € Ø=@rW   c                ó  — dd l m} |€\t        j                  «       }|j	                  | j
                  |«       |j                  «       j                  «       j                  «       S |j	                  | j
                  |«       y r·   )	Úpyarrow.csvÚcsvrb   ÚBufferOutputStreamrÐ  rl   ÚgetvalueÚ
to_pybytesÚdecode)rQ   rË  Úpa_csvÚ
csv_buffers       rU   rÐ  zArrowDataFrame.write_csvÒ  sd   € Ý$àˆ<Ü×.Ñ.Ó0ˆJØ×Ñ˜TŸ[™[¨*Ô5Ø×&Ñ&Ó(×3Ñ3Ó5×<Ñ<Ó>Ð>Ø×Ñ˜Ÿ™ dÔ+ØrW   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\   )rd  r   rÌ   rb   r–   r   r´   rl   r  r  Ú	aggregater†   rW  Úand_Úis_inr   rh   )rQ   rg  Ú	col_tokenr~  Úkeep_idxrl   s         rU   Ú	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Ô<Ð<rW   )Ú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'  )r}  F)rN  rF  )rB  Úkeeprå  r}  )rF  rN  rÈ   Ú_r­   )rd  Ú_check_columns_existrÅ   rÌ   r  r(   Ú_REMAP_UNIQUEr   r�  rU  Úuniquer1  rl   r  rb   r–   r   r´   r  rß  r  r°   r¹   r  rä  rž   rA  rt  ru  )rQ   rB  ré  rå  r}  rg  Úerrorr(   Úagg_funcrâ  Ú	idx_tokenr¯   rl   Úkeep_idx_nativerã  r7  s                   rU   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°(Ó;Ó<Ð<rW   c                óH   — | j                  | j                  |d |…   d¬«      S r   r¸  )rQ   rŠ  Úoffsets      rU   Úgather_everyzArrowDataFrame.gather_every!  s'   € Ø× Ñ  §¡¨V¨Y°Q¨YÑ!7ÈuÐ ÓUÐUrW   c                ó   — | j                   S rL   )rl   r¥   s    rU   r€   zArrowDataFrame.to_arrow$  rø   rW   c          	     ó.  — dd l }|j                  j                  |¬«      }|j                  |j	                  |«      ||¬«      }| j                  | j                  j                  t        j                  |t        j                  «       ¬«      «      d¬«      S )Nr   )Úseed)ÚsizeÚreplacer|   Fr­   )rd  ÚrandomÚdefault_rngÚchoicer   r°   rl   r¹   rb   r–   Úuint64)rQ   rŠ  Úwith_replacementr÷  rg  Úrngr  s          rU   ÚsamplezArrowDataFrame.sample'  sw   € Ûà�i‰i×#Ñ#¨Ð#Ó.ˆØ—*‘*˜RŸY™Y q›\°Ð;K�*ÓLˆØ× Ñ Ø�K‰K×ÑœRŸX™X g´B·I±I³KÔ@ÓAØ"'ð !ó 
ð 	
rW   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rL   rq   )rs   rÅ  r»   s     €rU   ru   z)ArrowDataFrame.unpivot.<locals>.<genexpr><  s   øè ø€ Ò9�Q¨!°5ª.ŒqÑ9ùs   ƒ	�c              3  ó‚   •K  — | ]6  }‰j                  ‰t        |‰«      «      j                  ‰ ‰|«      «      –— Œ8 y ­wrL   )r  r   )rs   rˆ   r  Ú
index_colsrŠ  Ú
value_nameÚvariable_names     €€€€€rU   ru   z)ArrowDataFrame.unpivot.<locals>.<genexpr>?  sB   øè ø€ ò 
ð ð ×$Ñ$ ]´F¸4À³OÓD×RÑRØ™F 4›L÷ñ
ùs   ƒ<?Ú
permissive)	r´   rÅ   rÌ   Úiterrl   rç   r  r°   r   )
rQ   Úonr»   r  r  Úon_Útablesr  r  rŠ  s
     ```  @@@rU   ÚunpivotzArrowDataFrame.unpivot1  s…   ý€ ô �‹IˆØ�m‘¬¨e«ˆØ=?¸ZÓ9˜$Ÿ,™,Õ9ÌTÐRTËXˆØ—[‘[×'Ñ'¨Ó.ˆ
Ø—‘×#Ñ#ˆ÷
ð ô	
ˆð × Ñ ¤¨v°|Ó!DÓEÐErW   )
rR   úpa.TablerS   r3   rT   rL  rJ   rL  ÚreturnÚNone)rj   r0   r]   r4   r  r$   )rj   zMapping[str, Any]r]   r4   rz   ú%Mapping[str, IntoDType | None] | Noner  r$   )rj   zSequence[Mapping[str, Any]]r]   r4   rz   r  r  r$   )r‘   zpa.Table | Anyr  zTypeIs[pa.Table])rj   r  r]   r4   r  r$   )rj   r>   r]   r4   rz   z.Mapping[str, IntoDType] | Sequence[str] | Noner  r$   )r  r*   )r  r"   )r  r$   )rS   r3   r  r$   )r¯   r  rT   rL  r  r$   )r  ztuple[int, int])r  Úint)r»   r  r  ztuple[Any, ...])r¿   úLiteral[True]r  zlist[dict[str, Any]])r¿   úLiteral[False]r  zlist[tuple[Any, ...]])r¿   rL  r  z,list[tuple[Any, ...]] | list[dict[str, Any]])r  zIterator[ArrowSeries])r¿   rL  rÄ   r  r  z4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])rˆ   rÖ   r  r   )rt   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])rM   rÖ   r  r$   )r  r&   r  r$   )r  r   r  r+   )r  z#Sequence[str] | Sequence[ArrowExpr]r  rL  r  r(   )r  r$   r2  r8   r3  úSequence[str] | Noner4  r  r5  rÖ   r  r$   )rÌ   rò   rÉ   rL  r  r$   )rB  r  r  r$   )rO  rÖ   rF  úbool | Sequence[bool]rN  rL  r  r$   )rY  r  rO  zIterable[str]rZ  r  r  r$   )r  zpd.DataFrame)r  r•  rL   )rk  r  r  zdict[str, ArrowSeries])rk  r  r  zdict[str, list[Any]])rk  rL  r  z-dict[str, ArrowSeries] | dict[str, list[Any]])rˆ   rÖ   r}  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   )
rB  r  ré  r<   rå  r  r}  r  r  r$   )rŠ  r  ró  r  r  r$   )r  r  )rŠ  r  rþ  rL  r÷  r  r  r$   )
r	  r  r»   r  r  rÖ   r  rÖ   r  r$   )Mre   Ú
__module__Ú__qualname__r   r    r^   rV   Úclassmethodrn   r‹   r�   Ústaticmethodr`   rh   r›   rž   r£   r¦   r©   r¬   r°   Úpropertyr²   rµ   r¼   r   rÀ   rÏ   Ú_iter_columnsrÆ   r×   rÛ   rß   rå   rè   rê   rð   ró   rz   r÷   rý   r   ÚexploderÌ   r  rç   r  r  r  r0  Ú	join_asofr1  rD  rU  r\  r^  rb  rf  rl  r�  rA  r‹  rŽ  rŸ  r¶  r¹  r¿  rÆ  rÍ  rÐ  rä  rí  rô  r€   r   r  Úpivotrq   rW   rU   rI   rI   S   sn  „ ð %×,Ñ,€Oð */ñ à"ð ð ð	 ð
  $ð ð #'ð ð 
ó ð ò8ó ð8ð ð#?àð#?ð
 !ð#?ð 6ð#?ð 
ò#?ó ð#?ðJ ð8à)ð8ð
 !ð8ð 6ð8ð 
ò8ó ð8ð0 ò)ó ð)ð òOó ðOð ð8àð8ð
 !ð8ð ?ð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ó!ó
ó2
ó'ó*ð
Àõ ð ÚQó ØQàÚPó ØPð7Ø ð7à	6ó7óKó
ó
óPð ,0ð;ð (,ñ	;à(ð;ð %ð	;ð
 
ó;ðz!"Ø/ð!"Ø;>ð!"à	ó!"óFKóVó&Dó*ð
 Ú/ó Ø/àÚ@ó Ø@óó=ð. '+ñ1=à$ð1=ð !ð	1=ð
 $ð1=ð 'ð1=ð 
ó1=ófVóó
ðFà ðFð $ðFð ð	Fð
 ðFð 
óFñ, Ó�ErW   rI   )r   r&   r  r+   )`Ú
__future__r   Úcollections.abcr   r   r   r   Útypingr   r	   r
   r   r   r   Úpyarrowrb   Úpyarrow.computeÚcomputerW  r½  r   Únarwhals._arrow.utilsr   r   r   r   r   Únarwhals._compliantr   Únarwhals._utilsr   r   r   r   r   r   r   r   Únarwhals.dependenciesr   Únarwhals.exceptionsr   r   Úior    Úpathlibr!   Útypesr"   r#   ÚpandasÚpdr`  ra  Útyping_extensionsr$   r%   Únarwhals._arrow.exprr&   r  r(   r�   r*   Únarwhals._arrow.typingr+   r,   Únarwhals._compliant.typingr-   r.   Únarwhals._spark_like.utilsr/   Únarwhals._translater0   Únarwhals._typingr1   r2   r3   r4   Únarwhals.dtypesr5   Únarwhals.typingr6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rF   Ú__annotations__rG   rI   rq   rW   rU   ú<module>r=     sÎ   ðÞ "ç CÓ Cß E× Eã Ý å .÷õ õ /÷	÷ 	ó 	õ 4Ý *áÝ(ÝÝÝ Ý ãÛß.å.Ý5Ý8÷÷ XÝ7Ý2ßDß8Ý%÷÷ ÷ ñ ð "ð	ñ	€Hˆió 	ð €€eÓ ôtØÐLÑMõtrW   