L iDcUddlmZddlmZmZmZmZddlmZm Z m Z m Z m Z m Z mZddlZddlmZddlmZddlmZmZmZmZmZddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'dd l(m)Z)dd l*m+Z+erdd lm,Z,dd l-m.Z.dd lm/Z/ddl0Z1ddl2Z3ddl4m5Z5m6Z6m7Z7ddl8m9Z9m:Z:ddl;mZ>m?Z?ddl@mAZAddlBmCZCddlDmEZEmFZFddlmGZGmHZHddlImJZJmKZKddlLmMZMddlNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVe dZWe dZXdZYdeZd< e[gdZ\e dejejZ]Gd d!e e]Z^Gd"d#e^ejZ_Gd$d%e^ejZ`y)&) annotations)IteratorMappingSequenceSized) TYPE_CHECKINGAnyGenericLiteralTypeVarcastoverloadN)PolarsNamespace) PolarsSeries)FROM_DICTS_ACCEPTS_MAPPINGScatch_polars_exceptionextract_args_kwargsnarwhals_to_native_dtypenative_to_narwhals_dtype) Implementation_into_arrow_tableconvert_str_slice_to_int_slicegenerate_temporary_column_nameis_compliant_seriesis_index_selectoris_rangeis_sequence_likeis_slice_index is_slice_noneparse_columns_to_droprequires)is_numpy_array_1d)ColumnNotFoundError)Iterable) ModuleType)Callable)Self TypeAliasTypeIs)CompliantDataFrameAnyCompliantLazyFrameAny) PolarsExpr) PolarsGroupByPolarsLazyGroupBy) SparkSession)IntoArrowTable)_EagerAllowedImpl_LazyAllowedImpl)Version_LimitedContext) DataFrame LazyFrame)DType) IntoSchema JoinStrategyMultiColSelectorMultiIndexSelectorPivotAggSingleIndexSelectorUniqueKeepStrategy_2DArrayTRzCallable[..., R]r(Method)clone drop_nullsestimated_sizeexplodefilter gather_everyhead is_uniqueitem iter_rows join_asofrenamerowrowssampleselect sink_parquetsorttailto_arrow to_pandas with_columns write_csv write_parquetNativePolarsFrameceZdZUded<ded<ded<ded<ded<ded<ded<ded <ded <ded <ded <d ed<ej Zded<dd d(dZd)dZe d*dZ e d+dZ e d,dZ d-dZ d.dZd/dZd0dZed1dZd2dZd3dZddd  d4d!Ze d5d"Z d6d#Z d7d$Z d8d%Zd5d&Zd9d'Zy):PolarsBaseFrame Method[Self]rDrFrGrHrIrMrNrRrTrUrXr[ _native_framer3_versionF)validate_backend_versioncF||_||_|r|jyyN)r_r`_validate_backend_version)selfdfversionras `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/narwhals/_polars/dataframe.py__init__zPolarsBaseFrame.__init__zs'  #  * * , $c8|jj}y)zRaise if installed version below `nw._utils.MIN_VERSIONS`. **Only use this when moving between backends.** Otherwise, the validation will have taken place already. N_implementation_backend_version)re_s rhrdz)PolarsBaseFrame._validate_backend_versions  1 1 3rjc6|jjSrcrlres rhrnz PolarsBaseFrame._backend_versions##4466rjc|jSrc)r_rqs rhnativezPolarsBaseFrame.natives!!!rjc.|jjSrc)rscolumnsrqs rhruzPolarsBaseFrame.columnss{{"""rjc.t|jSN)rg)rr`rqs rh__narwhals_namespace__z&PolarsBaseFrame.__narwhals_namespace__st}}55rjc|jtjur|jjSdt |j}t |)NzExpected polars, got: )rmrPOLARSto_native_namespacetypeAssertionError)remsgs rh__native_namespace__z$PolarsBaseFrame.__native_namespace__sN   >#8#8 8'';;= =&tD,@,@'A&BCS!!rjc<|j||jSrw) __class__r`)rerfs rh _with_nativezPolarsBaseFrame._with_natives~~b$--~88rjc<|j|j|Srw)rrs)rergs rh _with_versionzPolarsBaseFrame._with_versions~~dkk7~;;rjc*|||jSrw)r`)clsdatacontexts rh from_nativezPolarsBaseFrame.from_natives4!1!122rjcR|j|jj|Src)rrsrR)re column_namess rh simple_selectzPolarsBaseFrame.simple_selects%  !3!3!3\!BCCrjc |j|Src)rR)reexprss rh aggregatezPolarsBaseFrame.aggregatest{{E""rjN)maintain_orderorder_byc|r|rtd|jd}|jj|j |dj |xs |j|j |j |}nQ|r-|jj |j ||}n"|jj |||xsd}|j|S)N row_index_)prefixF) nulls_last)keep)rr)rrurswith_row_indexrTuniquedropr)resubsetrrrtokenress rhrzPolarsBaseFrame.uniques 21dll<XE **51h51.$,,T:ee ++""8,33F3FC++$$T.2IE%C  %%rjc"|jSrc)collect_schemarqs rhschemazPolarsBaseFrame.schemas""$$rjc |jdkr|dk(rdn|}|j|jj|j||||S)N)rfullouterotherhowleft_onright_onsuffix)rnrrsjoin)rerrrrr how_natives rhrzPolarsBaseFrame.joinsa-- ;v GTW   KK  ll!    rjc|jdkr-|j|jj|||S|j|jj|||S)Nrr)kby descendingrrreverse)rnrrstop_k)rerrrs rhrzPolarsBaseFrame.top_ksn  9 ,$$ !!&"   !2!2Q2w!2!OPPrjc|jdkr.|j|jj||||S|j|jj ||||S)Nr)id_vars value_vars variable_name value_name)onindexrr)rnrrsmeltunpivot)rerrrrs rhrzPolarsBaseFrame.unpivots}  9 ,$$   !!"/) !   KK  U-J    rjc |j}|jdkr |jn|j}|j Dcic]\}}|t ||j c}}Scc}}w)Nr)rsrnrritemsrr`)rerfrnamedtypes rhrzPolarsBaseFrame.collect_schema si [["33d:@Q@Q@S &||~ e *5$--@ @   s !A0c4|j}||j|}nh|jtjtj j |j|tj}|j|S)N)r) rsrrRpl int_rangelenoveraliasallr)rerrframeresults rhrzPolarsBaseFrame.with_row_indexsu   ))$/F\\ RVVX&++X+>DDTJBFFHF  ((rj)rfr[rgr3raboolreturnNone)rr)rztuple[int, ...])rr[)rz list[str])rr)rr%)rfr[rr')rgr3rr')rr[rr4rr')rstrrr')rr rr') rSequence[str] | Nonerr>r bool | Nonerrrr'rzdict[str, DType]) rz"PolarsBaseFrame[NativePolarsFrame]rr9rrrrrrrr'rintrzstr | Iterable[str]rzbool | Sequence[bool]rr') rrrrrrrrrr')rrrrrr')__name__ __module__ __qualname____annotations__rrzrmrirdpropertyrnrsrurxrrr classmethodrrrrrrrrrrrjrhr]r]is       $$$++O*/ -  - - #' -  -477""##6"9<33D#'+)- &$&! & $ & ' & &2%% 1   &  '     , Q Q0 Q;P Q  Q  $       ,  )rjr]ceZdZUded<ded<ded<ded<ded <d ed <d ed <ded<ded<ded<ded<ded<ded<ded<eddZed?dZ e d@dZ dAdZ dBd Z dCd!Z edDd"ZedEd#ZedFd$Z dGd%ZdHd&ZdId'Z dJd(d) dKd*ZdJd(d)dLd+ZedMd,Z dNd-ZdOd.ZdPd/Z dJd(d0 dQd1ZedRd2ZedSd3Z dTd4Z dUd5ZdVd6Zej<d7 dWd8ZdXd9Z dYfd: Z! dZfd; Z"xZ#S)[PolarsDataFramer^rCzMethod[CompliantDataFrameAny]collectzMethod[int | float]rErHz Method[Any]rKz?Method[Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]]]rLzMethod[PolarsSeries]rJzMethod[tuple[Any, ...]]rOz?Method[Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]]]rPrQzMethod[pa.Table]rVzMethod[pd.DataFrame]rWrY Method[None]rZc |jjdk\rtj|}n)t dtj t ||}|j||S)N)r pl.DataFramer)rmrnrr5r from_arrowrr)rrrrss rhrzPolarsDataFrame.from_arrow0sX  " " 3 3 5 ?\\$'F."--8I$PW8X*YZFvw77rjc |r<|jDcic] \}}||t||jnd"c}}nd}|jt j |||Scc}}wNr)rrr`rr from_dict)rrrrkeyr pl_schemas rhrzPolarsDataFrame.from_dict8sz %+LLN  !S%$.eW5E5EF  r||D)z-PolarsDataFrame.from_dicts..gs5szz|$5s#%rO)rorientr) rrr`rr5r isinstancedict from_dictsrr) rrrrrrrrsrus rhrzPolarsDataFrame.from_dictsMs %+LLN  !S%$.eW5E5EF  \\3F (JtAw,E]]43F15a>G\\55geFvw77' s%Cc6t|tjSrc)rrr5objs rh _is_nativezPolarsDataFrame._is_nativel#r||,,rjcddlm}t|t|fr||j n|}|j t j|||S)Nr)Schemar)narwhals.schemarrr to_polarsrr from_numpy)rrrrrrs rhrzPolarsDataFrame.from_numpypsR +&7F"34 6N $ $ &  r}}T9=wOOrjc<|jj|dS)Nrlevel)r` dataframerqs rh to_narwhalszPolarsDataFrame.to_narwhals}}&&t6&::rjcy)Nrrrqs rh__repr__zPolarsDataFrame.__repr__ rjc|Srcrrqs rh__narwhals_dataframe__z&PolarsDataFrame.__narwhals_dataframe__ rjcyrcrrers rh_from_native_objectz#PolarsDataFrame._from_native_objectsCFrjcyrcrr s rhrz#PolarsDataFrame._from_native_objects>Arjcyrcrr s rhrz#PolarsDataFrame._from_native_objects03rjct|tjrtj||S|j |r|j |S|Sr)rrSeriesrrrrr s rhrz#PolarsDataFrame._from_native_objectsG c299 %++C> > ??3 $$S) ) rjc,t|jSrc)rrsrqs rh__len__zPolarsDataFrame.__len__s4;;rjcvtvr'jjdd}t|dfd }|S)N has not attribute ''.c0t||\}} jtj|i|S#tj j $r#}|djd}t ||d}~wt$r}t|dd}~wwxYw)Nz+ Hint: Did you mean one of these columns: ?) rrgetattrrsr exceptionsr#ru Exceptionr)argskwargsposkwdser~attrres rhfuncz)PolarsDataFrame.__getattr__..funcs+D&9IC ://0J T0JC0XSW0XYY==44 6J4<<.XYZ)#.A5 :,Q/T9 :s!*=BA88 B BBrr rr rr INHERITED_METHODSrrAttributeErrorrer"r~r#s`` rh __getattr__zPolarsDataFrame.__getattr__sA ( (^^,,--A$rJC % % : rjN)copyc|jdkr| d}t||jdkr|jj|S|jj|S)N)rrz=`copy` in `__array__` is only supported for 'polars>=0.20.28')rnNotImplementedErrorrs __array__)rerr*r~s rhr.zPolarsDataFrame.__array__s_  ; .43CQC%c* *  ; .;;((/ /{{$$U++rjc6|jjSrc)rsto_numpy)rerr*s rhr0zPolarsDataFrame.to_numpys{{##%%rjc.|jjSrc)rsshaperqs rhr2zPolarsDataFrame.shapes{{   rjc |\}}|jdkDrbt|r |jn|}t|r |jn|}||f}|jj|}|j |St |t r t|n|}t |t r t|n|}t|r|j}|j}t|st |trt|dk(r|jSt|rt|s t!|rH|j|j"t%|j&|j(|j*}nt |t,r"|dd|jj/f}n|dd|f}nt |t$r9|j|j"t%t1||j"}nkt|r*|j|jj/}n6t3|r|j|}ndt5|} t7| t|st |t8r ||gddf}nmt |t$t:fr ||ddf}nMt|r||jddf}n.t3|r ||ddf}ndt5|} t7| |j=|S)N)rrrz'Unreachable code, got unexpected type: )rnrrs __getitem__rrrlistr"tolistrrrrRrrrruslicestartstopsteprto_listrrr|r}rranger) rerKrPru rows_nativecolumns_nativeselectorselectedrsr~s rhr5zPolarsDataFrame.__getitem__s g  ; .)>+A+A+C(C!D!'7 !3/#]] !#A'4<<#XYF )1#]]7>>+A+A+CDF%g.#]]73FCDM?SC(-- &dC(#TFAI.Fuen5#D!G_F(.#DKKN3F%d+#D!G_FCDJ<PC(--$$V, ,rjcbtj|jj||Sr)rrrs get_column)rers rhrCzPolarsDataFrame.get_columns$'' (>(>t(DdSSrjc#|K|jjD]}tj||ywr)rs iter_columnsrr)reseriess rhrEzPolarsDataFrame.iter_columns s7kk..0 AF**64@ @ As:<)sessionc||tjur/tj|jj |S|tj ur:ddl}ddlm }|j}||jdd|jS|tjurHddl m}ddlm}||j#|jj%d|jS|tj&urDddl}ddlm} | |j/|j|j0 d|jS|j3r4dd lm} | d } t9| | j;||||j St<) Nrr)DuckDBLazyFrame_dfT)rarg) DaskLazyFrame) IbisLazyFrame)ru)SparkLikeLazyFramez5Spark like backends require `session` to be not None.)rGimplementationrg)rrzPolarsLazyFramerrslazyDUCKDBduckdbnarwhals._duckdb.dataframerItabler`DASKdask.dataframernarwhals._dask.dataframerK from_pandasrWIBISibisnarwhals._ibis.dataframerLmemtableru is_spark_likenarwhals._spark_like.dataframerM ValueError_from_compliant_dataframer}) rebackendrGrRrIrJddrKrZrLrMr~s rhrPzPolarsDataFrame.lazy sX ?g)>)>>"..t{{/?/?/A4.P P n++ +  B++C" U#dDMM  n)) ) ' > t{{4467)-   n)) )  >  dkk4<< @)-    " IM o%%??& @ rjcyrcrre as_seriess rhto_dictzPolarsDataFrame.to_dictCsORrjcyrcrrds rhrfzPolarsDataFrame.to_dictFsMPrjc |rQ|jjjDcic]\}}|tj||c}}S|jjdScc}}w)NrF)re)rsrfrrr)rerercols rhrfzPolarsDataFrame.to_dictIso "&!4!4!6!D#l..sDAA {{""U"33 s"A0c$ddlm}||||S)Nr)r-drop_null_keys)narwhals._polars.group_byr-)rekeysrlr-s rhgroup_byzPolarsDataFrame.group_bySs <T4GGrjcrt|||}|j|jj|S)Nstrict)r rrsr)rerurrto_drops rhrzPolarsDataFrame.dropZs0'gfE  !1!1'!:;;rjrc |jj||||||}|j |S#t$r}t|dd}~wwxYw)N)rraggregate_function sort_columns separator)rspivotrrr) rerrrrurvrwrr!s rhrxzPolarsDataFrame.pivot^sd 6[[&&#5)# 'F''// 6(+ 5 6s!4 A A  Ac|jSrc)rsrqs rhrzPolarsDataFrame.to_polarsvs {{rjch t||||||S#t$r}t|dd}~wwxYw)Nr)superrrr)rerrrrrr!rs rhrzPolarsDataFrame.joinysI 67<gQW   6(+ 5 6s 1 ,1cd t||||S#t$r}t|dd}~wwxYw)Nr)r{rrr)rerrrr!rs rhrzPolarsDataFrame.top_ks: 67=1W== = 6(+ 5 6s / */)rr0rr4rr')rzMapping[str, Any]rr4r.IntoSchema | Mapping[str, DType | None] | Nonerr')rzSequence[Mapping[str, Any]]rr4rr}rr')rzpl.DataFrame | AnyrzTypeIs[pl.DataFrame])rr?rr4rz!IntoSchema | Sequence[str] | Nonerr')rzDataFrame[pl.DataFrame]rrrr')rz pl.Seriesrr)rrrr')rr@rr@)rzpl.Series | pl.DataFrame | TrzSelf | PolarsSeries | T)rrr"rrr rc)rz Any | Noner*rrr?)rr r*rrr?)rztuple[int, int])rKz]tuple[SingleIndexSelector | MultiIndexSelector[PolarsSeries], MultiColSelector[PolarsSeries]]rr )rrrrrzIterator[PolarsSeries])raz_LazyAllowedImpl | NonerGzSparkSession | Nonerr+)rez Literal[True]rzdict[str, PolarsSeries])rezLiteral[False]rzdict[str, list[Any]])rerrz.dict[str, PolarsSeries] | dict[str, list[Any]])rn$Sequence[str] | Sequence[PolarsExpr]rlrrr-ru Sequence[str]rrrrr')rrrrrrruzPivotAgg | Nonervrrwrrr')rr) rzPolarsBaseFrame[pl.DataFrame]rr9rrrrrrrr'r)$rrrrrrrr staticmethodrrrrr rrrr)r.r0rr2r5rCrErPrfrorr!backend_versionrxrrr __classcell__rs@rhrrsc  **'' NN##  II ##88OO ! O ? O OO(8)8 ! 8 ? 8 88<--PP ! P 2 P PP";!FF AA 33/  $#',?C,,1<, ,&&!!A- A- A-FTA ,04(, 4(4% 4  4lRR PP4 4 74H8HMQH H<Xd#0 0$ 0 % 0 , 000 0$0.6,6 6 & 6 ' 66 6 6606;P6 66rjrceZdZUded<ed dZddZddZddZddZ ddZ dfd Z dd Z dd Z dd ZxZS)rOrrSc6t|tjSrc)rrr6rs rhrzPolarsLazyFrame._is_nativerrjc<|jj|dS)NrPr)r` lazyframerqs rhrzPolarsLazyFrame.to_narwhalsrrjcy)NrOrrqs rhrzPolarsLazyFrame.__repr__rrjc|Srcrrqs rh__narwhals_lazyframe__z&PolarsLazyFrame.__narwhals_lazyframe__r rjcvtvr'jjdd}t|dfd }|S)Nrrct||\}} jtj|i|S#tj j $r}t t||d}~wwxYwrc)rrrrsrrr#r)rrrr r!r"res rhr#z)PolarsLazyFrame.__getattr__..funcsl+D&9IC 9(()Cd)CS)QD)QRR==44 9)#a&1q8 9s*=A4A//A4r$r%r(s`` rhr)zPolarsLazyFrame.__getattr__sA ( (^^,,--A$rJC % % 9 rjc#zK|jtjjEd{y7wrc)rrrzrErqs rh _iter_columnszPolarsLazyFrame._iter_columnss'<< 5 56CCEEEs 1;9;c\ t|S#t$r}t|dd}~wwxYwrc)r{rrr)rer!rs rhrzPolarsLazyFrame.collect_schemas3 67)+ + 6(+ 5 6s  + &+c  |jjd i|}||tj urt j||S|tjur9ddl m }||jtjd|jdS|tjur*ddlm}||j!d|jdSd |}t#|#t$r}t|dd}~wwxYw) Nrr)PandasLikeDataFrameTF)rNrargvalidate_column_names)ArrowDataFrame)rargrzUnsupported `backend` value: r)rsrrrrrzrrPANDASnarwhals._pandas_like.dataframerrWr`PYARROWnarwhals._arrow.dataframerrVr_)rerarrr!rrr~s rhrzPolarsLazyFrame.collects 6(T[[((262F ?g)>)>>"..vt.D D n++ + K&  "-44)- &+   n,, , @!!)- &+  .gY7o9 6(+ 5 6sC C:) C55C:c$ddlm}||||S)Nr)r.rk)rmr.)rernrlr.s rhrozPolarsLazyFrame.group_bys @ tNKKrjc|jdkr*|j|jj|S|j|jj||S)Nrrq)rnrrsr)rerurrs rhrzPolarsLazyFrame.dropsU  9 ,$$T[[%5%5g%>? ?  !1!1'&!1!IJJrj)rzpl.LazyFrame | AnyrzTypeIs[pl.LazyFrame])rzLazyFrame[pl.LazyFrame]r~rrrr)raz_EagerAllowedImpl | Nonerr rr*)rnrrlrrr.r)rrrrrrrrrr)rrrrorrrs@rhrOrOs--;! F6 !/!;>! !FL8LMQL LKrjrO)a __future__rcollections.abcrrrrtypingrr r r r r rpolarsrnarwhals._polars.namespacernarwhals._polars.seriesrnarwhals._polars.utilsrrrrrnarwhals._utilsrrrrrrrrrrr r!narwhals.dependenciesr"narwhals.exceptionsr#r$typesr%r&pandaspdpyarrowpatyping_extensionsr'r(r)narwhals._compliant.typingr*r+narwhals._polars.exprr,rmr-r.narwhals._spark_like.utilsr/narwhals._translater0narwhals._typingr1r2r3r4narwhals.dataframer5r6narwhals.dtypesr7narwhals.typingr8r9r:r;r<r=r>r?r@rArBr frozensetr&r[r]rrOrrjrhrs">>PPP60    43( 99W0J72D87%     A A& & :/r||Lr)g/0r)jq6obll3q6h TKobll3TKrj