Ë
    z�hZr  ã                  ó*  — U d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d d	lmZ d d
lmZ d dlmZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl m"Z" d dl m#Z# d dl m$Z$ d dl m%Z% d dl m&Z& d dl m'Z' d dl m(Z( d dl m)Z) d dl m*Z* d dl m+Z+ d dl m,Z, erÄd d l-m.Z. d d!l/m0Z0 d d"l1m2Z2 d dl3Z4d dl5Z6d d#l7m8Z8 d d$l7m9Z9 d d%l7m:Z: d d&l;m<Z< d d'l=m>Z> d d(l?m@Z@ d d)lAmBZB d d*lAmCZC d d+lAmDZD d d,lEmFZF d d-lGmHZH d d.lImJZJ d d/lKmLZL d d0lKmMZM d d1lKmNZN d d2lKmOZO d d3lKmPZP d d4lKmQZQ d d5lKmRZR d d6lKmSZS d d7lKmTZT d d8lKmUZU d d9lKmVZV d dl m"Z" d d:l mWZW e	d;   ZXd<eYd=<   e	d>   ZZd<eYd?<    G d@„ dAedB   «      Z[y)Cé    )Úannotations)Úpartial)ÚTYPE_CHECKING)ÚAny)Ú
Collection)ÚIterator)ÚLiteral)ÚMapping)ÚSequence)Úcast)ÚoverloadN)ÚArrowSeries)Úalign_series_full_broadcast)Únative_to_narwhals_dtype)ÚEagerDataFrame)ÚExprKind)Úis_numpy_array_1d)Ú
ShapeError)ÚImplementation)ÚVersion)Úcheck_column_exists)Úcheck_column_names_are_unique)Úconvert_str_slice_to_int_slice)Úgenerate_temporary_column_name)Únot_implemented)Úparse_columns_to_drop)Úparse_version)Úscale_bytes)Úsupports_arrow_c_stream)Úvalidate_backend_version)ÚBytesIO)ÚPath)Ú
ModuleType)ÚSelf)Ú	TypeAlias)ÚTypeIs)Ú	ArrowExpr©ÚArrowGroupBy©ÚArrowNamespace)ÚChunkedArrayAny)ÚMask)ÚOrder)ÚIntoArrowTable)ÚDType©ÚSchema)ÚCompliantDataFrame)ÚCompliantLazyFrame)ÚJoinStrategy)ÚSizedMultiIndexSelector)ÚSizedMultiNameSelector)ÚSizeUnit)ÚUniqueKeepStrategy)Ú_1DArray)Ú_2DArray)Ú_SliceIndex)Ú
_SliceName)Ú_FullContext)ú	left semiz
right semiú	left antiz
right antiÚinnerú
left outerzright outerú
full outerr%   ÚJoinType)ÚnoneÚdefaultÚ
permissiveÚPromoteOptionsc                  óæ  — e Zd Z	 	 	 	 	 	 	 	 	 	 dJd„ZedKd„«       Ze	 	 	 	 	 	 	 	 dLd„«       ZedMd„«       ZedNd„«       Z	e	 	 	 	 	 	 	 	 dOd„«       Z
dPd„ZdQd„ZdRd	„ZdRd
„ZdSd„ZddœdTd„ZedUd„«       ZdVd„ZdWd„ZedXd„«       ZedYd„«       ZedZd„«       ZdZd„Zd[d„ZeZ	 	 	 	 	 	 d\d„Zd]d„Zd^d„Zd_d„Zd`d„Zdad„Zdbd„Z	 	 	 	 dcd„Z 	 	 	 	 ddd„Z!eded „«       Z"ded!„Z#dfd"„Z$ e%«       Z&edgd#„«       Z'dhd$„Z(did%„Z)djd&„Z*did'„Z+	 	 	 	 	 	 dkd(„Z,	 	 	 	 	 	 	 	 	 	 	 	 dld)„Z- e%«       Z.dmd*„Z/dnd+„Z0	 	 	 	 	 	 	 	 dod,„Z1dpd-„Z2dqd.„Z3drd/d0œd^d1„Z4edsd2„«       Z5edtd3„«       Z5	 	 	 	 dud4„Z5dvd5„Z6	 	 	 	 	 	 dwd6„Z7dxd7„Z8dxd8„Z9d/d9œ	 	 	 dyd:„Z:	 	 	 	 	 	 dzd;„Z;dRd<„Z<d{d=„Z=d|d>„Z>d}d?„Z?ed~d@„«       Z@ed}dA„«       Z@ddB„Z@d€dC„ZAd/dDœ	 	 	 	 	 	 	 	 	 d�dE„ZBd‚dF„ZCdƒdG„ZD	 	 	 	 	 	 	 	 	 	 d„dH„ZE	 	 	 	 	 	 	 	 	 	 d…dI„ZF e%«       ZGy/)†ÚArrowDataFramec               óÆ   — |rt        |j                  «       || _        t        j                  | _        || _        || _        t        | j
                  | j                  «       y ©N)	r   Úcolumn_namesÚ_native_framer   ÚPYARROWÚ_implementationÚ_backend_versionÚ_versionr    )ÚselfÚnative_dataframeÚbackend_versionÚversionÚvalidate_column_namess        úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/narwhals/_arrow/dataframe.pyÚ__init__zArrowDataFrame.__init__W   sQ   € ñ !Ü)Ð*:×*GÑ*GÔHØ-ˆÔÜ-×5Ñ5ˆÔØ /ˆÔØˆŒÜ  ×!5Ñ!5°t×7LÑ7LÕMó    c              ód  — |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)é   z@PyArrow>=14.0.0 is required for `from_arrow` for object of type ú.z1`from_arrow` is not supported for object of type ©Úcontext)rQ   Ú
_is_nativeÚ
isinstancer   ÚpaÚtabler   ÚtypeÚ__name__ÚModuleNotFoundErrorÚ	TypeErrorÚfrom_native)ÚclsÚdatar_   rU   ÚnativeÚmsgs         rX   Ú
from_arrowzArrowDataFrame.from_arrowg   s£   € à!×2Ñ2ˆØ�>‰>˜$ÔØ‰FØ Ò%¬°D¼*Ô)EÜ—X‘X˜d“^‰FÜ$ TÔ*ØTÔUYÐZ^ÓU_×UhÑUhÐTkÐklÐmˆCÜ% cÓ*Ð*àEÄdÈ4Ãj×FYÑFYÐE\Ð\]Ð^ˆCÜ˜C“.Ð Ø�‰˜v¨wˆÓ7Ð7rZ   c              óª   — ddl m} |� ||«      j                  «       n|}t        j                  j                  ||¬«      }| j                  ||¬«      S ©Nr   r1   ©Úschemar^   )Únarwhals.schemar2   Úto_arrowrb   ÚTableÚfrom_pydictrh   )ri   rj   r_   rq   r2   Ú	pa_schemark   s          rX   Ú	from_dictzArrowDataFrame.from_dictv   sL   € õ 	+à17Ð1C‘F˜6“N×+Ñ+Ô-Èˆ	Ü—‘×%Ñ% d°9Ð%Ó=ˆØ�‰˜v¨wˆÓ7Ð7rZ   c                ó6   — t        | t        j                  «      S rL   )ra   rb   rt   )Úobjs    rX   r`   zArrowDataFrame._is_native…   s   € ä˜#œrŸx™xÓ(Ð(rZ   c              óB   —  | ||j                   |j                  d¬«      S )NT©rU   rV   rW   )rQ   rR   )ri   rj   r_   s      rX   rh   zArrowDataFrame.from_native‰   s'   € áØØ#×4Ñ4Ø×$Ñ$Ø"&ô	
ð 	
rZ   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 ro   )rr   r2   ÚTrb   Úarrayra   r
   rt   Úfrom_arraysrs   Ú_numpy_column_namesrh   )ri   rj   r_   rq   r2   ÚvalÚarraysrk   s           rX   Ú
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                óJ   — ddl m}  || j                  | j                  ¬«      S )Nr   r*   ©rU   rV   )Únarwhals._arrow.namespacer+   rQ   rR   )rS   r+   s     rX   Ú__narwhals_namespace__z%ArrowDataFrame.__narwhals_namespace__¤   s!   € Ý<áØ ×1Ñ1¸4¿=¹=ô
ð 	
rZ   c                ó´   — | j                   t        j                  u r| j                   j                  «       S dt	        | j                   «      › �}t        |«      ‚)NzExpected pyarrow, got: )rP   r   rO   Úto_native_namespacerd   ÚAssertionError)rS   rl   s     rX   Ú__native_namespace__z#ArrowDataFrame.__native_namespace__«   sN   € Ø×Ñ¤>×#9Ñ#9Ñ9Ø×'Ñ'×;Ñ;Ó=Ð=à'¬¨T×-AÑ-AÓ(BÐ'CÐDˆÜ˜SÓ!Ð!rZ   c                ó   — | S rL   © ©rS   s    rX   Ú__narwhals_dataframe__z%ArrowDataFrame.__narwhals_dataframe__²   ó   € ØˆrZ   c                ó   — | S rL   r�   rŽ   s    rX   Ú__narwhals_lazyframe__z%ArrowDataFrame.__narwhals_lazyframe__µ   r�   rZ   c                óT   — | j                  | j                  | j                  |d¬«      S )NFr{   )Ú	__class__rk   rQ   )rS   rV   s     rX   Ú_with_versionzArrowDataFrame._with_version¸   s.   € Ø�~‰~Ø�K‰KØ ×1Ñ1ØØ"'ð	 ó 
ð 	
rZ   T©rW   c               óT   — | j                  || j                  | j                  |¬«      S )Nr{   )r”   rQ   rR   )rS   ÚdfrW   s      rX   Ú_with_nativezArrowDataFrame._with_nativeÀ   s.   € Ø�~‰~ØØ ×1Ñ1Ø—M‘MØ"7ð	 ó 
ð 	
rZ   c                ó.   — | j                   j                  S rL   )rk   ÚshaperŽ   s    rX   r›   zArrowDataFrame.shapeÈ   s   € à�{‰{× Ñ Ð rZ   c                ó,   — t        | j                  «      S rL   )Úlenrk   rŽ   s    rX   Ú__len__zArrowDataFrame.__len__Ì   s   € Ü�4—;‘;ÓÐrZ   c                ó\   ‡— t        ˆfd„| j                  j                  «       D «       «      S )Nc              3  ó(   •K  — | ]	  }|‰   –— Œ y ­wrL   r�   )Ú.0ÚcolÚindexs     €rX   ú	<genexpr>z%ArrowDataFrame.row.<locals>.<genexpr>Ð   s   øè ø€ ÒE C�S˜•ZÑEùs   ƒ)Útuplerk   Úitercolumns)rS   r£   s    `rX   ÚrowzArrowDataFrame.rowÏ   s!   ø€ ÜÓE¨4¯;©;×+BÑ+BÓ+DÔEÓEÐErZ   c                ó   — y rL   r�   ©rS   Únameds     rX   ÚrowszArrowDataFrame.rowsÒ   s   € ØEHrZ   c                ó   — y rL   r�   r©   s     rX   r«   zArrowDataFrame.rowsÕ   s   € ØGJrZ   c                ó   — y rL   r�   r©   s     rX   r«   zArrowDataFrame.rowsØ   s   € ØTWrZ   c               ór   — |st        | j                  dd¬«      «      S | j                  j                  «       S )NFi   )rª   Úbuffer_size)ÚlistÚ	iter_rowsrk   Ú	to_pylistr©   s     rX   r«   zArrowDataFrame.rowsÛ   s0   € ÙÜ˜Ÿ™¨UÀ˜ÓDÓEÐEØ�{‰{×$Ñ$Ó&Ð&rZ   c              #  ó¬   K  — t        | j                  | j                  j                  «       «      D ]  \  }}t	        j
                  || |¬«      –— Œ! y ­w)N©r_   Úname)ÚzipÚcolumnsrk   r¦   r   rh   )rS   rµ   Úseriess      rX   Úiter_columnszArrowDataFrame.iter_columnsà   sH   è ø€ Ü §¡¨d¯k©k×.EÑ.EÓ.GÓHò 	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©Nr   )rk   Únum_rowsÚrangeÚ	to_pydictÚvaluesr¶   r²   )rS   rª   r¯   r˜   r¼   Úir«   s          rX   r±   zArrowDataFrame.iter_rowsæ   s¦   è ø€ ð �[‰[ˆØ—;‘;ˆáÜ˜1˜h¨Ó4ò &�Ø˜!˜a +™oÐ.×8Ñ8Ó:×AÑAÓC�Ü ˜:×%Ñ%ñ&ô ˜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´   )ra   Ústrrd   rg   r   rh   rk   )rS   rµ   rl   s      rX   Ú
get_columnzArrowDataFrame.get_columnô   sD   € Ü˜$¤Ô$Ø'¬¨T«
 |Ð4ˆCÜ˜C“.Ð Ü×&Ñ& t§{¡{°4Ñ'8À$ÈTÔRÐRrZ   c               ó<   — | j                   j                  ||¬«      S )N©Úcopy)rk   Ú	__array__)rS   ÚdtyperÆ   s      rX   rÇ   zArrowDataFrame.__array__ú   s   € Ø�{‰{×$Ñ$ U°Ð$Ó6Ð6rZ   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   ÚslicerQ   ra   r¥   r°   Útake)rS   r«   s     rX   Ú_gatherzArrowDataFrame._gatherý   so   € Üˆt‹9˜Š>Ø×$Ñ$ T§[¡[×%6Ñ%6°q¸!Ó%<Ó=Ð=Ø× Ñ  5Ò(¬Z¸¼eÔ-DÜ˜“:ˆDØ× Ñ  §¡×!1Ñ!1°$Ó!7Ó8Ð8rZ   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   ÚstepÚNotImplementedErrorr™   rË   )rS   r«   rÐ   rÑ   rl   s        rX   Ú_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ÐHrZ   c                óª   — t        || j                  «      \  }}}| j                  | j                  j	                  | j                  |||…   «      «      S rL   )r   r·   r™   rk   Úselect)rS   r·   rÐ   rÑ   rÒ   s        rX   Ú_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ÐSrZ   c                ó²   — | j                  | j                  j                  | j                  |j                  |j
                  |j                  …   «      «      S rL   )r™   rk   rÖ   r·   rÐ   rÑ   rÒ   )rS   r·   s     rX   Ú_select_slice_indexz"ArrowDataFrame._select_slice_index  sC   € Ø× Ñ Ø�K‰K×Ñ˜tŸ|™|¨G¯M©M¸G¿L¹LÈ7Ï<É<Ð,WÑXÓYó
ð 	
rZ   c                óü   — t        |t        j                  «      rt        d|j	                  «       «      }nt        |«      r|j                  «       }n|}| j                  | j                  j                  |«      «      S )NzSequence[int])
ra   rb   ÚChunkedArrayr   r²   r   Útolistr™   rk   rÖ   ©rS   r·   Úselectors      rX   Ú_select_multi_indexz"ArrowDataFrame._select_multi_index  sb   € ô �gœrŸ™Ô/ä˜O¨W×->Ñ->Ó-@ÓA‰Hô ˜wÔ'Ø—~‘~Ó'‰HàˆHØ× Ñ  §¡×!3Ñ!3°HÓ!=Ó>Ð>rZ   c                óÄ   — t        |t        j                  «      rt        d|j	                  «       «      }n|}| j                  | j                  j                  |«      «      S )NúSequence[str])ra   rb   rÛ   r   r²   r™   rk   rÖ   rÝ   s      rX   Ú_select_multi_namez!ArrowDataFrame._select_multi_name(  sN   € ô �gœrŸ™Ô/ä˜O¨W×->Ñ->Ó-@ÓA‰HàˆHð × Ñ  §¡×!3Ñ!3°HÓ!=Ó>Ð>rZ   c           	     óÊ   — | j                   j                  }t        |j                  |j                  «      D ��ci c]  \  }}|t        || j                  «      “Œ c}}S c c}}w rL   )rk   rq   r¶   ÚnamesÚtypesr   rR   )rS   rq   rµ   rÈ   s       rX   rq   zArrowDataFrame.schema5  sW   € à—‘×#Ñ#ˆô  # 6§<¡<°·±Ó>÷
á��eð Ô*¨5°$·-±-Ó@Ñ@ó
ð 	
ùó 
s   º!Ac                ó   — | j                   S rL   rp   rŽ   s    rX   Úcollect_schemazArrowDataFrame.collect_schema=  ó   € Ø�{‰{ÐrZ   c                óF   — | j                   j                  }t        ||«      S rL   )rk   Únbytesr   )rS   ÚunitÚszs      rX   Úestimated_sizezArrowDataFrame.estimated_size@  s   € Ø�[‰[×ÑˆÜ˜2˜tÓ$Ð$rZ   c                ó.   — | j                   j                  S rL   )rk   rM   rŽ   s    rX   r·   zArrowDataFrame.columnsF  s   € à�{‰{×'Ñ'Ð'rZ   c                ól   — | j                  | j                  j                  t        |«      «      d¬«      S ©NFr–   )r™   rk   rÖ   r°   )rS   rM   s     rX   Úsimple_selectzArrowDataFrame.simple_selectJ  s3   € Ø× Ñ Ø�K‰K×Ñœt LÓ1Ó2È%ð !ó 
ð 	
rZ   c                ó~  —  | j                   |Ž }|s6| j                  | j                  j                  j	                  g «      d¬«      S |D �cg c]  }|j
                  ‘Œ }}t        |Ž }t        j                  j	                  |D �cg c]  }|j                  ‘Œ c}|¬«      }| j                  |d¬«      S c c}w c c}w )NFr–   ©rä   T)	Ú_evaluate_into_exprsr™   rk   r”   r   rµ   r   rb   rt   )rS   ÚexprsÚ
new_seriesÚsrä   Úreshapedr˜   s          rX   rÖ   zArrowDataFrame.selectO  s²   € Ø.�T×.Ñ.°Ð6ˆ
Ùà×$Ñ$Ø—‘×%Ñ%×1Ñ1°"Ó5ÈUð %ó ð ð ",Ö,˜A�—“Ð,ˆÐ,Ü.°
Ð;ˆÜ�X‰X×!Ñ!°XÖ">° 1§8£8Ò">ÀeÐ!ÓLˆØ× Ñ  ¸4Ð Ó@Ð@ùò -ùâ">s   ÁB5ÂB:c                óZ  — t        | «      }|j                  s0t        |«      x}|k7  rd|› d|› d�}t        |«      ‚|j                  S dd l}|j                  d   }| j
                  dk  rt        |d«      r|j                  «       }t        j                  |j                  ||¬«      g«      S )NzExpected object of length z, got: r]   r   )é   Úas_py)r›   Ú
fill_value)r�   Ú
_broadcastr   rk   ÚnumpyrQ   Úhasattrrû   rb   Úchunked_arrayÚfull)rS   ÚotherÚlengthÚ	len_otherrl   ÚnpÚvalues          rX   Ú_extract_comparandz!ArrowDataFrame._extract_comparand[  s    € Ü�T“ˆØ×ÒÜ  ›ZÐ'�	¨FÒ2Ø2°6°(¸'À)ÀÈAÐN�Ü  “oÐ%Ø—<‘<Ðãà—‘˜Q‘ˆØ× Ñ  5Ò(¬W°U¸GÔ-DØ—K‘K“MˆEÜ×Ñ §¡¨vÀ% Ó!HÐ IÓJÐJrZ   c                ó2  — | j                   } | j                  |Ž }| j                  }|D ]Y  }|j                  }| j	                  |«      }||v r#|j                  |j                  |«      ||¬«      n|j                  ||¬«      }Œ[ | j                  |d¬«      S )N)Úfield_ÚcolumnFr–   )	rk   rô   r·   rµ   r  Ú
set_columnr£   Úappend_columnr™   )rS   rõ   Únative_frameÚnew_columnsr·   Ú	col_valueÚcol_namer
  s           rX   Úwith_columnszArrowDataFrame.with_columnsj  s³   € ð —{‘{ˆØ/�d×/Ñ/°Ð7ˆØ—,‘,ˆà$ò 	ˆIØ —~‘~ˆHØ×,Ñ,¨YÓ7ˆFð ˜wÑ&ð ×'Ñ'Ø—M‘M (Ó+Ø#Ø!ð (ô ð "×/Ñ/°xÈÐ/ÓOñ ð	ð × Ñ  ÀUÐ ÓKÐKrZ   c               ó$   — ddl m}  || ||¬«      S )Nr   r(   )Údrop_null_keys)Únarwhals._arrow.group_byr)   )rS   Úkeysr  r)   s       rX   Úgroup_byzArrowDataFrame.group_by€  s   € õ 	:á˜D $°~ÔFÐFrZ   c          
     óÒ  — ddddddœ}|dk(  �r| j                  «       }t        dg | j                  ¢|j                  ¢¬	«      }| j                  | j	                  |j                  d
d «      j                  |«      j                  t        j                  «      «      j                  j                  |j	                  |j                  d
d «      j                  |«      j                  t        j                  «      «      j                  ||d|¬«      j                  |g«      «      S |dk7  }	| j                  | j                  j                  |j                  |xs g |||   ||	¬«      «      S )Nr@   r?   rA   rB   rC   )ÚantiÚsemirA   Úleftr  Úcrossé   ©Ún_bytesr·   r   )r  Ú
right_keysÚ	join_typeÚright_suffixr  )r  r  r   r!  Úcoalesce_keys)r‡   r   r·   r™   r  ÚlitÚaliasÚ	broadcastr   ÚLITERALrk   ÚjoinÚdrop)
rS   r  ÚhowÚleft_onÚright_onÚsuffixÚhow_to_join_mapÚplxÚ	key_tokenr"  s
             rX   r'  zArrowDataFrame.join‡  s`  € ð  ØØØ Ø ñ0
