
    Lpjz                    B   % S SK Jr  S SKJrJrJrJr  S SKJrJ	r	J
r
JrJrJr  S SKrS SKJr  S SKJr  S SKJrJrJrJrJrJrJr  S SKJr  S SKJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'  S S	K(J)r)  S S
K*J+r+  \(       a  S SKJ,r,  S SK-J.r.  S SK/J0r0  S SK1J2r2  S SKJ3r3  S SK4r5S SK6r7S SK8J9r9J:r:  S SK;J<r<  S SK=J>r>  S SK?J@r@  S SKAJBrBJCrCJDrD  S SKEJFrFJGrG  S SKHJIrI  S SKJJKrK  S SKLJMrMJNrN  S SKJOrOJPrP  S SKQJRrR  S SKSJTrTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^  \S   r_S\`S'   SraS \`S!'    " S" S#\S$   5      rbg)%    )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sort_indicessortable_table)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NullPlacement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                     \ rS rSr\R
                  rSS.         SPS jjr\SQS j5       r	\        SRS j5       r
\        SSS j5       r\STS j5       r\SUS	 j5       r\        SVS
 j5       rSWS jrSXS jrSYS jrSYS jrSZS jrSS.S[S jjr\S\S j5       rS]S jrS^S jr\S_S j5       r\S`S j5       r\SaS j5       rSaS jrSbS jr\r      ScS jrSdS jrSeS jr SfS jr!SgS jr"ShS  jr#SiS! jr$    SjS" jr%    SkS# jr&\SlS$ j5       r'SlS% jr(SmS& jr)\*" 5       r+\SnS' j5       r,SoS( jr-SpS) jr.SqS* jr/SpS+ jr0      SrS, jr1            SsS- jr2\*" 5       r3StS. jr4SuS/ jr5SvS0 jr6SwS1 jr7SxS2 jr8SyS3 jr9SzS4S5.SeS6 jjjr:\S{S7 j5       r;\S|S8 j5       r;    S}S9 jr;S~S: jr<SS; jr=SS< jr>SS= jr? SzS4S>.     SS? jjjr@      SS@ jrASYSA jrBSSB jrCSSC jrDSSD jrE\SSE j5       rF\SSF j5       rFSSG jrFSSH jrGS4SI.         SSJ jjrHSSK jrISSL jrJSSM jrK          SSN jrL\*" 5       rMSOrNg4)ArrowDataFrameV   F)validate_backend_versionc                   U(       a  [        UR                  5        U(       a  U R                  5         Xl        X l        g N)r   column_names_validate_backend_version_native_frame_version)selfnative_dataframeversionvalidate_column_namesrN   s        U/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/narwhals/_arrow/dataframe.py__init__ArrowDataFrame.__init__[   s0     !)*:*G*GH#**,-    c                 UR                   R                  5       nU R                  U5      (       a  UnOUS:  d  [        U[        5      (       a  [
        R                  " U5      nOZ[        U5      (       a%  S[        U5      R                  < S3n[        U5      eS[        U5      R                  < S3n[        U5      eU R                  XBS9$ )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datarb   backend_versionnativemsgs         rY   
from_arrowArrowDataFrame.from_arrowj   s    !11BBD>>$F%D*)E)EXXd^F$T**VW[\`WaWjWjVmmnoC%c**Ed4jFYFYE\\]^CC. v77r\   c              p   U(       d+  U(       d$  U R                  [        R                  " 0 5      US9$ U(       d$  U R                  [        R                  " U5      US9$ [        S UR	                  5        5       5      (       dq  SSKJn  U" [        SU5      5      R                  5       nU(       a  U(       d  UR                  5       nO[        R                  R                  XS9nU R                  XbS9$ UR                  R                  5       S:  a  Sn[        U5      e[        R                  " UR                  5        VV	s0 s H=  u  pU[        R                   " U(       a  X   O/ /U	b  [#        XR$                  S	9OS S
9_M?     sn	n5      n
U R                  [        R                  " U
5      US9$ s  sn	nf )Nra   c              3  (   #    U  H  oS L v   M
     g 7frP    .0dtypes     rY   	<genexpr>+ArrowDataFrame.from_dict.<locals>.<genexpr>   s     >oUD=o   r   Schemar:   schemar^   z8Passing `None` dtype in `from_dict` requires PyArrow>=14rW   ri   )rm   rg   rh   anyvaluesnarwhals.schemar   r   to_arrowempty_tableTablefrom_pydictrc   rd   NotImplementedErroritemschunked_arrayr   rT   )rn   ro   rb   r   r   	pa_schemarq   rr   namenw_dtyperess              rY   	from_dictArrowDataFrame.from_dicty   sh    d??288B<?AA??288D>7?CC>fmmo>>>.tL&9:CCEI"..0--d-E??6?;;""335=LC%c**hh '-lln '5ND b&&#'TZR0+ 2(DTDTU	  '5

 rxx}g>>s   AF2
c              `   SSK Jn  U(       a2  [        S UR                  5        5       5      (       a  Sn[	        U5      eUb   U" [        SU5      5      R                  5       OUnU(       a  U(       d  UR                  5       nO[        R                  R                  XS9nU R                  XrS9$ )Nr   r~   c              3  (   #    U  H  oS L v   M
     g 7frP   rw   rx   s     rY   r{   ,ArrowDataFrame.from_dicts.<locals>.<genexpr>   s     E_E4-_r}   zR`from_dicts` with `schema` where any dtype is `None` is not supported for PyArrow.r:   r   ra   )r   r   r   r   r   r   r   r   rg   r   from_pylistrm   )rn   ro   rb   r   r   rr   r   rq   s           rY   
from_dictsArrowDataFrame.from_dicts   s     	+cEV]]_EEEfC%c** ! 4f-.779 	
 T**,FXX))$)AFv77r\   c                6    [        U [        R                  5      $ rP   )rf   rg   r   )objs    rY   re   ArrowDataFrame._is_native   s    #rxx((r\   c              $    U " XR                   SS9$ )NTrW   rX   )rT   )rn   ro   rb   s      rY   rm   ArrowDataFrame.from_native   s    4!1!1NNr\   c                 SSK Jn  UR                   Vs/ s H  n[        R                  " U5      PM     nn[        U[        U45      (       a2  [        R                  R                  Xd" U5      R                  5       S9nO.[        R                  R                  X`R                  X5      5      nU R                  XrS9$ s  snf )Nr   r~   r   ra   )r   r   Trg   arrayrf   r   r   from_arraysr   _numpy_column_namesrm   )rn   ro   rb   r   r   valarraysrq   s           rY   
