L iUddlmZddlmZmZmZmZddlmZm Z ddl m Z m Z m Z mZmZmZddlZddlmZddlmZmZddlmZmZmZmZmZmZmZm Z m!Z!m"Z"dd l#m$Z$dd l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.dd l/m0Z0dd l1m2Z2m3Z3dd l4m5Z6e rddl7m8Z8ddl9m:Z:ddl;mddl?Z@ddlAmBZBmCZCmDZDddlEmFZFmGZGddlHmIZIddlJmKZKddlLmMZMddlNmOZOddlPmQZQddlRmSZSmTZTddl%mUZUmVZVddlWmXZXddlYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZee de>jfZgdehd<eiejdejd ejd!ejd"ejd#ejd$ejd%ejd&ejd'ejd(ejd)ejd*ejd+ejd,ejd-ejd.ejd/ejd0ejd1ejd2gZkd3ehd4<Gd5d6ed7Zly)8) annotations)IterableIteratorMappingSequence)chainproduct) TYPE_CHECKINGAnyCallableLiteralcastoverloadN)EagerDataFrame)PANDAS_TO_NUMPY_DTYPE_MISSINGPandasLikeSeries) align_and_extract_nativeget_dtype_backendimport_array_moduleiter_dtype_backendsnarwhals_to_native_dtypenative_to_narwhals_dtypeobject_native_to_narwhals_dtyperenameselect_columns_by_name set_index) assert_never) Implementation_into_arrow_table_remap_full_join_keyscheck_column_names_are_uniqueexclude_column_namesgenerate_temporary_column_nameparse_columns_to_drop scale_bytes zip_strictis_pandas_like_dataframe)InvalidOperationError ShapeError)col)BytesIO)Path) ModuleType)Self TypeAliasTypeIs)CompliantDataFrameAnyCompliantLazyFrameAny)PandasLikeExprPandasLikeGroupByPandasLikeNamespace) SparkSession)IntoArrowTable)_EagerAllowedImpl_LazyAllowedImpl)Version_LimitedContext)DType) AsofJoinStrategy DTypeBackend IntoSchema JoinStrategyPivotAggSizedMultiIndexSelectorSizedMultiNameSelectorSizeUnitUniqueKeepStrategy_2DArray _SliceIndex _SliceName.r0 Constructorfloat64float32int64int32int16int8uint64uint32uint16uint8boolz datetime64[s]zdatetime64[ms]zdatetime64[us]zdatetime64[ns]ztimedelta64[s]ztimedelta64[ms]ztimedelta64[us]ztimedelta64[ns]objectzfrozenset[np.dtype[Any]]CLASSICAL_NUMPY_DTYPEScreZdZdd d^dZed_dZe d`dZe dadZedbdZ edcdZ e ddd Z ded Z ded Z dfd Zdgd ZdhdZdidZdddjdZdkdZedZdldZdmdddndZdodZdpdZdqdZdrdZ dsdZdtdZedudZedvd Z edwd!Z edxd"Z dxd#Z dyd$Z!e!Z" dzd%Z#ed{d&Z$d{d'Z%d|d(Z&d}d)Z'd~d*Z(dd+Z)dd,Z*dd-Z+dd.Z,d}d/Z-dd0Z.dd1Z/dd2Z0dd3Z1 dd4Z2 dd5Z3 dd6Z4 dd7Z5 dd8Z6dd9Z7 dd:Z8 dd;Z9 dd<Z: dd=Z; dd>ZddA ddBZ? dmddC ddDZ@eddEZAddFZBdmdddndGZCddHZDddIZEddJZFeddKZGeddLZGddMZGddNZHddOZIdedPZJddQZK ddRZLeddSZMe ddTZN ddUZO ddVZP ddWZQ ddXZR ddYZSddZZT dd[ZU dd\ZVdd]ZWy)PandasLikeDataFrameFvalidate_backend_versionc||_||_||_|rt|j|r|j yyN) _native_frame_implementation_versionr!columns_validate_backend_version)selfnative_dataframeimplementationversionvalidate_column_namesr]s e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/narwhals/_pandas_like/dataframe.py__init__zPandasLikeDataFrame.__init__hsA.- )*:*B*B C #  * * , $c|j}t||}|jr|j}n|j r)|j dk\rddlm}nddlm}||}nG|jr*|jjj|}n d}t||j||S)N)rrr) from_arrowzCcongratulations, you entered unreachable code - please report a bugcontext)rar is_pandas to_pandasis_modin_backend_versionmodin.pandas.ioromodin.pandas.utilsis_cudfto_native_namespace DataFrameAssertionError from_native)clsdatarqrgtblnativempd_from_arrowmsgs rjrozPandasLikeDataFrame.from_arrowys 00g.  # # %]]_F  $ $ &..0J>H$C(F  # # %#779CCNNsSFWC % %vw77rlc 6|j}|j}td|j}td|j}i}d} |j D]J\} } t | |r4tj| |} | | } | || <3t| | d|| <F| || <L|s|s|j|} n |j|Dcic]}|gc}} |r|rt| j|}ndtt|D}t|j |Dcic].\\}}}|$|t!|||j|j"0}}}}| j%|} |j| |Scc}wcc}}}w)Nztype[pd.Series[Any]]type[pd.DataFrame]rpc3 K|]}dywr_.0_s rj z0PandasLikeDataFrame.from_dict..=QD= rgrh)raryrSeriesrzitems isinstancerr|r from_dictrdtypesrangelenziprrbastype)r}r~rqschemargpdxrrz aligned_data left_mostnameseries compliantrr+backendskeydtypebackend native_schemas rjrzPandasLikeDataFrame.from_dicts!00002,cjj9-s}}= 8: -1  JJL ,LD&&&),88Q $ )I)/L&)A)Y)WXY)ZL&%+ T" , v((6F((V)Dc#r')DEF .v}}nM=%F *<=036<<>8/L  ,\c57$-#*#:#:#,,  M ]]=1Fvw77%*E s  F43Fc H|j}|j}td|j}|s|s|j |}n |j |Dcic]}|gc}}|r|rt |j|} ndtt|D} t|j| D cic].\\} } } | $| t| | |j|j0} } } } |j| }|j||Scc}wcc} } } w)Nrc3 K|]}dywr_rrs rjrz1PandasLikeDataFrame.from_dicts..rrrrp)raryrrz from_recordsrrrrrrrrrbrr|)r}r~rqrrgnsrzrr+rrrrrs rj from_dictszPandasLikeDataFrame.from_dictss!00  / / 1-r||< v++D1F((V)Dc#r')DEF .v}}nM=%F *<=036<<>8/L  ,\c57$-#*#:#:#,,  M ]]=1Fvw77%*E s  D=3Dct|Sr_r')objs rj _is_nativezPandasLikeDataFrame._is_natives ',,rlcB|||j|jdS)NTrgrhri)rarb)r}r~rqs rjr|zPandasLikeDataFrame.from_natives' "22$$"&   rlcddlm}|jjj}t |t |frVfd|jD}|||jj||j|}n|||j||}|j||S)Nr)Schemac36K|]}t|ywr_)r)r native_typergs rjrz1PandasLikeDataFrame.from_numpy..s *"+~>*srcrp) narwhals.schemarraryrzrrvalueskeysrrs_numpy_column_namesr|) r}r~rqrrrzitrrgs @rj from_numpyzPandasLikeDataFrame.from_numpys + 00!/!C!C!E!O!O fw/ 0*#)==?*BtV[[];BBv((,FtS-D-DT6-RSFvw77rlc|Sr_rres rj__narwhals_dataframe__z*PandasLikeDataFrame.__narwhals_dataframe__  rlc|Sr_rrs rj__narwhals_lazyframe__z*PandasLikeDataFrame.__narwhals_lazyframe__ rrlcJddlm}||j|jS)Nrr7)rh)narwhals._pandas_like.namespacer8rarb)rer8s rj__narwhals_namespace__z*PandasLikeDataFrame.__narwhals_namespace__sG"4#7#7OOrlc|jtjtjtjhvr|jj Sdt |j}t|)Nz!Expected pandas/modin/cudf, got: )rarPANDASMODINCUDFrytyper{rers rj__native_namespace__z(PandasLikeDataFrame.__native_namespace__sj     ! !    $  '';;= =1$t7K7K2L1MNS!!rlc,t|jSr_)rrrs rj__len__zPandasLikeDataFrame.__len__ s4;;rlcT|j|j|j|dS)NFr) __class__rra)rerhs rj _with_versionz!PandasLikeDataFrame._with_version#s.~~ KK//"'   rlTricT|j||j|j|S)Nr)rrarb)redfris rj _with_nativez PandasLikeDataFrame._with_native+s.~~ //MM"7   rlc|jj}|jrB|j}t||jd||j |j St|x}t|x}k7rd|d|d}t||jj|ur"t|j||jS|jS)Nr)indexrrzExpected object of length z, got: .)rg) rr _broadcastrilocrrrr*rra)reotherrs len_otherlen_idxrs rj_extract_comparandz&PandasLikeDataFrame._extract_comparand3s !!    A47166!9EqvvN NU #ICJ)> ?.wiwykKCS/ ! <<  U *U\\5AVAVW W||rlcDtrddl}|St|jSNr)r numpyrra)renps rj _array_funcsz PandasLikeDataFrame._array_funcs?s  I"4#7#788rlcJtj|j||SNrp)rr|r)rers rj get_columnzPandasLikeDataFrame.get_columnGs++DKK,=tLLrlNcopyc(|j||S)Nrr)to_numpy)rerrs rj __array__zPandasLikeDataFrame.__array__Js}}5t}44rlct|tr t|n|}|j|jj |ddfSr_rtuplelistrrr)rerowsrs rj_gatherzPandasLikeDataFrame._gatherMs:(u5T 4  !1!1%(!;<$$ """*%% ))+""7377F#3#;#;#=D"QQ{{4  rlcp|jjdj}t||S)NT)deep)unit)r memory_usagesumr%)rer9szs rjestimated_sizez"PandasLikeDataFrame.estimated_sizes/ [[ % %4 % 0 4 4 62D))rlc<|j}|q|jjt|}|jj |j j|||jj|}nztdt|djdj|}|jg||jddj!z j#|}|j%||j'S)N)rqrrr4rordinal)method) partition_byorder_byr)rraranger_expr _from_series_series from_iterablerrrnw_colrank_to_compliant_exproverlit broadcastaliasr*all)rerrBr4r~ row_indexrIs rjwith_row_indexz"PandasLikeDataFrame.with_row_indexs))+  $$++CI6D .. ))$dkk.?.?d*I  x{#(( (:MMcRD  rH =''!T",,./eDk {{9cggi00rlcTtd|jj|DS)Nc3 K|]}|ywr_r)rxs rjrz*PandasLikeDataFrame.row..s81Q8r)rrr)rers rjrzPandasLikeDataFrame.rows"8 0 0 7888rlc|j|}|j|}|j|jj|dSr)_evaluate_single_output_exprrrrr)re predicater5 mask_natives rjr2zPandasLikeDataFrame.filtersL00;--d3   KKOOK (!  rlc^j|}|stdk(rS|Dcic]}|j|}}g}jjD]G}||vr!j |j |}nj|}|j|I|jfd|jDj}|j|} jjj| j_j| dScc}w)Nrc3@K|]}j|ywr_)r)rrres rjrz3PandasLikeDataFrame.with_columns..sS003SsFr) r$rrrrcrpopappendextendrrr&r) rer'rcr name_columns to_concatrrr)rs ` rj with_columnsz PandasLikeDataFrame.with_columnss&$&&.3t9>KHO4P1QVVQY4P 4P KK'' %D|#001A1A$1GHT*   V $  % S\=P=P=RSS//1  ) )) 4++--22   5 AA5QsD*cd|jt|j||jS)Nrcrg)rrrra)remappings rjrzPandasLikeDataFrame.renames+  4;;@T@T U  rlcxt|||}|j|jj|dS)N)strictrFr)r$rrdrop)rercreto_drops rjrfzPandasLikeDataFrame.drop s?'gfE  KK  W  -U!  rlc|j}t|tr| }n|Dcgc]}| }}|rdnd}|j|j t |||dScc}w)Nlastfirst) ascending na_positionFr)rrrWr sort_valuesr)re descending nulls_lastbyrrkdrls rjsortzPandasLikeDataFrame.sortsp [[ j$ '/9>I(231Q3I3 *f   NN48ykN R"'!  4s A%c||j}|jt|trXt fd|DrD|r!|j |j ||S|j |j||S|j |jt||j|dS)Nc3DK|]}|jywr_) is_numeric)rrTrs rjrz,PandasLikeDataFrame.top_k.. s,PVAY-A-A-C,Ps )rkFr) rrrrWrOr nsmallestnlargestrmrhead)rekrpreverserrs @rjtop_kzPandasLikeDataFrame.top_ks [[ gt $,PR,P)P((a)<==$$R[[B%78 8  NN48wN 7 < >#dDMM .gY7orlc$ddlm}||||S)Nrr5)drop_null_keys)narwhals._pandas_like.group_byr6)rerrr6s rjgroup_byzPandasLikeDataFrame.group_byTs E tNKKrlcZ|jj|j||dd|fS)Ninnerleft_onright_onhowsuffixes)rmerge)rerrrsuffixs rj _join_innerzPandasLikeDataFrame._join_inner[s7{{  LL&\ !  rlc|jj|jd||d|f}t||Dcgc] \}}||k7r||jvr|n||"}}}|j |d|Scc}}w)NleftrrrrrTrcinplace)rrr&rcrf) rerrrr result_nativeleft_key right_keyextras rj _join_leftzPandasLikeDataFrame._join_leftfs )) LL&\ * (2'8'D #)H$#$,,6Iyk&z0PandasLikeDataFrame._join_anti..s/*k9rlTr) rarxrrr#rcrrrrrrrrf)rerrrrgrrrs @rj _join_antizPandasLikeDataFrame._join_antis--  ! ! #;;$$ *g% 9>> > //"8n Xw!780  )) (224'% *  #9;  ?DArlc~|j}tt|j||||j S)zHelper function to avoid creating extra columns and row duplication. Used in `"anti"` and `"semi`" join's. Notice that a native object is returned. )r!rgrb)rarrrdrop_duplicates)rerrrrgs rjrz'PandasLikeDataFrame._join_filter_renamesC-- " .-  $)  /  rlc|dk(r|j||}n|| t|||dk(r|j||||}nu|dk(r|j|||}n[|dk(r|j |||}nA|dk(r|j ||||}n&|d k(r|j ||||}n t||jS) Nr)rrr)rrrranti)rrrsemirfull) rrrrrrrrr)rerrrrrresults rjjoinzPandasLikeDataFrame.joins '>%%E&%AF _ 0Wh/ / G^%%Wx&FF]__5'H_UF F]__5'H_UF F]__Wx%FF]__Wx%F    ((rlc |j}|j|j|j|j|||||d|fS)Nr)rrleft_byright_by directionr)rr merge_asofr) rerrrby_leftby_rightstrategyrr4s rj join_asofzPandasLikeDataFrame.join_asofsZ'')  NN  !!"f    rlcZ|j|jj|dSr)rrrxrens rjrxzPandasLikeDataFrame.head'  !1!1!!4E RRrlcZ|j|jj|dSr)rrtailrs rjrzPandasLikeDataFrame.tail"rrl)maintain_orderchdddj||}|r|j|x}r||r|rtd|j}|j |dj |dddj j|xs |j|j|}|j|d nj|r=|j |dddj j|xs |j|}n+|j j|xs |j|}|j|d S) NFrj)noneanyr)rB)rornkeepTrr) get_check_columns_existr#rcrQrrrrrmrfr) rer3rrrB mapped_keeperrortokenress rjuniquezPandasLikeDataFrame.unique%s# %W599$E  9 9& AAuAK 21dllCE##ED#9xEeE(>$,,[QU#  HHUDH 1 $))ef__V%;t||+_N ++--f.D ;-WC  E BBrl)sessionc|j}||S|tjur.ddl}ddlm}||j dd|jS|tjur=ddl }ddl m }||j|jd|jS|tjur0ddlm}ddlm} | |j|d|jS|tj&ur:ddl} dd lm} | | j/||j0 d|j S|j3r:dd lm} | d } t9| | |j;||j|dSt<)Nr)DuckDBLazyFrame pandas_dfTr)PolarsLazyFrame) DaskLazyFrame)rfr]rh) IbisLazyFramer)r]rh)SparkLikeLazyFramez5Spark like backends require `session` to be not None.)rhrgr])rsrDUCKDBduckdbnarwhals._duckdb.dataframertablerbrpolarsrr from_pandaslazyDASKdask.dataframe dataframenarwhals._dask.dataframerIBISibisnarwhals._ibis.dataframermemtablerc is_spark_likenarwhals._spark_like.dataframerrcreateDataFramer{)rerrrrrplrddrrrrrs rjrzPandasLikeDataFrame.lazyDsd NN$ ?K n++ +  B"<< ,)-   n++ +  B"!2>>),113)-   n)) ) ' > !# !:)-   n)) )  >  i >)-    " IM o%%'' 2 &)-  rlc.|jjSr_)rshapers rjrzPandasLikeDataFrame.shapes{{   rlc|r=|jDcic]'}|tj|j||)c}S|jj dScc}w)Nrprr)rcrr|rr)re as_seriesr+s rjrzPandasLikeDataFrame.to_dictsa  <<%11$++c2BDQQ {{""&"11 s,Ac  |jj}||jtju}|j t jr;||jj||S|jj|S|jjj}|jjDcgc]\}}t||r|j|!}}}|ri|j|j!j"|j$j'dj$j)dj}n |j}||j||S|D]k} t+| t,vst/j0|j2D cgc]+} |j5| j|ddddf-c} } | cS|j|Scc}}wcc} w)NrrUTC)rr)rrrarrisinrYrOrrbDatetimerrr time_zoner`rr+dtconvert_time_zonereplace_time_zonestrrrhstackrcr) rerrrdtype_datetimerval to_convertr col_dtyper+arrs rjrzPandasLikeDataFrame.to_numpys ** <''>+>+>>D   4 5 9 9 ; {{++%d+CC;;''T'2 2--66!KK--/ S#~.3==3L   ""++-j"%%e,%%d+  f B  ;;U;6 6 ' I9~!>>99$(<<,554t5LQPTWU   {{{%%? 2s $H70H c^|jtjur |jS|jtjur|jj S|jtj ur|jjSd|j}t|)NzUnknown implementation: ) rarrrrrsr _to_pandasr{rs rjrszPandasLikeDataFrame.to_pandass   >#8#8 8;;    >#6#6 6;;((* *   >#7#7 7;;))+ +()=)=(>?S!!rlcJddl}|j|jSr)rrrs)rers rjrzPandasLikeDataFrame.to_polarssr~~dnn.//rlc:|jj|yr_)r to_parquetrefiles rj write_parquetz!PandasLikeDataFrame.write_parquets t$rlcyr_rrs rj write_csvzPandasLikeDataFrame.write_csvs,/rlcyr_rrs rjr zPandasLikeDataFrame.write_csvs=@rlc<|jj|dS)NFr)rto_csvrs rjr zPandasLikeDataFrame.write_csvs{{!!$e!44rlcftj|jjd|S)NFrrp)rr|r duplicatedrs rj is_uniquezPandasLikeDataFrame.is_uniques/++ [[ # # # / /  rlc@|D|B|jdk7rd|j}t||jjdS|| d}t|t |t r|j j|n|}|jj||fS)N)rrzycan only call `.item()` if the dataframe is of shape (1, 1), or if explicit row/col values are provided; frame has shape )rrz8cannot call `.item()` with only one of `row` or `column`)rrrrrrrcr)rercolumnr_cols rjitemzPandasLikeDataFrame.items ;6>zzV#((, ~7 !o%;;##D) ) ;&.LCS/ !-7-Dt||!!&)&{{T **rlcX|j|jjdSr)rrrrs rjclonezPandasLikeDataFrame.clones%  !1!1!35 QQrlc\|j|jj|d|dSrr)reroffsets rj gather_everyz PandasLikeDataFrame.gather_everys.  !1!1&)!)!    UF4FGGrlcj}|jr d}t|j|||\}}j ||||} |r fd|Dn fd|D} t t |gt| } | jdd| f} | j} j| t|t||} | | _ dg| j_ j| jS)Nzcpivot is not supported for Modin backend due to https://github.com/modin-project/modin/issues/7409.c3K|]B}j|jjddjDyw)F)rnroN)rrrrto_listrr+res rjrz,PandasLikeDataFrame.pivot..psE   $59 sAA c3xK|]1}j|jj3ywr_)rrr[r\s rjrz,PandasLikeDataFrame.pivot..xs,Hc$//#&--/779Hs7:)rDr@rAr)rartNotImplementedErrorr2rXrr rrrcrIrrEr reset_index)rer1rrrO sort_columnsrArgrruniques ordered_colsrcremappeds` rjrTzPandasLikeDataFrame.pivot\s --  " " $wC%c* *55b%H vR0BC    IRH GF#6#6 6;;''u'= =xx##DKK00rlcb|j|jj||||dS)N)rfracreplace random_stateFr)rrsample)rerfractionwith_replacementseeds rjrmzPandasLikeDataFrame.samplesB  KK  (,<4  #( !  rlc^|j|jj||||S)N)id_vars value_varsvar_name value_name)rrmelt)rer1r variable_namerus rjunpivotzPandasLikeDataFrame.unpivots:  KK  &%    rlc,|jj}|j}|D]'}||}||jk7sd|d}t |t |dk(r/|j |jj|ddS|j|djj tfd|ddDs d}t||j}|Dcgc] }||vs| } }g| |dj|d} |ddD cgc]#} | jj%} } |j} |j | j| g| d |dScc}wcc} w) Nz-`explode` operation not supported for dtype `z`, expected List typerrFrc3zK|]2}|jjk(j4ywr_)rrrO)rcol_name anchor_series native_frames rjrz.PandasLikeDataFrame.explode..s; ( # ( ( , , .- ? D D F s8;z2exploded columns must have matching element countsr,)rbrrListr)rrrexploderrOr*rcto_framerconcat)rercrrcol_to_exploderroriginal_columnsc other_columnsexploded_framer{exploded_seriesr4r|r}s @@rjrzPandasLikeDataFrame.explodes%%$$&% 1N>*E #CE7K)),C00 1 w<1 $$ ##GAJ/u% {{ $WQZ05599;  #ABK  GCS/ !<<$4Iq8HI I%&B &Bwqz&BCKKGTUJWHOPQPR  rr/)r~zMapping[str, Any]rqr>r.IntoSchema | Mapping[str, DType | None] | Nonerr/)r~zSequence[Mapping[str, Any]]rqr>rrrr/)rr rz TypeIs[Any])r~r rqr>rr/)r~rIrqr>rz!IntoSchema | Sequence[str] | Nonerr/)rr/)rr8)rr.)rint)rhr=rr/)rr rirWrr/)rrrpd.Series[Any])rrrrr_)rr r bool | NonerrI)r'SizedMultiIndexSelector[pd.Series[Any]]rr/)r_SliceIndex | rangerr/)rcrKrr/)rcrrr/)rcrrr/)rcz&SizedMultiNameSelector[pd.Series[Any]]rr/)r list[str])rz Literal[True]rzlist[dict[str, Any]])rzLiteral[False]rzlist[tuple[Any, ...]])rrWrz,list[tuple[Any, ...]] | list[dict[str, Any]])rzIterator[PandasLikeSeries])rrWrrrz4Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]])rzdict[str, DType])r!rrr/)r'r4rr/)r3Sequence[str] | Nonerr/)r9rGrz int | float)rrrBrrr/)rrrztuple[Any, ...])rWr4rr/)rczMapping[str, str]rr/)rc Sequence[str]rerWrr/)rprrnbool | Sequence[bool]rorWrr/)ryrrp Iterable[str]rzrrr/)rz_EagerAllowedImpl | Nonerr rr2)rz(Sequence[str] | Sequence[PandasLikeExpr]rrWrr6) rr/rrrrrrr pd.DataFrame)rr/rrrr)rr/rrrrrr)rr/rrrzdict[str, str]rr) rr/rrCrrrrrrrr/)rr/rrrrrrrrrr@rrrr/)rrrr/) r3rrrHrrrBrrr/)rz_LazyAllowedImpl | NonerzSparkSession | Nonerr3)rztuple[int, int])rrWrzdict[str, Any])rr)rz pl.DataFrame)rzstr | Path | BytesIOrr)rrrr)rzstr | Path | BytesIO | Nonerz str | None)rr)r int | Noner(zint | str | Nonerr )rrr.rrr/)r1rrrrrrz#tuple[Sequence[str], Sequence[str]])r7ztuple[str, ...]rr)r!rr@rrArrr) r!zIterable[tuple[str, ...]]rDrr@rrArrz Iterator[str]) r!z Iterable[Any]rDrr@rrArrr) r1rrrrrrOz?Literal['min', 'max', 'first', 'last', 'sum', 'mean', 'median']rr ) r1rrrrrrOPivotAgg | Nonerr)r1rrrrrrOrr`rWrArrr/)rr ) rrrnz float | NonerorWrprrr/) r1rrrrwrrurrr/)rcrrr/)X__name__ __module__ __qualname__rk classmethodrorr staticmethodrr|rrrrrrrrrpropertyrrrrrrrrrrcrrr _iter_columnsrrrr"r*r6r=rQrr2r`rrfrrr{rrrrrrrrrrrrxrrrrrrrsrrr r&r*r,r/r2r<rBrGrIrPrXrTrrmrxrrrlrjr[r[esE*/--' -  - $ -#'- -"88.-8-8 ! -8 ? -8 -8-8^ 8) 8 ! 8 ? 8  8 8D--  88 ! 8 2 8 880P "  FJ  99M5$5=    >  >,,HH JJ WW 5E!M 0 0+. 0 = 0     A!*1(9 B(      '/';>' 'TL<LQUL L    '4  @M  WZ    '4@MWZ (  '4 @M WZ  S,    '4  @M    '4@M @.7JX (")") ") & ") ' ")") ")H      &  ' #    6SS'+ C$C! C $ C ' C CB,0@(, @(@% @  @D!!2-&-&^"0 %// @@5 +$R[   $ %  - '' 1#1/21?B1 11=/== =  = =" Y) Y47 YCF YSV Y  Y         ,H HH H , H H$&7 &7$ &7 % &7 , &7&7&7 &7P1               $       ( rlr[)rr4r r)m __future__rcollections.abcrrrr itertoolsrr typingr r r r rrrrnarwhals._compliantrnarwhals._pandas_like.seriesrrnarwhals._pandas_like.utilsrrrrrrrrrrnarwhals._typing_compatrnarwhals._utilsrrr r!r"r#r$r%r&narwhals.dependenciesr(narwhals.exceptionsr)r*narwhals.functionsr+rHior,pathlibr-typesr.pandaspdrrtyping_extensionsr/r0r1narwhals._compliant.typingr2r3narwhals._pandas_like.exprr4rr6rr8narwhals._spark_like.utilsr9narwhals._translater:narwhals._typingr;r<r=r>narwhals.dtypesr?narwhals.typingr@rArBrCrDrErFrGrHrIrJrKrzrL__annotations__ frozensetrrYr[rrlrjrs"AA$HH.X   1   ;A, 99W9@C72D8%    &c2<<&78K84=!!"!"!"!""#"#"#)404n PQn rl