ˆð �'‹>Ø×-Ñ-Ó/ˆCÜ6ØÐ#B T§\¡\Ð#B°E·M±MÐ#BôˆIð ×$Ñ$Ø×!Ñ!Ø—G‘G˜A˜tÓ$×*Ñ*¨9Ó5×?Ñ?Ä×@PÑ@PÓQó÷ ‘Ÿ™Ø×&Ñ&ØŸ™  4Ó(×.Ñ.¨yÓ9×CÑCÄH×DTÑDTÓUóç‘fØ"Ø(Ø%Ø!'ð ó ÷ ‘�y�kÓ"óð ð  ˜v™ˆØ× Ñ Ø�K‰K×ÑØ—‘Ø’] Ø#Ø)¨#Ñ.Ø#Ø+ð ó ó	
ð 		
rZ   c               óv   — t        | ||¬«      }| j                  | j                  j                  |«      d¬«      S )N)Úcompliant_framer·   ÚstrictFr–   )r   r™   rk   r(  )rS   r·   r2  Úto_drops       rX   r(  zArrowDataFrame.drop¼  s;   € Ü'Ø ¨'¸&ô
ˆð × Ñ  §¡×!1Ñ!1°'Ó!:ÐRWÐ ÓXÐXrZ   c                óô   — |€+| j                  | j                  j                  «       d¬«      S | j                  «       }| j	                  |j                   |j                  |Ž j                  «       «       «      S rð   )r™   rk   Ú	drop_nullr‡   ÚfilterÚany_horizontalr¢   Úis_null)rS   Úsubsetr.  s      rX   Ú
drop_nullszArrowDataFrame.drop_nullsÂ  sj   € Øˆ>Ø×$Ñ$ T§[¡[×%:Ñ%:Ó%<ÐTYÐ$ÓZÐZØ×)Ñ)Ó+ˆØ�{‰{˜C×.Ñ.¨w¨s¯w©w¸Ð/?×/GÑ/GÓ/IÓJÐJÓKÐKrZ   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–   )ra   Úboolr¶   r™   rk   Úsort_by)	rS   r<  Ú
nulls_lastÚbyÚorderÚkeyÚsortingÚis_descendingr@  s	            rX   ÚsortzArrowDataFrame.sortÈ  s©   € ô �j¤$Ô'Ù+5™<¸;ˆEØHJÖ/KÀ°°e²Ð/KˆGÑ/Kô +.¨b°*Ó*=÷á&�C˜ð ¡m‘l¸ÒEðˆGñ ñ
 &0™°Zˆà× Ñ Ø�K‰K×Ñ ¸ÐÓGØ"'ð !ó 
ð 	
ùò 0Lùós
   ›B¸Bc                ó6   — | j                   j                  «       S rL   )rk   Ú	to_pandasrŽ   s    rX   rK  zArrowDataFrame.to_pandasÞ  s   € Ø�{‰{×$Ñ$Ó&Ð&rZ   c                óB   — dd l } |j                  | j                  «      S r»   )Úpolarsrm   rk   )rS   Úpls     rX   Ú	to_polarszArrowDataFrame.to_polarsá  s   € Ûàˆr�}‰}˜TŸ[™[Ó)Ð)rZ   NrÅ   c               óš   — dd l }|j                  | j                  j                  D �cg c]  }|j	                  «       ‘Œ c}«      }|S c c}w r»   )rþ   Úcolumn_stackrk   r·   Úto_numpy)rS   rÈ   rÆ   r  r¢   Úarrs         rX   rR  zArrowDataFrame.to_numpyæ  s9   € Ûà—?‘?¸d¿k¹k×>QÑ>QÖ#R°s C§L¡L¥NÒ#RÓSˆØˆ