from_numpyArrowDataFrame.from_numpy   s     	++/6626C"((3-62fw/00XX))&9P9P9R)SFXX))&2I2I$2WXFv77 3s    B=c                .    SSK Jn  U" U R                  S9$ )Nr   r+   r   )narwhals._arrow.namespacer,   rT   )rU   r,   s     rY   __narwhals_namespace__%ArrowDataFrame.__narwhals_namespace__   s    <dmm44r\   c                    U R                   [        R                  L a  U R                   R                  5       $ S[	        U R                   5       3n[        U5      e)NzExpected pyarrow, got: )rc   r   PYARROWto_native_namespaceri   AssertionError)rU   rr   s     rY   __native_namespace__#ArrowDataFrame.__native_namespace__   sN    >#9#99'';;=='T-A-A(B'CDS!!r\   c                    U $ rP   rw   rU   s    rY   __narwhals_dataframe__%ArrowDataFrame.__narwhals_dataframe__       r\   c                    U $ rP   rw   r   s    rY   __narwhals_lazyframe__%ArrowDataFrame.__narwhals_lazyframe__   r   r\   c                8    U R                  U R                  USS9$ )NFr   )	__class__rq   )rU   rW   s     rY   _with_versionArrowDataFrame._with_version   s    ~~dkk7RW~XXr\   TrX   c               6    U R                  XR                  US9$ )Nr   )r   rT   )rU   dfrX   s      rY   _with_nativeArrowDataFrame._with_native   s"    ~~=R  
 	
