
    hir                    4   % S SK Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SKJ
r
  S S	KJr  S S
KJr  S SKJr  S SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SK J!r!  S SK J"r"  S SK J#r#  S SK J$r$  S SK J%r%  S SK J&r&  S SK J'r'  S SK J(r(  S SK J)r)  S SK J*r*  S SK J+r+  S SK J,r,  \(       a  S S K-J.r.  S S!K/J0r0  S S"K1J2r2  S SK3r4S SK5r6S S#K7J8r8  S S$K7J9r9  S S%K7J:r:  S S&K;J<r<  S S'K=J>r>  S S(K?J@r@  S S)KAJBrB  S S*KAJCrC  S S+KAJDrD  S S,KEJFrF  S S-KGJHrH  S S.KIJJrJ  S S/KKJLrL  S S0KKJMrM  S S1KKJNrN  S S2KKJOrO  S S3KKJPrP  S S4KKJQrQ  S S5KKJRrR  S S6KKJSrS  S S7KKJTrT  S S8KKJUrU  S S9KKJVrV  S SK J"r"  S S:K JWrW  \	S;   rXS<\YS='   \	S>   rZS<\YS?'    " S@ SA\SB   5      r[g)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)
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)ArrowChunkedArray)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                  r   \ rS rSr          SLS jr\SMS j5       r\        SNS j5       r\SOS j5       r	\SPS j5       r
\        SQS j5       rSRS jrSSS	 jrSTS
 jrSTS jrSUS jrSS.SVS jjr\SWS j5       rSXS jrSYS jr\SZS j5       r\S[S j5       r\S\S j5       rS\S jrS]S jr\r      S^S jrS_S jrS`S jrSaS jrSbS jrScS jrSdS jr     SeS jr!    SfS  jr"\SgS! j5       r#SgS" jr$ShS# jr%\&" 5       r'\SiS$ j5       r(SjS% jr)SkS& jr*SlS' jr+SkS( jr,SmS) jr-            SnS* jr.\&" 5       r/SoS+ jr0SpS, jr1        SqS- jr2SrS. jr3SsS/ jr4StS0S1.S`S2 jjjr5\SuS3 j5       r6\SvS4 j5       r6    SwS5 jr6SxS6 jr7      SyS7 jr8SzS8 jr9SzS9 jr:S0S:.   S{S; jjr;      S|S< jr<STS= jr=S}S> jr>S~S? jr?SS@ jr@\SSA j5       rA\SSB j5       rASSC jrASSD jrBS0SE.         SSF jjrCSSG jrDSSH jrE          SSI jrF          SSJ jrG\&" 5       rHSKrIg0)ArrowDataFrameT   c                   U(       a  [        UR                  5        Xl        [        R                  U l        X l        X0l        [        U R
                  U R                  5        g N)	r   column_names_native_framer   PYARROW_implementation_backend_version_versionr    )selfnative_dataframebackend_versionversionvalidate_column_namess        K/var/www/html/env/lib/python3.13/site-packages/narwhals/_arrow/dataframe.py__init__ArrowDataFrame.__init__W   sK     !)*:*G*GH--55 / !5!5t7L7LM    c                 UR                   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)   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)rR   
_is_native
isinstancer   patabler   type__name__ModuleNotFoundError	TypeErrorfrom_native)clsdatara   rV   nativemsgs         rY   
from_arrowArrowDataFrame.from_arrowg   s    !22>>$F%D*)E)EXXd^F$T**TUYZ^U_UhUhTkklmC%c**Ed4jFYFYE\\]^CC. v77r\   c                  SSK Jn  Ub  U" U5      R                  5       OUn[        R                  R                  XS9nU R                  XbS9$ Nr   r1   schemar`   )narwhals.schemar2   to_arrowrd   Tablefrom_pydictrj   )rk   rl   ra   rt   r2   	pa_schemarm   s          rY   	from_dictArrowDataFrame.from_dictv   sH     	+171CF6N++-	%%d%=v77r\   c                6    [        U [        R                  5      $ rM   )rc   rd   rw   )objs    rY   rb   ArrowDataFrame._is_native   s    #rxx((r\   c              <    U " UUR                   UR                  SS9$ )NTrV   rW   rX   )rR   rS   )rk   rl   ra   s      rY   rj   ArrowDataFrame.from_native   s'    #44$$"&	
 	