ùò $Ss   ¨Ac                ó   — y rL   r�   ©rS   Ú	as_seriess     rX   Úto_dictzArrowDataFrame.to_dictì  s   € ØNQrZ   c                ó   — y rL   r�   rU  s     rX   rW  zArrowDataFrame.to_dictï  s   € ØMPrZ   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)rS   rV  ÚitÚsers       rX   rW  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                   }| j                  }t        j                  t	        |j
                  «      «      }| j                  |j                  ||«      j                  |g|¢«      «      S rL   )	rk   r·   rb   r~   r½   r¼   r™   r  rÖ   )rS   rµ   r˜   ÚcolsÚrow_indicess        rX   Úwith_row_indexzArrowDataFrame.with_row_indexú  s_   € Ø�[‰[ˆØ�|‰|ˆä—h‘hœu R§[¡[Ó1Ó2ˆØ× Ñ Ø×Ñ˜T ;Ó/×6Ñ6¸°}¸t°}ÓEó
ð 	
rZ   c                ó¼   — t        |t        «      r|}n| j                  |«      d   j                  }| j	                  | j                  j                  |«      d¬«      S ©Nr   Fr–   )ra   r°   rô   rk   r™   r6  )rS   Ú	predicateÚmask_natives      rX   r6  zArrowDataFrame.filter  s\   € ô �i¤Ô&Ø2;‰Kð ×3Ñ3°IÓ>¸qÑA×HÑHˆKØ× Ñ Ø�K‰K×Ñ˜{Ó+À5ð !ó 
ð 	
rZ   c           
     óâ   — | j                   }|dk\  r#| j                  |j                  d|«      d¬«      S |j                  }| j                  |j                  dt	        d||z   «      «      d¬«      S rb  )rk   r™   rË   r¼   Úmax©rS   Únr˜   r¼   s       rX   ÚheadzArrowDataFrame.head  sn   € Ø�[‰[ˆØ�Š6Ø×$Ñ$ R§X¡X¨a°£^È5Ð$ÓQÐQà—{‘{ˆHØ×$Ñ$Ø—‘˜œC  8¨a¡<Ó0Ó1Èð %ó ð rZ   c           	     óð   — | j                   }|dk\  r;|j                  }| j                  |j                  t	        d||z
  «      «      d¬«      S | j                  |j                  t        |«      «      d¬«      S rb  )rk   r¼   r™   rË   rf  Úabsrg  s       rX   ÚtailzArrowDataFrame.tail  sq   € Ø�[‰[ˆØ�Š6Ø—{‘{ˆHØ×$Ñ$Ø—‘œ˜Q ¨1¡Ó-Ó.Àeð %ó ð ð ×$Ñ$ R§X¡X¬c°!«fÓ%5ÈUÐ$ÓSÐSrZ   )Úbackendc               óf  — |€| S |t         j                  u rCdd l}ddlm} | j
                  } ||j                  d«      t        |«      | j                  ¬«      S |t         j                  u rZdd l
}ddlm}  |t        d |j                  | j
                  «      «      j                  «       t        |«      | j                  ¬«      S |t         j                   u rUdd l}dd lm} ddlm}	  |	|j-                  | j
                  j/                  «       «      t        |«      | j                  ¬«      S t0        ‚)Nr   )ÚDuckDBLazyFramer˜   r…   )ÚPolarsLazyFrameúpl.DataFrame)ÚDaskLazyFrame)r   ÚDUCKDBÚduckdbÚnarwhals._duckdb.dataframero  rk   rc   r   rR   ÚPOLARSrM  Únarwhals._polars.dataframerp  r   rm   ÚlazyÚDASKÚdaskÚdask.dataframeÚ	dataframeÚnarwhals._dask.dataframerr  Úfrom_pandasrK  rŠ   )
