L i PddlmZddlZddlmZddlmZddlmZm Z ddl Z ddl m Z m Z ddl mZddlmZdd lmZdd lmZmZmZmZmZmZmZmZdd lmZmZdd lm Z dd l!m"Z"er"ddl#m$Z$ddl m%Z%ddl&m'Z'ddl!m(Z(ddl)m*Z*m+Z+m,Z,ejZZ-Gdde eede fZ.y)) annotationsN)reduce)chain) TYPE_CHECKINGAny)CoalesceOperator ExpressionDuckDBLazyFrame DuckDBExpr)DuckDBSelectorNamespace)DeferredTimeZoneF concat_str duckdb_dtypesfunctionlitnarwhals_to_native_dtypewhen)combine_alias_output_namescombine_evaluate_output_names) SQLNamespace)Implementation)Iterable)DuckDBPyRelation) WindowInputs)Version) ConcatMethod IntoDTypeNonNestedLiteralceZdZUejZded<ddZeddZ eddZ eddZ ddZ ddZ d dd Zdd Z dd Z dd ZddZddZddZy )DuckDBNamespacer_implementationc||_yN)_version)selfversions `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/narwhals/_duckdb/namespace.py__init__zDuckDBNamespace.__init__0s  c,tj|Sr&)rfrom_namespacer(s r* selectorszDuckDBNamespace.selectors3s&55d;;r,ctSr&r r/s r*_exprzDuckDBNamespace._expr7sr,ctSr&r r/s r* _lazyframezDuckDBNamespace._lazyframe;sr,ct|g|Sr&)r)r(nameargss r* _functionzDuckDBNamespace._function?s$t$$r,ct|Sr&)r)r(values r*_litzDuckDBNamespace._litBs 5zr,NcT| t||St||j|Sr&)r otherwise)r( conditionr:r=s r*_whenzDuckDBNamespace._whenEs/   5) )Iu%// ::r,ct|Sr&)r)r(exprss r* _coalescezDuckDBNamespace._coalesceOs ''r,c |Dcgc]}|j}}t|}|d}|j |dk(r$t fd|ddDs d}t ||dk(r<|j }|ddD]}t jd}|j|Std|}|j|Scc}w) Nrverticalc3<K|]}|jk(ywr&)schema).0xrFs r* z)DuckDBNamespace.concat..Ys(OV);(Osz&inputs should all have the same schemadiagonalz] from res select * union all by name from _item select * c$|j|Sr&)union)rHys r*z(DuckDBNamespace.concat..ds!''!*r,) _native_framelistrFall TypeErrornativeduckdbsql _with_nativer) r(itemshowitem native_itemsfirstmsgres_itemrFs @r*concatzDuckDBNamespace.concatRs8==t**= =U a * S(OU12Y(O%O:CC. * ,,C%ab) jj"  %%c* *,l;!!#&&!>sB?cndfd }|j|tt|jS)NctjfdD}r t|digSt|}t t j d|D}d|D}t|t|digS)Nc3.K|] }|ywr&)rGedfs r*rIz;DuckDBNamespace.concat_str..func..ks.func..os-GQahhj-Gsc3FK|]}|jtywr&)castVARCHAR)rGcs r*rIz;DuckDBNamespace.concat_str..func..ps6Aw6!)r from_iterablertupleroperatoror_r)rfcols null_maskcols_strrA ignore_nullsrgs` r*funcz(DuckDBNamespace.concat_str..funcjst).)<)<I>??;Dx||-G$-GHI66H)Z%OY%OPQ Qr,callevaluate_output_namesalias_output_namesr)rfr returnlist[Expression])r2rrr')r(rgrwrArxs ``` r*rzDuckDBNamespace.concat_strgs; Rzz"?"G95AMM   r,cDdd}|jj|g|S)Nct|}ttjd|D}ttjd|D}||z S)Nc3FK|]}t|tdyw)rN)rrrGcols r*rIz@DuckDBNamespace.mean_horizontal..func..}s)XC*:3A*G)Xroc3vK|]1}|jjtj3ywr&) isnotnullrlrBIGINTrs r*rIz@DuckDBNamespace.mean_horizontal..func..s'Zcs}}33M4H4HIZs79)rqrrradd)rttotalcounts r*rxz-DuckDBNamespace.mean_horizontal..func{sH;D8<<)XSW)XYE ZUYZE5= r,)rtzIterable[Expression]r~r )r2_from_elementwise_horizontal_op)r(rArxs r*mean_horizontalzDuckDBNamespace.mean_horizontalzs% !:tzz99$GGGr,ctdfd  dfd }j|ddjS)Nct|j}2tj|}t j |gSt gSr&)rrTrr'rrl)rftztargetdtyper(r:s r*rxz!DuckDBNamespace.lit..funcsK!")),B 1%KE /00J< r,c|Sr&rd)rf_window_inputsrxs r* window_funcz(DuckDBNamespace.lit..window_funcs8Or,cdgS)Nliteralrd_dfs r*rOz%DuckDBNamespace.lit..sykr,)r{r|r)r})rfr rzWindowInputs[Expression]r~rr2r')r(r:rrrxs``` @r*rzDuckDBNamespace.litsP   1I    zz  "9#MM   r,cJdd}|j|dd|jS)NctdgS)Nr)rrs r*rxz!DuckDBNamespace.len..funcsgJ< r,cdgS)Nlenrdrs r*rOz%DuckDBNamespace.len..sugr,ry)rr r~rr)r(rxs r*rzDuckDBNamespace.lens/ zz"5#MM   r,)r)rr~None)r~r)r~ztype[DuckDBExpr])r~ztype[DuckDBLazyFrame])r6strr7r r~r )r:rr~r r&)r>r r:r r=zExpression | Noner~r )rAr r~r )rXzIterable[DuckDBLazyFrame]rYrr~r )rAr rgrrwboolr~r )rAr r~r )r:r!rzIntoDType | Noner~r )r~r )__name__ __module__ __qualname__rDUCKDBr$__annotations__r+propertyr0r2r4r8r;r?rBr`rrrrrdr,r*r#r#+s'5&;&;O^; <<%(, ;;;% ;  ;('.'8D' '*   -0 @D  & H *  r,r#r)/ __future__rrr functoolsr itertoolsrtypingrrrUrr narwhals._duckdb.dataframer narwhals._duckdb.exprr narwhals._duckdb.selectorsrnarwhals._duckdb.utilsrrrrrrrrnarwhals._expression_parsingrrnarwhals._sql.namespacernarwhals._utilsrcollections.abcrrnarwhals._compliant.windowrrnarwhals.typingrr r!rmr#rdr,r*rs}"% /6,>   1*('7'II   x *.@*LMx r,