r\   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 rr   )ru   r2   Trd   arrayrc   r
   rw   from_arraysrv   _numpy_column_namesrj   )rk   rl   ra   rt   r2   valarraysrm   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                D    SSK Jn  U" U R                  U R                  S9$ )Nr   r*   rV   rW   )narwhals._arrow.namespacer+   rR   rS   )rT   r+   s     rY   __narwhals_namespace__%ArrowDataFrame.__narwhals_namespace__   s!    < 114==
 	
r\   c                    U R                   [        R                  L a  U R                   R                  5       $ S[	        U R                   5       3n[        U5      e)NzExpected pyarrow, got: )rQ   r   rP   to_native_namespacerf   AssertionError)rT   rn   s     rY   __native_namespace__#ArrowDataFrame.__native_namespace__   sN    >#9#99'';;=='T-A-A(B'CDS!!r\   c                    U $ rM    rT   s    rY   __narwhals_dataframe__%ArrowDataFrame.__narwhals_dataframe__       r\   c                    U $ rM   r   r   s    rY   __narwhals_lazyframe__%ArrowDataFrame.__narwhals_lazyframe__   r   r\   c                N    U R                  U R                  U R                  USS9$ )NFr   )	__class__rm   rR   )rT   rW   s     rY   _with_versionArrowDataFrame._with_version   s.    ~~KK 11"'	  
 	
r\   TrX   c               N    U R                  UU R                  U R                  US9$ )Nr   )r   rR   rS   )rT   dfrX   s      rY   _with_nativeArrowDataFrame._with_native   s.    ~~ 11MM"7	  
 	