rS   rm  rt  ro  r˜   rN  rp  rz  Úddrr  s
             rX   rx  zArrowDataFrame.lazy#  sý   € ð ˆ?ØˆKØœ×-Ñ-Ñ-ÛåBà—‘ˆBÙ"Ø—‘˜TÓ"Ü -¨fÓ 5ØŸ™ôð ð
 œ×-Ñ-Ñ-ÛåBá"Ü�^ ] R§]¡]°4·;±;Ó%?Ó@×EÑEÓGÜ -¨bÓ 1ØŸ™ôð ð
 œ×+Ñ+Ñ+ÛÝ'å>á Ø—‘˜tŸ{™{×4Ñ4Ó6Ó7Ü -¨dÓ 3ØŸ™ôð ô
 ÐrZ   c                ó*  — |t         j                  u s|€0ddlm}  || j                  | j
                  | j                  d¬«      S |t         j                  u rPdd l}ddl	m
}  || j                  j                  «       t         j                  t        |«      | j                  d¬«      S |t         j                  u rLdd l}ddlm}  |t#        d |j$                  | j                  «      «      t        |«      | j                  ¬	«      S d
|› �}t'        |«      ‚)Nr   )rJ   Fr{   )ÚPandasLikeDataFrame)ÚimplementationrU   rV   rW   )ÚPolarsDataFramerq  r…   zUnsupported `backend` value: )r   rO   Únarwhals._arrow.dataframerJ   rk   rQ   rR   ÚPANDASÚpandasÚnarwhals._pandas_like.dataframer�  rK  r   rv  rM  rw  rƒ  r   rm   rŠ   )	rS   rm  ÚkwargsrJ   Úpdr�  rN  rƒ  rl   s	            rX   ÚcollectzArrowDataFrame.collectJ  sò   € ð
 ”n×,Ñ,Ñ,°°Ý@á!Ø—‘Ø $× 5Ñ 5ØŸ™Ø&+ô	ð ð ”n×+Ñ+Ñ+ÛåKá&Ø—‘×%Ñ%Ó'Ü-×4Ñ4Ü -¨bÓ 1ØŸ™Ø&+ôð ð ”n×+Ñ+Ñ+ÛåBá"Ü�^ ] R§]¡]°4·;±;Ó%?Ó@Ü -¨bÓ 1ØŸ™ôð ð .¨g¨YÐ7ˆÜ˜SÓ!Ð!rZ   c                ó<   — | j                  | j                  d¬«      S rð   ©r™   rk   rŽ   s    rX   ÚclonezArrowDataFrame.clonet  s   € Ø× Ñ  §¡ÀEÐ ÓJÐJrZ   c                óL  — ddl m} |€E|€C| j                  dk7  rd| j                  ›�}t        |«      ‚ || j                  d   d   d¬«      S |�|€d}t        |«      ‚t        |t        «      r| j                  j                  |«      n|} || j                  |   |   d¬«      S )Nr   )Úmaybe_extract_py_scalar)rÏ   rÏ   zycan only call `.item()` if the dataframe is of shape (1, 1), or if explicit row/col values are provided; frame has shape T)Úreturn_py_scalarz8cannot call `.item()` with only one of `row` or `column`)	Únarwhals._arrow.seriesr�  r›   Ú