r\   c                .    U R                   R                  $ rP   )rq   shaper   s    rY   r   ArrowDataFrame.shape   s    {{   r\   c                ,    [        U R                  5      $ rP   )lenrq   r   s    rY   __len__ArrowDataFrame.__len__   s    4;;r\   c                    [        U R                  R                  U/5      R                  5       S   R	                  5       5      $ Nr   )tuplerq   take	to_pylistr   )rU   indexs     rY   rowArrowDataFrame.row   s5    T[[%%ug.88:1=DDFGGr\   c                   g rP   rw   rU   nameds     rY   rowsArrowDataFrame.rows   s    EHr\   c                   g rP   rw   r   s     rY   r   r      s    GJr\   c                   g rP   rw   r   s     rY   r   r      s    TWr\   c               v    U(       d  [        U R                  SSS95      $ U R                  R                  5       $ )NFi   )r   buffer_size)list	iter_rowsrq   r   r   s     rY   r   r      s0    UDEE{{$$&&r\   c              #     #    [        U R                  U R                  R                  5       SS9 H  u  p[        R
                  " X US9v   M     g 7f)NTstrictrb   r   )zipcolumnsrq   itercolumnsr   rm   )rU   r   seriess      rY   iter_columnsArrowDataFrame.iter_columns  s@     dkk.E.E.GPTULD))&TJJ Vs   AAc             #  B  #    U R                   nUR                  nU(       dI  [        SXB5       H8  nX5XR-    R                  5       R	                  5       n[        USS06 S h  vN   M:     g [        SXB5       H  nX5XR-    R                  5        S h  vN   M!     g  N9 N7f)Nr   r   T)rq   num_rowsrange	to_pydictr   r   r   )rU   r   r   r   r   ir   s          rY   r   ArrowDataFrame.iter_rows
  s      [[;;1h4ao.88:AAC2T222 5 1h4!/2<<>>> 5 3 ?s$   AB!B"/BB
BBc                    [        U[        5      (       d  S[        U5       3n[        U5      e[        R
                  " U R                  U   XS9$ )NzExpected str, got: r   )rf   strri   rl   r   rm   rq   )rU   r   rr   s      rY   
get_columnArrowDataFrame.get_column  sE    $$$'T
|4CC. &&t{{4'8$RRr\   c               4    U R                   R                  XS9$ )Ncopy)rq   	__array__)rU   rz   r   s      rY   r   ArrowDataFrame.__array__  s    {{$$U$66r\   c                *   [        U5      S:X  a+  U R                  U R                  R                  SS5      5      $ U R                  S:  a   [        U[        5      (       a  [        U5      nU R                  U R                  R                  U5      5      $ )Nr   )   )	r   r   rq   slicerd   rf   r   r   r   )rU   r   s     rY   _gatherArrowDataFrame._gather!  sr    t9>$$T[[%6%6q!%<==  5(Ze-D-D:D  !1!1$!788r\   c                   UR                   =(       d    SnUR                  b  UR                  O[        U R                  5      nUS:  a  [        U R                  5      U-   nUS:  a  [        U R                  5      U-   nUR                  b  UR                  S:w  a  Sn[        U5      eU R                  U R                  R                  X#U-
  5      5      $ )Nr      z4Slicing with step is not supported on PyArrow tables)startstopr   rq   stepr   r   r   )rU   r   r   r   rr   s        rY   _gather_sliceArrowDataFrame._gather_slice(  s    

a II1tyys4;;7G19$u,E!8t{{#d*D99 TYY!^HC%c**  !2!25,!GHHr\   c                    [        XR                  5      u  p#nU R                  U R                  R	                  U R                  X#U2   5      5      $ rP   )r   r   r   rq   select)rU   r   r   r   r   s        rY   _select_slice_name!ArrowDataFrame._select_slice_name4  sB    :7LLQT  !3!3DLLD4Q!RSSr\   c                    U R                  U R                  R                  U R                  UR                  UR
                  UR                  2   5      5      $ rP   )r   rq   r  r   r   r   r   )rU   r   s     rY   _select_slice_index"ArrowDataFrame._select_slice_index8  sC      KKt||GMMGLL7<<,WXY
 	
r\   c                ,   [        U[        R                  5      (       a  [        SUR	                  5       5      nO1[        U5      (       a  UR                  5       nO[        (       a  UnOUnU R                  U R                  R                  U5      5      $ )NzSequence[int])rf   rg   ChunkedArrayr   r   r   tolistrJ   r   rq   r  rU   r   selectors      rY   _select_multi_index"ArrowDataFrame._select_multi_index=  sr     gr//OW->->-@AH w''~~'HTHH  !3!3H!=>>r\   c                    [        U[        R                  5      (       a  [        SUR	                  5       5      nOUnU R                  U R                  R                  U5      5      $ )NSequence[str])rf   rg   r  r   r   r   rq   r  r  s      rY   _select_multi_name!ArrowDataFrame._select_multi_nameN  sO     gr//OW->->-@AHH  !3!3H!=>>r\   c                    U R                   R                   Vs0 s H.  nUR                  [        UR                  U R
                  5      _M0     sn$ s  snf rP   )rq   r   r   r   ri   rT   )rU   fields     rY   r   ArrowDataFrame.schemaZ  sL     ++
+ JJ0T]]KK+
 	
 
s   5Ac                    U R                   $ rP   r   r   s    rY   collect_schemaArrowDataFrame.collect_schemaa      {{r\   c                D    U R                   R                  n[        X!5      $ rP   )rq   nbytesr   )rU   unitszs      rY   estimated_sizeArrowDataFrame.estimated_sized  s    [[2$$r\   c                .    U R                   R                  $ rP   )rq   rQ   r   s    rY   r   ArrowDataFrame.columnsj  s    {{'''r\   c                f    U R                  U R                  R                  [        U5      5      SS9$ NFr   )r   rq   r  r   )rU   rQ   s     rY   simple_selectArrowDataFrame.simple_selectn  s3      KKtL12% ! 
 	
r\   c                   U R                   " U6 nU(       d3  U R                  U R                  R                  R	                  / 5      SS9$ U Vs/ s H  o3R
                  PM     nnUS   R                  nU" U6 n[        R                  R	                  U Vs/ s H  o3R                  PM     snUS9nU R                  USS9$ s  snf s  snf )NFr   r   )namesT)	_evaluate_exprsr   rq   r   r   r   _align_full_broadcastrg   r   )rU   exprs
new_seriessr)  alignreshapedr   s           rY   r  ArrowDataFrame.selects  s    ))51
$$%%11"5U %   ",,A,133*%XX!!X">X88X">e!L  4 @@	 - #?s   CCc                   [        U 5      nUR                  (       d0  [        U5      =o2:w  a  SU SU S3n[        U5      eUR                  $ UR                  S   n[        R
                  " [        R                  " XR5      /5      $ )NzExpected object of length z, got: r`   r   )r   
_broadcastr    rq   rg   r   r   )rU   otherlength	len_otherrr   values         rY   _extract_comparand!ArrowDataFrame._extract_comparand  su    T Z'	226(')AN o%<<Q5!9 :;;r\   c                "   U R                   nU R                  " U6 nU R                  nU HS  nUR                  nU R	                  U5      nXd;   a  UR                  UR                  U5      XgS9OUR                  XgS9nMU     U R                  USS9$ )N)columnFr   )	rq   r*  r   r   r8  
set_columnr   append_columnr   )rU   r,  native_framenew_columnsr   	col_valuecol_namer;  s           rY   with_columnsArrowDataFrame.with_columns  s     {{**E2,,$I ~~H,,Y7F & ''h(?'Y!///H  %   U KKr\   c                   SSK Jn  U" XUS9$ )Nr   r)   )drop_null_keys)narwhals._arrow.group_byr*   )rU   keysrE  r*   s       rY   group_byArrowDataFrame.group_by  s     	:D~FFr\   c                  SSSSSS.nUS:X  a  U R                  5       n[        S/ U R                  QUR                  QS	9nU R                  U R	                  UR                  S
S 5      R                  U5      R                  5       5      R                  R                  UR	                  UR                  S
S 5      R                  U5      R                  5       5      R                  UUSUS9R                  U/5      5      $ US:g  n	U R                  U R                  R                  UR                  U=(       d    / UXb   UU	S95      $ )NrE   rD   rF   rG   rH   )antisemirF   leftfullcross   n_bytesr   r   )rG  
right_keys	join_typeright_suffixrN  )rG  rS  rT  rU  coalesce_keys)r   r   r   r   rB  litalias	broadcastrq   joindrop)
rU   r4  howleft_onright_onsuffixhow_to_join_mapplx	key_tokenrV  s
             rY   rZ  ArrowDataFrame.join  sI       0
 '>--/C6#BT\\#BEMM#BI $$!!#''!T"2"8"8"C"M"M"OP&&4(..y9CCEf"(%!'   yk"  v  KK]#).#+  	
 		
r\   c               h    [        XUS9nU R                  U R                  R                  U5      SS9$ )Nr   Fr   )r   r   rq   r[  )rU   r   r   to_drops       rY   r[  ArrowDataFrame.drop  s4    'fE  !1!1'!:RW XXr\   c                    Uc(  U R                  U R                  R                  5       SS9$ U R                  5       nUR	                  UR
                  " U6 R                  5       SS9) nU R                  U5      $ )NFr   T)ignore_nulls)r   rq   	drop_nullr   any_horizontalcolis_nullfilter)rU   subsetra  masks       rY   
drop_nullsArrowDataFrame.drop_nulls  sr    >$$T[[%:%:%<TY$ZZ))+""377F#3#;#;#=D"QQ{{4  r\   c               x   [        U[        5      (       a  U(       a  SOSnU Vs/ s H  oUU4PM     nnO([        X1SS9 VVs/ s H  u  pWXW(       a  SOS4PM     nnnU(       a  SOSn[        [	        U R
                  U5      Xh5      n	U R                  U R
                  R                  U	5      SS9$ s  snf s  snnf )	N
descending	ascendingTr   at_endat_startFr   )rf   boolr   r   r   rq   r   r   )
rU   rs  
nulls_lastbyorderkeysortingis_descendingnull_placementindicess
             rY   sortArrowDataFrame.sort  s    j$''+5<;EHJ/KeG/KG +.bT*J*J&C mlE*J  
 5?J ~dkk2>X  !1!1'!:RW XX 0Ls   B1B6c                  [        U[        5      (       a  U(       a  SOSnU Vs/ s H  oUU4PM     nnO([        X#SS9 VVs/ s H  u  pWXW(       a  SOS4PM     nnnU VV	s/ s H  u  pUPM	     n
nn	[        U R                  U
5      n[
        R                  " XU5      nU R                  U R                  R                  U5      SS9$ s  snf s  snnf s  sn	nf )Nrt  rs  Tr   Fr   )	rf   rw  r   r   rq   pcselect_k_unstabler   r   )rU   kry  reverserz  r{  r|  is_ascendingr   _rG  rh   r  s                rY   top_kArrowDataFrame.top_k  s    gt$$*1;|EHJ/KeG/KG *-R)F)F%C \k|D)F   %,,GG,t{{D1&&u9  !1!1'!:RW XX 0L -s   C	C"Cc                6    U R                   R                  5       $ rP   )rq   	to_pandasr   s    rY   r  ArrowDataFrame.to_pandas   s    {{$$&&r\   c                B    SS K nUR                  " U R                  5      $ r   )polarsrs   rq   )rU   pls     rY   	to_polarsArrowDataFrame.to_polars  s    }}T[[))r\   Nr   c                   SS K nUR                  U R                  R                   Vs/ s H  oDR	                  5       PM     sn5      nU$ s  snf r   )numpycolumn_stackrq   r   to_numpy)rU   rz   r   nprk  arrs         rY   r  ArrowDataFrame.to_numpy  s=    ??dkk>Q>Q#R>QsLLN>Q#RS
 $Ss   A
c                   g rP   rw   rU   	as_seriess     rY   to_dictArrowDataFrame.to_dict  s    NQr\   c                   g rP   rw   r  s     rY   r  r    s    MPr\   c                   U R                  5       nU(       a  U Vs0 s H  o3R                  U_M     sn$ U Vs0 s H  o3R                  UR                  5       _M     sn$ s  snf s  snf rP   )r   r   to_list)rU   r  itsers       rY   r  r    sZ      -/0RcHHcMR003562C#++-'266 16s
   A $A%c                   U R                  5       n[        S[        U 5      S5      nUcR  UR                  R	                  UR
                  R                  X@US95      nU R                  XSR                  5       5      $ U Vs/ s H  oS4PM     nn[        [        U R                  U5      US5      nU R                  S:  a&  UR                  [        R                  " U5      5      nO8[        R                  " XGR!                  ["        R$                  " 5       5      5      nU R'                  U R                  R)                  SWU5      5      $ s  snf )Nr   r   r   rt  rv  )   )r   r   r   _expr_from_series_seriesfrom_iterabler  allr   r   rq   rd   r   r  scatterr   rg   int64r   
add_column)	rU   r   order_byra  ro   	row_indexr|  r  new_cols	            rY   with_row_indexArrowDataFrame.with_row_index  s   ))+aTA&		..))$4)HI ;;y'')44LT+UHD;,?H+U~dkk8DgzZ  5(ii 89Gjj||BHHJ'?@G  !7!74!IJJ ,Vs    E
c                    U R                  U5      R                  nU R                  U R                  R                  U5      SS9$ r%  )_evaluate_single_output_exprrq   r   rm  )rU   	predicatemask_natives      rY   rm  ArrowDataFrame.filter,  sD    77	BII  KK{+5 ! 
 	
r\   c           
         U R                   nUS:  a   U R                  UR                  SU5      SS9$ UR                  nU R                  UR                  S[	        SX1-   5      5      SS9$ Nr   Fr   )rq   r   r   r   maxrU   nr   r   s       rY   headArrowDataFrame.head2  sl    [[6$$RXXa^5$QQ;;  HHQAx|,-U ! 
 	
r\   c           	         U R                   nUS:  a7  UR                  nU R                  UR                  [	        SX1-
  5      5      SS9$ U R                  UR                  [        U5      5      SS9$ r  )rq   r   r   r   r  absr  s       rY   tailArrowDataFrame.tail;  so    [[6{{H$$Q-.e %     #a&!1 OOr\   )sessionc               J   Uc  U $ U[         R                  L a7  SS KnSSKJn  U R
                  nU" UR                  S5      SU R                  S9$ U[         R                  L aN  SS K	nSSK
Jn  U" [        SUR                  " U R
                  5      5      R                  5       SU R                  S9$ U[         R                  L aE  SS KJn  SSKJn	  U	" UR)                  U R
                  R+                  5       5      SU R                  S9$ U[         R,                  L a>  SS Kn
SS	KJn  U" U
R5                  U R
                  U R6                  S
9SU R                  S9$ UR9                  5       (       a0  SSKJn  Uc  Sn[?        U5      eURA                  XXR                  S9$ [B        e)Nr   )DuckDBLazyFrame_dfTrN   rW   )PolarsLazyFramepl.DataFrame)DaskLazyFrame)IbisLazyFrame)r   )SparkLikeLazyFramez5Spark like backends require `session` to be not None.)r  implementationrW   )"r   DUCKDBduckdbnarwhals._duckdb.dataframer  rq   rh   rT   POLARSr  narwhals._polars.dataframer  r   rs   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   )rU   backendr  r  r  r  r  r  ddr  r  r  r  rr   s                 rY   r  ArrowDataFrame.lazyD  sv    ?Kn+++B++C"U#dDMM  n+++B"^R]]4;;%?@EEG)- 
 n)))'> t{{4467)- 
 n)))> dkk4<<@)-    ""IM o%%??g}} @   r\   c                   U[         R                  L d  Uc"  SSKJn  U" U R                  U R
                  SS9$ U[         R                  L a@  SSKJn  U" U R                  R                  5       [         R                  SU R
                  SS9$ U[         R                  L a@  SS KnSSKJn  U" [        S	UR                  " U R                  5      5      SU R
                  S
9$ SU 3n[!        U5      e)Nr   )rL   Fr   )PandasLikeDataFrameT)r  rN   rW   rX   )PolarsDataFramer  r  zUnsupported `backend` value: )r   r   narwhals._arrow.dataframerL   rq   rT   PANDASnarwhals._pandas_like.dataframer  r  r  r  r  r  r   rs   r   )rU   r  kwargsrL   r  r  r  rr   s           rY   collectArrowDataFrame.collect  s     n,,,@!T]]%  n+++K&%%'-44)-&+  n+++B"^R]]4;;%?@)-  .gY7S!!r\   c                6    U R                  U R                  SS9$ r%  r   rq   r   s    rY   cloneArrowDataFrame.clone  s      E JJr\   c                F   SSK Jn  Uc=  Uc:  U R                  =nS:w  a  SU< 3n[        U5      eU" U R                  S   S   SS9$ Ub  Uc  Sn[        U5      e[        U[        5      (       a  U R                  R                  U5      OUnU" U R                  U   U   SS9$ )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  rq   rf   r   r   r   )rU   r   r;  r  r   rr   _cols          rY   itemArrowDataFrame.item  s    B;6>#.==BIG  !o%*4;;q>!+<tTT;&.LCS/!-7-D-Dt||!!&)&&t{{4'8'=PTUUr\   c                    U R                   S:  a  [        SU5      nO*U R                   Vs/ s H  o1R                  X35      PM     nnU R	                  U R
                  R                  U5      5      $ s  snf )N)   zdict[str, str])rd   r   r   getr   rq   rename_columns)rU   mappingr)  cs       rY   renameArrowDataFrame.rename  sa      E))73E04=1[[&E=  !;!;E!BCC >s   A2c                H    SS K Jn  UR                  U R                  U5        g r   )pyarrow.parquetparquetwrite_tablerq   )rU   filepps      rY   write_parquetArrowDataFrame.write_parquet  s    $
t{{D)r\   c                    g rP   rw   rU   r  s     rY   	write_csvArrowDataFrame.write_csv  s    ,/r\   c                    g rP   rw   r	  s     rY   r
  r    s    =@r\   c                   SS K Jn  Uc]  [        R                  " 5       nUR	                  U R
                  U5        UR                  5       R                  5       R                  5       $ UR	                  U R
                  U5        g r   )	pyarrow.csvcsvrg   BufferOutputStreamr
  rq   getvalue
to_pybytesdecode)rU   r  pa_csv
csv_buffers       rY   r
  r    sd    $<..0JT[[*5&&(335<<>>d+r\   c                   SS K n[        SU R                  S9n[        R                  " UR                  [        U 5      5      5      nU R                  R                  X#5      R                  U R                  5      R                  US4US4/5      n[        R                  " [        R                  " [        R                  " X4U S3   5      [        R                  " X4U S3   5      5      5      n[        R                   " XPS9$ )	Nr   rP  rQ  minr  _min_maxra   )r  r   r   rg   r   r   r   rq   r=  rH  	aggregater   r  and_is_inr   rm   )rU   r  	col_tokenr  keep_idxrq   s         rY   	is_uniqueArrowDataFrame.is_unique  s    21dllS	HHRYYs4y12	KK%%i;Xdll#YE*Y,>?@ 	
 !!GG	{$-?$@A	{$-?$@A
 &&v<<r\   )maintain_orderc          
        SS K nU(       a  U R                  U5      =n(       a  Ue[        U=(       d    U R                  5      nUS;   Gaa  SSKJn  UR                  U   n[        SU R                  S9n	U(       ao  U(       ah  [        S/ U R                  QU	PS9n
U R                  U
S S9R                  " USSS.6R                  XSS S	9nUR                  U
SSS
9R                  U
/SS9$ U(       a  U R                  " USSS.6R                  nOU R                  nUR                  U	[        R                  " UR!                  [#        U 5      5      5      5      R%                  U5      R'                  X4/5      R)                  U	 SU 35      nU R+                  UR-                  U5      SS9$ U R.                  " U6 R1                  5       nU R3                  5       nU R5                  UR6                  R9                  U5      5      $ )Nr   >   r   lastfirstr)   rP  rQ  )r  F)rx  rs  )rn  keepr!  r  )rs  rx  r   r  r   )r  _check_columns_existr   r   rF  r*   _REMAP_UNIQUEr   r  r  uniquer[  rq   r=  rg   r   r   r   rH  r  r;  r   r   r&  r  r   rm  r  r  )rU   rn  r%  r!  r  r  errorr*   agg_funcr  	idx_tokenr   rq   keep_idx_nativer  ra  s                   rY   r(  ArrowDataFrame.unique  s    	 9 9& AAuAKf,-++=#11$7H6q$,,WIN:'A'Ay'A	 ''	D'AT#%IV6UUYVZ 
 wwyUuwMRRK S   H5QXX$$Y3t99M0NO&!Y1239+Qxj12	  $$O,E %   %%v.88:))+{{39911(;<<r\   c                B    U R                  U R                  US U2   SS9$ r%  r  )rU   r  offsets      rY   gather_everyArrowDataFrame.gather_every  s'      VYQY!7u UUr\   c                    U R                   $ rP   )rq   r   s    rY   r   ArrowDataFrame.to_arrow  r  r\   c          	        SS K nUR                  R                  US9nUR                  UR	                  U5      XS9nU R                  U R                  R                  [        R                  " U[        R                  " 5       S95      SS9$ )Nr   )seed)sizereplacer   Fr   )r  randomdefault_rngchoicer   r   rq   r   rg   r   uint64)rU   r  with_replacementr5  r  rngr  s          rY   sampleArrowDataFrame.sample"  st    ii###.**RYYq\*L  KKRXXgBIIK@A"' ! 
 	
r\   c                D  ^^^^^^	 [        U 5      m	Tc  / O
[        T5      mUc  U4S jU R                   5       O
[        U5      nU R                  R                  T5      mU R                  R                  mUUU	UU4S jU 5       nU R                  [        US5      5      $ )Nc              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7frP   rw   )ry   r  r   s     rY   r{   )ArrowDataFrame.unpivot.<locals>.<genexpr>7  s     9,Q5.qq,s   		c              3     >#    U  H7  nTR                  T[        UT5      5      R                  TT" U5      5      v   M9     g 7frP   )r=  r   )ry   r   r;  
index_colsr  
value_namevariable_names     rY   r{   rB  :  sH      
  $$]F4ODRRF4L  s   ?A
permissive)	r   r   r   iterrq   r  r;  r   r   )
rU   onr   rF  rE  on_tablesr;  rD  r  s
     ```  @@@rY   unpivotArrowDataFrame.unpivot,  s     Ime=?Z9$,,9TRTX[[''.
##
 
 	
   v|!DEEr\   )rS   rT   )
rV   pa.TablerW   r6   rX   rw  rN   rw  returnNone)ro   r3   rb   r7   rO  r&   )ro   zMapping[str, Any]rb   r7   r   %Mapping[str, IntoDType | None] | NonerO  r&   )ro   zSequence[Mapping[str, Any]]rb   r7   r   rQ  rO  r&   )r   zpa.Table | AnyrO  zTypeIs[pa.Table])ro   rN  rb   r7   rO  r&   )ro   rA   rb   r7   r   z.Mapping[str, IntoDType] | Sequence[str] | NonerO  r&   )rO  r,   )rO  r$   )rO  r&   )rW   r6   rO  r&   )r   rN  rX   rw  rO  r&   )rO  ztuple[int, int])rO  int)r   rR  rO  ztuple[Any, ...])r   Literal[True]rO  zlist[dict[str, Any]])r   Literal[False]rO  zlist[tuple[Any, ...]])r   rw  rO  z,list[tuple[Any, ...]] | list[dict[str, Any]])rO  zIterator[ArrowSeries])r   rw  r   rR  rO  z4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])r   r   rO  r   )rz   r	   r   bool | NonerO  rA   )r   (SizedMultiIndexSelector[ChunkedArrayAny]rO  r&   )r   _SliceIndex | rangerO  r&   )r   rC   rO  r&   )r   rW  rO  r&   )r   rV  rO  r&   )r   z'SizedMultiNameSelector[ChunkedArrayAny]rO  r&   )rO  zdict[str, DType])r  r>   rO  zint | float)rO  z	list[str])rQ   r   rO  r&   )r,  r(   rO  r&   )r4  r   rO  r-   )rG  z#Sequence[str] | Sequence[ArrowExpr]rE  rw  rO  r*   )r4  r&   r\  r;   r]  Sequence[str] | Noner^  rX  r_  r   rO  r&   )r   r  r   rw  rO  r&   )rn  rX  rO  r&   )ry  r   rs  bool | Sequence[bool]rx  rw  rO  r&   )r  rR  ry  zIterable[str]r  rY  rO  r&   )rO  zpd.DataFrame)rO  r  rP   )r  rS  rO  zdict[str, ArrowSeries])r  rT  rO  zdict[str, list[Any]])r  rw  rO  z-dict[str, ArrowSeries] | dict[str, list[Any]])r   r   r  rX  rO  r&   )r  r(   rO  r&   )r  rR  rO  r&   )r  z_LazyAllowedImpl | Noner  zSparkSession | NonerO  r1   )r  z_EagerAllowedImpl | Noner  r	   rO  r0   )r   
int | Noner;  zint | str | NonerO  r	   )r  zMapping[str, str]rO  r&   )r  zstr | Path | BytesIOrO  rP  )r  rP  rO  r   )r  zstr | Path | BytesIO | NonerO  z
str | None)rO  r   )
rn  rX  r%  r?   r!  rU  r  rX  rO  r&   )r  rR  r/  rR  rO  r&   )rO  rN  )r  rR  r<  rw  r5  rZ  rO  r&   )
rI  rX  r   rX  rF  r   rE  r   rO  r&   )Orj   
__module____qualname____firstlineno__r   r   rc   rZ   classmethodrs   r   r   staticmethodre   rm   r   r   r   r   r   r   r   propertyr   r   r   r   r   r   _iter_columnsr   r   r   r   r  r  r  r  r  r   r  r   r   exploder   r&  r  r8  rB  rH  rZ  	join_asofr[  rp  r  r  r  r  r  r  r  rm  r  r  r  r  r  r  r  r  r
  r  r(  r0  r   r>  rL  pivot__static_attributes__rw   r\   rY   rL   rL   V   su    %,,O */ "  	 
  $  #'  
  8 8 #?#?
 !#? 6#? 
#? #?J 8)8
 !8 68 
8 80 ) ) 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!Y 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
F F $F 	F
 F 
F, Er\   rL   )r   r(   rN  r-   )c
__future__r   collections.abcr   r   r   r   typingr   r	   r
   r   r   r   pyarrowrg   pyarrow.computecomputer  r  r   narwhals._arrow.utilsr   r   r   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  r  typing_extensionsr&   r'   narwhals._arrow.exprr(   rF  r*   r   r,   narwhals._arrow.typingr-   r.   r/   narwhals._compliant.typingr0   r1   narwhals._spark_like.utilsr2   narwhals._translater3   narwhals._typingr4   r5   r6   r7   narwhals.dtypesr8   narwhals.typingr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rI   __annotations__rJ   rL   rw   r\   rY   <module>r     s    " C C E E   .   /	 	 	 4 *(  ..58 
 X72D8%    "		Hi 	 e lLMlr\   