r\   c                .    U R                   R                  $ rM   )rm   shaper   s    rY   r   ArrowDataFrame.shape   s    {{   r\   c                ,    [        U R                  5      $ rM   )lenrm   r   s    rY   __len__ArrowDataFrame.__len__   s    4;;r\   c                ^   ^ [        U4S jU R                  R                  5        5       5      $ )Nc              3  ,   >#    U  H	  oT   v   M     g 7frM   r   ).0colindexs     rY   	<genexpr>%ArrowDataFrame.row.<locals>.<genexpr>   s     E+DCZ+Ds   )tuplerm   itercolumns)rT   r   s    `rY   rowArrowDataFrame.row   s!    E4;;+B+B+DEEEr\   c                   g rM   r   rT   nameds     rY   rowsArrowDataFrame.rows   s    EHr\   c                   g rM   r   r   s     rY   r   r      s    GJr\   c                   g rM   r   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_rowsrm   	to_pylistr   s     rY   r   r      s0    UDEE{{$$&&r\   c              #     #    [        U R                  U R                  R                  5       5       H  u  p[        R
                  " X US9v   M     g 7fNra   name)zipcolumnsrm   r   r   rj   )rT   r   seriess      rY   iter_columnsArrowDataFrame.iter_columns   s=     dkk.E.E.GHLD))&TJJ Is   AAc             #  <  #    U R                   nUR                  nU(       dF  [        SXB5       H5  nX5XR-    R                  5       R	                  5       n[        U6  S h  vN   M7     g [        SXB5       H  nX5XR-    R                  5        S h  vN   M!     g  N9 N7fNr   )rm   num_rowsrange	to_pydictvaluesr   r   )rT   r   r   r   r   ir   s          rY   r   ArrowDataFrame.iter_rows   s      [[;;1h4ao.88:AAC:%% 5 1h4!/2<<>>> 5 & ?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   )rc   strrf   ri   r   rj   rm   )rT   r   rn   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)rm   	__array__)rT   dtyper   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   rm   slicerR   rc   r   r   take)rT   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   rm   stepNotImplementedErrorr   r   )rT   r   r   r   rn   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      $ rM   )r   r   r   rm   select)rT   r   r   r   r   s        rY   _select_slice_name!ArrowDataFrame._select_slice_name  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      $ rM   )r   rm   r   r   r   r   r   )rT   r   s     rY   _select_slice_index"ArrowDataFrame._select_slice_index  sC      KKt||GMMGLL7<<,WXY
 	
r\   c                   [        U[        R                  5      (       a  [        SUR	                  5       5      nO#[        U5      (       a  UR                  5       nOUnU R                  U R                  R                  U5      5      $ )NzSequence[int])
rc   rd   ChunkedArrayr   r   r   tolistr   rm   r   rT   r   selectors      rY   _select_multi_index"ArrowDataFrame._select_multi_index  sh     gr//OW->->-@AH G$$~~'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])rc   rd   r   r   r   r   rm   r   r   s      rY   _select_multi_name!ArrowDataFrame._select_multi_name(  sQ     gr//OW->->-@AHH   !3!3H!=>>r\   c           	         U R                   R                  n[        UR                  UR                  5       VVs0 s H  u  p#U[        X0R                  5      _M     snn$ s  snnf rM   )rm   rt   r   namestypesr   rS   )rT   rt   r   r   s       rY   rt   ArrowDataFrame.schema5  sX    ##  #6<<>
> *5--@@>
 	
 
s   "A c                    U R                   $ rM   rs   r   s    rY   collect_schemaArrowDataFrame.collect_schema=      {{r\   c                D    U R                   R                  n[        X!5      $ rM   )rm   nbytesr   )rT   unitszs      rY   estimated_sizeArrowDataFrame.estimated_size@  s    [[2$$r\   c                B    U R                   R                  R                  $ rM   )rm   rt   r  r   s    rY   r   ArrowDataFrame.columnsF  s    {{!!'''r\   c                f    U R                  U R                  R                  [        U5      5      SS9$ NFr   )r   rm   r   r   )rT   rN   s     rY   simple_selectArrowDataFrame.simple_selectJ  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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  T)	_evaluate_into_exprsr   rm   r   r   r   r   rd   rw   )rT   exprs
new_seriessr  reshapedr   s          rY   r   ArrowDataFrame.selectO  s    ..6
$$%%11"5U %   ",,A,.
;XX!!X">X88X">e!L  4 @@ -">s   B5
B:c                j   [        U 5      nUR                  (       d0  [        U5      =o2:w  a  SU SU S3n[        U5      eUR                  $ SS KnUR                  S   nU R
                  S:  a!  [        US5      (       a  UR                  5       n[        R                  " UR                  X&S9/5      $ )NzExpected object of length z, got: r_   r   )   as_py)r   
fill_value)r   
_broadcastr   rm   numpyrR   hasattrr  rd   chunked_arrayfull)rT   otherlength	len_otherrn   npvalues          rY   _extract_comparand!ArrowDataFrame._extract_comparand[  s    T Z'	226(')AN o%<<Q  5(WUG-D-DKKMEv!H IJJr\   c                $   U R                   nU R                  " U6 nU R                  nU HT  nUR                  nU R	                  U5      nXd;   a   UR                  UR                  U5      UUS9OUR                  XgS9nMV     U R                  USS9$ )N)field_columnFr   )	rm   r  r   r   r*  
set_columnr   append_columnr   )rT   r  native_framenew_columnsr   	col_valuecol_namer.  s           rY   with_columnsArrowDataFrame.with_columnsj  s     {{//7,,$I ~~H,,Y7F & ''MM(+#! (  "//x/O  %   U KKr\   c                   SSK Jn  U" XUS9$ )Nr   r(   )drop_null_keys)narwhals._arrow.group_byr)   )rT   r8  keysr)   s       rY   group_byArrowDataFrame.group_by  s    9D~FFr\   c                  SSSSSS.nUS:X  G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                  [        R                  5      5      R                  R                  UR	                  UR                  S
S 5      R                  U5      R                  [        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      $ )Nr@   r?   rA   rB   rC   )antisemirA   leftr$  cross   n_bytesr   r   )r:  
right_keys	join_typeright_suffixr$  )r:  rE  rF  rG  coalesce_keys)r   r   r   r   r5  litalias	broadcastr   LITERALrm   joindrop)
rT   r%  howleft_onright_onsuffixhow_to_join_mapplx	key_tokenrH  s
             rY   rM  ArrowDataFrame.join  s^       0
 '>--/C6#BT\\#BEMM#BI $$!!GGAt$**95??@P@PQ &&4(..y9CCHDTDTUf"(%!'   yk"   v  KK]#).#+  	
 		
r\   c               h    [        XUS9nU R                  U R                  R                  U5      SS9$ )N)compliant_framer   strictFr   )r   r   rm   rN  )rT   r   rY  to_drops       rY   rN  ArrowDataFrame.drop  s9    ' &
   !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R                  " U6 R                  5       5      ) 5      $ r  )r   rm   	drop_nullr   filterany_horizontalr   is_null)rT   subsetrT  s      rY   
drop_nullsArrowDataFrame.drop_nulls  sh    >$$T[[%:%:%<TY$ZZ))+{{C..sww/?/G/G/IJJKKr\   c               6   [        U[        5      (       a  U(       a  SOSnU Vs/ s H  oUU4PM     nnO)[        X15       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 R                  R                  XhS9SS9$ s  snf s  snnf )N
descending	ascendingat_endat_start)null_placementFr   )rc   boolr   r   rm   sort_by)	rT   re  
nulls_lastbyorderkeysortingis_descendingri  s	            rY   sortArrowDataFrame.sort  s     j$''+5<;EHJ/KeG/KG +.b*=*=&C mlE*=  
 &0Z  KKG"' ! 
 	
 0Ls   BBc                6    U R                   R                  5       $ rM   )rm   	to_pandasr   s    rY   ru  ArrowDataFrame.to_pandas  s    {{$$&&r\   c                B    SS K nUR                  " U R                  5      $ r   )polarsro   rm   )rT   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   )r!  column_stackrm   r   to_numpy)rT   r   r   r(  r   arrs         rY   r~  ArrowDataFrame.to_numpy  s=    ??dkk>Q>Q#R>QsLLN>Q#RS
 $Ss   A
c                   g rM   r   rT   	as_seriess     rY   to_dictArrowDataFrame.to_dict  s    NQr\   c                   g rM   r   r  s     rY   r  r    s    MPr\   c                   U R                   n[        UR                  UR                  5      nU(       a+  U VVs0 s H  u  pEU[        R
                  " XPUS9_M     snn$ U VVs0 s H  u  pEXER                  5       _M     snn$ s  snnf s  snnf r   )rm   r   rN   r   r   rj   r   )rT   r  r   names_and_valuesr   r   s         rY   r  r    s     [[r

; "2!1ID k--cdKK!1 
 <LL;KidD--/);KLL
 Ms   "B$B
c                    U R                   nU R                  n[        R                  " [	        UR
                  5      5      nU R                  UR                  X5      R                  U/UQ5      5      $ rM   )	rm   r   rd   r   r   r   r   r0  r   )rT   r   r   colsrow_indicess        rY   with_row_indexArrowDataFrame.with_row_index  s]    [[||hhuR[[12  T/66}t}E
 	
r\   c                    [        U[        5      (       a  UnOU R                  U5      S   R                  nU R	                  U R                  R                  U5      SS9$ Nr   Fr   )rc   r   r  rm   r   r^  )rT   	predicatemask_natives      rY   r^  ArrowDataFrame.filter  s_     i&&4=K 33I>qAHHK  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$ r  )rm   r   r   r   maxrT   nr   r   s       rY   headArrowDataFrame.head  sl    [[6$$RXXa^5$QQ{{H$$C8<01 %  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  )rm   r   r   r   r  absr  s       rY   tailArrowDataFrame.tail  so    [[6{{H$$Q-.e %   $$RXXc!f%5U$SSr\   )backendc               \   Uc  U $ U[         R                  L a@  SS KnSSKJn  U R
                  nU" UR                  S5      [        U5      U R                  S9$ U[         R                  L aW  SS K
nSSKJn  U" [        SUR                  " U R
                  5      5      R                  5       [        U5      U R                  S9$ U[         R                   L aR  SS KnSS KJn  SSKJn	  U	" UR-                  U R
                  R/                  5       5      [        U5      U R                  S9$ [0        e)Nr   )DuckDBLazyFramer   r   )PolarsLazyFramepl.DataFrame)DaskLazyFrame)r   DUCKDBduckdbnarwhals._duckdb.dataframer  rm   re   r   rS   POLARSrx  narwhals._polars.dataframer  r   ro   lazyDASKdaskdask.dataframe	dataframenarwhals._dask.dataframer  from_pandasru  r   )
rT   r  r  r  r   ry  r  r  ddr  s
             rY   r  ArrowDataFrame.lazy&  s     ?K---BB"T" -f 5 
 ---B"^R]]4;;%?@EEG -b 1 
 +++'> t{{4467 -d 3 
 r\   c                    U[         R                  L d  Uc-  SSKJn  U" U R                  U R
                  U R                  SS9$ U[         R                  L aM  SS KnSSK	J
n  U" U R                  R                  5       [         R                  [        U5      U R                  SS9$ U[         R                  L aI  SS KnSSKJn  U" [#        SUR$                  " U R                  5      5      [        U5      U R                  S	9$ S
U 3n['        U5      e)Nr   )rJ   Fr   )PandasLikeDataFrame)implementationrV   rW   rX   )PolarsDataFramer  r   zUnsupported `backend` value: )r   rP   narwhals._arrow.dataframerJ   rm   rR   rS   PANDASpandasnarwhals._pandas_like.dataframer  ru  r   r  rx  r  r  r   ro   r   )	rT   r  kwargsrJ   pdr  ry  r  rn   s	            rY   collectArrowDataFrame.collectM  s    
 n,,,@! $ 5 5&+	  n+++K&%%'-44 -b 1&+  n+++B"^R]]4;;%?@ -b 1  .gY7S!!r\   c                6    U R                  U R                  SS9$ r  r   rm   r   s    rY   cloneArrowDataFrame.clonew  s      E JJr\   c                V   SSK Jn  UcE  UcB  U R                  S:w  a  SU R                  < 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   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   
ValueErrorrm   rc   r   r   r   )rT   r   r.  r  rn   _cols         rY   itemArrowDataFrame.itemz  s    B;6>zzV#((,

~7 
 !o%*4;;q>!+<tTT[FNLCS/!-7-D-Dt||!!&)&&t{{4'8'=PTUUr\   c                    U R                   nUR                   Vs/ s H  o1R                  X35      PM     nnU R                  UR	                  U5      5      $ s  snf rM   )rm   rN   getr   rename_columns)rT   mappingr   cnew_colss        rY   renameArrowDataFrame.rename  sL    [[/1?!KK%?  !2!28!<== @s   Ac                H    SS K Jn  UR                  U R                  U5        g r   )pyarrow.parquetparquetwrite_tablerm   )rT   filepps      rY   write_parquetArrowDataFrame.write_parquet  s    $
t{{D)r\   c                    g rM   r   rT   r  s     rY   	write_csvArrowDataFrame.write_csv  s    ,/r\   c                    g rM   r   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csvrd   BufferOutputStreamr  rm   getvalue
to_pybytesdecode)rT   r  pa_csv
csv_buffers       rY   r  r    sd    $<..0JT[[*5&&(335<<>>d+r\   c                   [        SU R                  S9n[        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                  " X#U S3   5      [        R                  " X#U S3   5      5      5      n[        R                  " X@S9$ )NrB  rC  minr  _min_maxr`   )r   r   rd   r   r   r   rm   r0  r;  	aggregater#  pcand_is_inr   rj   )rT   	col_token	row_indexkeep_idxrm   s        rY   	is_uniqueArrowDataFrame.is_unique  s    21dllS	HHU3t9-.	KK%%i;Xdll#YE*Y,>?@ 	
 !!GG	{$-?$@A	{$-?$@A
 &&v<<r\   )maintain_orderc          
        SS K n[        U R                  U5        [        U=(       d    U R                  5      nUS;   a  SSSS.nXR   n[	        SU R                  S9nU R
                  R                  U[        R                  " UR                  [        U 5      5      5      5      R                  U5      R                  Xv4/5      R                  U SU 35      nU R                  U R
                  R                  U5      S	S
9$ U R                   " U6 R#                  5       n	U R%                  5       n
U R'                  U
R(                  R+                  U	5      5      $ )Nr   >   anylastfirstr  r  )r  r  r  rB  rC  _Fr   )r!  r   r   r   r   rm   r0  rd   r   aranger   r;  r  r.  r   r   r  r  r   r^  _expr_from_series)rT   ra  keepr  r(  agg_func_mapagg_funcr  keep_idx_nativer  rT  s              rY   uniqueArrowDataFrame.unique  s(    	DLL&1f,-++#(5%HL#)H6q$,,WI)))RXXbiiD	>R5ST&!Y1239+Qxj12	  $$  1 %   %%v.88:))+{{39911(;<<r\   c                B    U R                  U R                  US U2   SS9$ r  r  )rT   r  offsets      rY   gather_everyArrowDataFrame.gather_every  s'      VYQY!7u UUr\   c                    U R                   $ rM   )rm   r   s    rY   rv   ArrowDataFrame.to_arrow  r  r\   c                  SS K n[        U 5      nUc  Ub  [        Xb-  5      nUR                  R	                  US9nUR                  SU5      nUR                  XUS9n	U R                  U R                  R                  U	5      SS9$ )Nr   )seed)sizereplaceFr   )
r!  r   intrandomdefault_rngr  choicer   rm   r   )
rT   r  fractionwith_replacementr
  r(  r   rngidxmasks
             rY   sampleArrowDataFrame.sample  s     	t99-H'(Aii###.ii8$zz#/?z@  !1!1$!7u UUr\   c                T  ^  [        T 5      nUc  / OUnUc$  T R                   Vs/ s H  owU;  d  M
  UPM     snOUnT R                  S:  a  [        [        R
                  SS9O[        R
                  n	/ UQUPUPn
T R                  U	" U Vs/ s H  n[        R                  R                  / U 4S jU 5       Q[        S[        R                  " U/U-  [        R                  " 5       5      5      PT R                  R                  U5      PU
S9PM     sn5      5      $ s  snf s  snf )N)r^   r   r   rG   )promote_optionsc              3  Z   >#    U  H   nTR                   R                  U5      v   M"     g 7frM   )rm   r.  )r   idx_colrT   s     rY   r   )ArrowDataFrame.unpivot.<locals>.<genexpr>  s#     Pgdkk0099s   (+r,   r  )r   r   rR   r   rd   concat_tablesr   rw   r   r   r   stringrm   r.  )rT   onr   variable_name
value_namen_rowsindex_r  on_concatr  on_cols   `           rY   unpivotArrowDataFrame.unpivot  s6    T}%>@j$,,:,Q6/q,:b $$
2 B$$lC!! 	
 5&4-44   #& #& HH((PP  3 "&F):BIIK H !KK..v6 $ ) 
 #&
 	
 ;s   	D D BD%)rR   rQ   rO   rS   )
rU   pa.TablerV   ztuple[int, ...]rW   r   rX   rj  returnNone)rl   r/   ra   r>   r*  r$   )rl   zMapping[str, Any]ra   r>   rt   z#Mapping[str, DType] | Schema | Noner*  r$   )r}   zpa.Table | Anyr*  zTypeIs[pa.Table])rl   r)  ra   r>   r*  r$   )rl   r;   ra   r>   rt   z3Mapping[str, DType] | Schema | Sequence[str] | Noner*  r$   )r*  r+   )r*  r#   )r*  r$   )rW   r   r*  r$   )r   r)  rX   rj  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   rj  r*  z,list[tuple[Any, ...]] | list[dict[str, Any]])r*  zIterator[ArrowSeries])r   rj  r   r  r*  z4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])r   r   r*  r   )r   r   r   bool | Noner*  r;   )r   *SizedMultiIndexSelector[ArrowChunkedArray]r*  r$   )r   _SliceIndex | ranger*  r$   )r   r=   r*  r$   )r   r0  r*  r$   )r   r/  r*  r$   )r   z)SizedMultiNameSelector[ArrowChunkedArray]r*  r$   )r*  zdict[str, DType])r
  r8   r*  zint | float)r*  z	list[str])rN   r   r*  r$   )rT   rJ   r  r'   r*  rJ   )r%  r   r*  r,   )r:  r   r8  rj  r*  r)   )r%  r$   rO  r5   rP  Sequence[str] | NonerQ  r1  rR  r   r*  r$   )r   r   rY  rj  r*  r$   )rT   rJ   ra  r1  r*  rJ   )rm  r   re  zbool | Sequence[bool]rl  rj  r*  r$   )r*  zpd.DataFrame)r*  r  rM   )r  r,  r*  zdict[str, ArrowSeries])r  r-  r*  zdict[str, list[Any]])r  rj  r*  z-dict[str, ArrowSeries] | dict[str, list[Any]])r   r   r*  r$   )rT   rJ   r  zArrowExpr | list[bool | None]r*  rJ   )r  r  r*  r$   )r  Implementation | Noner*  zCompliantLazyFrame[Any, Any])r  r2  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   )
rT   rJ   ra  r1  r  r9   r  r.  r*  rJ   )r  r  r  r  r*  r$   )r*  r)  )
r  r3  r  zfloat | Noner  rj  r
  r3  r*  r$   )
r  r1  r   r1  r   r   r!  r   r*  r$   )Jrg   
__module____qualname____firstlineno__rZ   classmethodro   rz   staticmethodrb   rj   r   r   r   r   r   r   r   propertyr   r   r   r   r   r   _iter_columnsr   r   r   r   r   r   r   r   r   rt   r  r  r   exploder   r  r   r*  r5  r;  rM  	join_asofrN  rb  rr  ru  rz  r~  r  r  r^  r  r  r  r  r  r  r  r  r  r  r  r  rv   r  r'  pivot__static_attributes__r   r\   rY   rJ   rJ   T   sh   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

?A?	??@?	? 
 
% G( (


AKL,G
1
1
 	1

 &1
 '1
 1
 
1
f  !IYL

 *
 	

 

,'*
   Q QP PM M	6M




)F

	

T 37%/%	%%N("&(" (" 
+	("TKV(>
*
 / /@ @=* '+==$= !	=
 $= 
=BVVV 	V
 V V 
V$!
 !
 $!
 	!

 !
 
!
J Er\   rJ   )r   r'   r)  zpa.ChunkedArray[Any])\
__future__r   	functoolsr   typingr   r   r   r   r	   r
   r   r   r   pyarrowrd   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  rx  ry  typing_extensionsr$   r%   r&   narwhals._arrow.exprr'   r9  r)   r   r+   narwhals._arrow.typingr,   r-   r.   narwhals._translater/   narwhals.dtypesr0   ru   r2   narwhals.typingr3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   rD   __annotations__rH   rJ   r   r\   rY   <module>rT     s    "              . = : . 1 0 * ) " . 8 9 9 * 0 ( & 2 3 &+(.588+,2%&22,76(2((+*&+!		Hi 	 !((G HNIHBQRBr\   