ValueErrorrk   ra   rÂ   r·   r£   )rS   r§   r
  r�  rl   Ú_cols         rX   ÚitemzArrowDataFrame.itemw  s«   € ÝBàˆ;˜6˜>Ø�z‰z˜VÒ#ð(à(,¯
©
 ~ð7ð ô
 ! “oÐ%Ù*¨4¯;©;°q©>¸!Ñ+<ÈtÔTÐTàˆ[˜F˜NØLˆCÜ˜S“/Ð!ä-7¸ÄÔ-Dˆt�|‰|×!Ñ! &Ô)È&ˆÙ& t§{¡{°4Ñ'8¸Ñ'=ÐPTÔUÐUrZ   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])rQ   r   r·   Úgetr™   rk   Úrename_columns)rS   Úmappingrä   Úcs       rX   Ú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   )rS   ÚfileÚpps      rX   Úwrite_parquetzArrowDataFrame.write_parquet“  s   € Ý$à
�‰�t—{‘{ DÕ)rZ   c                 ó   — y rL   r�   ©rS   r   s     rX   Ú	write_csvzArrowDataFrame.write_csv˜  s   € Ø,/rZ   c                 ó   — y rL   r�   r¤  s     rX   r¥  zArrowDataFrame.write_csv›  s   € Ø=@rZ   c                ó  — dd l m} |€\t        j                  «       }|j	                  | j
                  |«       |j                  «       j                  «       j                  «       S |j	                  | j
                  |«       y r»   )	Úpyarrow.csvÚcsvrb   ÚBufferOutputStreamr¥  rk   ÚgetvalueÚ
to_pybytesÚdecode)rS   r   Úpa_csvÚ
csv_buffers       rX   r¥  zArrowDataFrame.write_csvž  sd   € Ý$àˆ<Ü×.Ñ.Ó0ˆJØ×Ñ˜TŸ[™[¨*Ô5Ø×&Ñ&Ó(×3Ñ3Ó5×<Ñ<Ó>Ð>Ø×Ñ˜Ÿ™ dÔ+ØrZ   c                óú  — t        d| j                  ¬«      }t        j                  t	        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  Úminrf  Ú_minÚ_maxr^   )r   r·   rb   r~   r½   r�   rk   r  r  Ú	aggregater   ÚpcÚand_Úis_inr   rh   )rS   Ú	col_tokenÚ	row_indexÚkeep_idxrk   s        rX   Ú	is_uniquezArrowDataFrame.is_unique¨  sÐ   € Ü2¸1ÀdÇlÁlÔSˆ	Ü—H‘HœU¤3 t£9Ó-Ó.ˆ	à�K‰K×%Ñ% i°Ó;ß‰X�d—l‘lÓ#ß‰Y˜ EÐ*¨Y¸Ð,>Ð?Ó@ð 	ô
 ×!Ñ!Ü�G‰GÜ—‘˜ H°	¨{¸$Ð-?Ñ$@ÓAÜ—‘˜ H°	¨{¸$Ð-?Ñ$@ÓAóó
ˆô ×&Ñ& v°tÔ<Ð<rZ   )Úmaintain_orderc          
     ó²  — dd l }t        | j                  |«       t        |xs | j                  «      }|dv rÊddddœ}||   }t	        d| j                  ¬«      }| j
                  j                  |t        j                  |j                  t        | «      «      «      «      j                  |«      j                  ||fg«      j                  |› d|› �«      }| j                  | j
                  j                  |«      d	¬
«      S  | j                   |Ž j#                  «       }	| j%                  «       }
| j'                  |
j(                  j+                  |	«      «      S )Nr   >   ÚanyÚlastÚfirstr±  rf  )r¾  rÀ  r¿  r  r  Ú_Fr–   )rþ   r   r·   r°   r   rk   r  rb   r~   Úaranger�   r  r´  r
  r™   rÌ   rñ   r»  r‡   r6  Ú_exprÚ_from_series)rS   r9  Úkeepr¼  r  Úagg_func_mapÚagg_funcr¸  Úkeep_idx_nativerº  r.  s              rX   ÚuniquezArrowDataFrame.unique¸  s.  € ó 	ä˜DŸL™L¨&Ô1Ü�fÒ, §¡Ó-ˆàÐ+Ñ+Ø#(°5À%ÑHˆLà# DÑ)ˆHÜ6¸qÈ$Ï,É,ÔWˆIà—‘×)Ñ)¨)´R·X±X¸b¿i¹iÌÈDË	Ó>RÓ5SÓTß‘˜&Ó!ß‘˜Y¨Ð1Ð2Ó3ß‘˜9˜+ Q x jÐ1Ó2ð	 ð ×$Ñ$Ø—‘× Ñ  Ó1Èð %ó ð ð &�4×%Ñ% vÐ.×8Ñ8Ó:ˆØ×)Ñ)Ó+ˆØ�{‰{˜3Ÿ9™9×1Ñ1°(Ó;Ó<Ð<rZ   c                óH   — | j                  | j                  |d |…   d¬«      S rð   rŒ  )rS   rh  Úoffsets      rX   Úgather_everyzArrowDataFrame.gather_everyÙ  s'   € Ø× Ñ  §¡¨V¨Y°Q¨YÑ!7ÈuÐ ÓUÐUrZ   c                ó   — | j                   S rL   )rk   rŽ   s    rX   rs   zArrowDataFrame.to_arrowÜ  rè   rZ   c               ó   — dd l }t        | «      }|€|�t        ||z  «      }|j                  j	                  |¬«      }|j                  d|«      }|j                  |||¬«      }	| j                  | j                  j                  |	«      d¬«      S )Nr   )Úseed)ÚsizeÚreplaceFr–   )
rþ   r�   ÚintÚrandomÚdefault_rngrÂ  Úchoicer™   rk   rÌ   )
rS   rh  ÚfractionÚwith_replacementrÏ  r  r¼   ÚrngÚidxÚmasks
             rX   ÚsamplezArrowDataFrame.sampleß  sŠ   € ó 	ä�t“9ˆØˆ9˜Ð-Ü�H˜xÑ'Ó(ˆAØ�i‰i×#Ñ#¨Ð#Ó.ˆØ�i‰i˜˜8Ó$ˆØ�z‰z˜# AÐ/?ˆzÓ@ˆØ× Ñ  §¡×!1Ñ!1°$Ó!7ÈuÐ ÓUÐUrZ   c                óD  ‡ — t        ‰ «      }|€g n|}|€‰ j                  D �cg c]	  }||vsŒ|‘Œ c}n|}‰ j                  dk\  rt        t        j
                  d¬«      nt        j
                  }	g |¢|‘|‘}
‰ j                   |	|D �cg c]  }t        j                  j                  g ˆ fd„|D «       ¢t        dt	        j                  |g|z  t	        j                  «       «      «      ‘‰ j                  j                  |«      ‘|
¬«      ‘Œ� c}«      «      S c c}w c c}w )N)r\   r   r   rG   )Úpromote_optionsc              3  óT   •K  — | ]  }‰j                   j                  |«      –— Œ! y ­wrL   )rk   r
  )r¡   Úidx_colrS   s     €rX   r¤   z)ArrowDataFrame.unpivot.<locals>.<genexpr>  s    øè ø€ ÒP¸g˜dŸk™k×0Ñ0°×9ÑPùs   ƒ%(r,   ró   )r�   r·   rQ   r   rb   Úconcat_tablesr™   rt   r   r   r~   Ústringrk   r
  )rS   Úonr£   Úvariable_nameÚ
value_nameÚn_rowsÚindex_rš  Úon_Úconcaträ   Úon_cols   `           rX   ÚunpivotzArrowDataFrame.unpivotñ  s-  ø€ ô �T“ˆØ�}‘¨%ˆØ>@¸j˜$Ÿ,™,Ö:�Q¨!°6ª/ŠqÓ:Èbˆð ×$Ñ$¨
Ò2ô ”B×$Ñ$°lÕCä×!Ñ!ð 	ð
 5�&Ð4˜-Ð4¨Ð4ˆØ× Ñ Ùð #&öð ô —H‘H×(Ñ(ðÛPÈÔPðä Ø 1Ü "§¡¨&¨°FÑ):¼B¿I¹I»KÓ Hóðð !ŸK™K×.Ñ.¨vÓ6ðð $ð )õ 
òóó
ð 	
ùò ;ùòs   £	D­DÂ	BD)
rT   úpa.TablerU   ztuple[int, ...]rV   r   rW   rA  ÚreturnÚNone)rj   r/   r_   r>   rì  r$   )rj   zMapping[str, Any]r_   r>   rq   z#Mapping[str, DType] | Schema | Nonerì  r$   )ry   zpa.Table | Anyrì  zTypeIs[pa.Table])rj   rë  r_   r>   rì  r$   )rj   r;   r_   r>   rq   z3Mapping[str, DType] | Schema | Sequence[str] | Nonerì  r$   )rì  r+   )rì  r#   )rì  r$   )rV   r   rì  r$   )r˜   rë  rW   rA  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ª   rA  rì  z,list[tuple[Any, ...]] | list[dict[str, Any]])rì  zIterator[ArrowSeries])rª   rA  r¯   rÒ  rì  z4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])rµ   rÂ   rì  r   )rÈ   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ë   r8   rì  zint | float)rì  z	list[str])rM   rÂ   rì  r$   )rS   rJ   rõ   r'   rì  rJ   )r  r   rì  r,   )r  z#Sequence[str] | Sequence[ArrowExpr]r  rA  rì  r)   )r  r$   r)  r5   r*  úSequence[str] | Noner+  ró  r,  rÂ   rì  r$   )r·   rá   r2  rA  rì  r$   )rS   rJ   r9  ró  rì  rJ   )rD  rÂ   r<  zbool | Sequence[bool]rC  rA  rì  r$   )rì  zpd.DataFrame)rì  rq  rL   )rV  rî  rì  zdict[str, ArrowSeries])rV  rï  rì  zdict[str, list[Any]])rV  rA  rì  z-dict[str, ArrowSeries] | dict[str, list[Any]])rµ   rÂ   rì  r$   )rS   rJ   rc  zArrowExpr | list[bool | None]rì  rJ   )rh  rÒ  rì  r$   )rm  úImplementation | Nonerì  zCompliantLazyFrame[Any, Any])rm  rô  rˆ  r   rì  z!CompliantDataFrame[Any, Any, Any])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   )
rS   rJ   r9  ró  rÅ  r9   r¼  rð  rì  rJ   )rh  rÒ  rË  rÒ  rì  r$   )rì  rë  )
rh  rõ  rÖ  zfloat | Noner×  rA  rÏ  rõ  rì  r$   )
râ  ró  r£   ró  rã  rÂ   rä  rÂ   rì  r$   )Hre   Ú
__module__Ú__qualname__rY   Úclassmethodrm   rw   Ú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â   rq   rç   rí   r   Úexploder·   rñ   rÖ   r  r  r  r'  Ú	join_asofr(  r:  rI  rK  rO  rR  rW  r`  r6  ri  rl  rx  rŠ  r�  r”  r›  r¢  r¥  r»  rÉ  rÌ  rs   rÛ  rê  Úpivotr�   rZ   rX   rJ   rJ   T   s|  „ ðNà"ðNð )ð	Nð
 ðNð  $ðNð 
óNð  ò8ó ð8ð ð8àð8ð
 ð8ð 4ð8ð 
ò8ó ð8ð ò)ó ð)ð ò
ó ð
ð ð8àð8ð
 ð8ð Dð8ð 
ò8ó ð8ó"
ó"óóó
ð KOõ 
ð ò!ó ð!ó óFð ÚHó ØHàÚJó ØJàÚWó ØWó'ó
Kð !€Mð?Øð?Ø+.ð?à	=ó?óSó7ó9ó
IóTó
ð
?Ø?ð?à	ó?ð?Ø>ð?à	ó?ð ò
ó ð
óó%ñ Ó€Gàò(ó ð(ó
ó

AóKóLð,GØ7ðGØLPðGà	óGð1
àð1
ð ð	1
ð
 &ð1
ð 'ð1
ð ð1
ð 
ó1
ñf  Ó!€IóYóLð
àð
ð *ð
ð ð	
ð
 
ó
ó,'ó*ð
Àõ ð ÚQó ØQàÚPó ØPð7Ø ð7à	6ó7ó
ð

Øð

Ø)Fð

à	ó

óóTð 37ñ%Ø/ð%à	%ó%ðN("à&ð("ð ð("ð 
+ó	("óTKóVó(Dó*ð
 Ú/ó Ø/àÚ@ó Ø@óó=ð* '+ñ=Øð=à$ð=ð !ð	=ð
 $ð=ð 
ó=óBVóðVàðVð ð	Vð
 ðVð ðVð 
óVð$!
à ð!
ð $ð!
ð ð	!
ð
 ð!
ð 
ó!
ñJ Ó�ErZ   rJ   )r   r'   rë  r,   )\Ú
__future__r   Ú	functoolsr   Útypingr   r   r   r   r	   r
   r   r   r   Úpyarrowrb   Úpyarrow.computeÚcomputerµ  r‘  r   Únarwhals._arrow.utilsr   r   Únarwhals._compliantr   Únarwhals._expression_parsingr   Únarwhals.dependenciesr   Únarwhals.exceptionsr   Únarwhals.utilsr   r   r   r   r   r   r   r   r   r   r   r    Úior!   Úpathlibr"   rå   r#   r†  r‰  rM  rN  Útyping_extensionsr$   r%   r&   Únarwhals._arrow.exprr'   r  r)   r†   r+   Únarwhals._arrow.typingr,   r-   r.   Únarwhals._translater/   Únarwhals.dtypesr0   rr   r2   Únarwhals.typingr3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   rD   Ú__annotations__rH   rJ   r�   rZ   rX   ú<module>r     sÿ   ðÞ "å Ý  Ý Ý Ý Ý Ý Ý Ý Ý ã Ý å .Ý =Ý :Ý .Ý 1Ý 3Ý *Ý )Ý "Ý .Ý 8Ý 9Ý 9Ý *Ý 0Ý (Ý &Ý 2Ý 3áÝÝÝ ãÛÝ&Ý+Ý(å.Ý5Ý8Ý6Ý+Ý,Ý2Ý%Ý&Ý2Ý2Ý,Ý7Ý6Ý(Ý2Ý(Ý(Ý+Ý*Ý&Ý+à!ð	ñ	€Hˆió 	ð !(Ð(GÑ H€N�IÓHôBØÐLÑMõBrZ   