L i~.PUdZddlmZddlZddlmZddlmZmZm Z m Z ddl m Z ddl mZmZmZmZmZerLddlmZmZmZmZdd lmZdd lmZmZmZdd l mZdd lm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'dd l m(Z(m)Z)m*Z*ddl+m,Z,ddl-m.Z.gdZ/e ddZ0e ddZ1e ddZ2e ddZ3e ddZ4e ddZ5dZ6de7d <Gd!d"ee3e0fZ8Gd#d$e8e4e1fee4e1fZ9Gd%d&e8e5e2fee5e2fZ:Gd'd(e e3e0fee3e0fZ; d*d)Z.seriesSs9#'#<#.namesXs0)-):):2)>XXT2*RQVBWDX XXrUr?rDr-returnzSequence[SeriesOrExprT]rDr-r[z Sequence[str]r:from_callables)r8rSrTrXs`` r9 _is_dtypez$CompliantSelectorNamespace._is_dtypePs,   Y~~,,VUD,IIr;c^dfd }dfd }jj||S)Ncbj|Dcgc] \}}|vs |c}}Scc}}wr5rJ)rDrQrRdtypesr8s r9rTz3CompliantSelectorNamespace.by_dtype..seriesas,'+'@'@'DUGCf CU UU ++cbj|Dcgc] \}}|vs |c}}Scc}}wr5rH)rDrWrRrcr8s r9rXz2CompliantSelectorNamespace.by_dtype..namesds,)-):):2)>OXT2",DO OOrdrYrZr\r])r8rcrTrXs`` r9by_dtypez#CompliantSelectorNamespace.by_dtype^s- V P~~,,VUD,IIr;ctj|dfd }dfd }jj||S)Nczt|rojjsUjjs;|jDcgc]%}j |s|j |'c}Sj|Dcgc]\}}j |s|c}}Scc}wcc}}wr5)r r2 is_duckdbis_ibisrLsearch get_columnrM)rDcolrQrWpr8s r9rTz2CompliantSelectorNamespace.matches..seriesls&r*,,668,,44668jjRsAHHSM c*RR)-)A)A")EXICRVCX XSXsB2&B2B7*B7cf|jDcgc]}j|s|c}Scc}wr5)rLrl)rDrnros r9rXz1CompliantSelectorNamespace.matches..namesvs%#%::?C#C? ??s..rYrZr\)recompiler:r^)r8patternrTrXros` @r9matchesz"CompliantSelectorNamespace.matchesis; JJw  Y @~~,,VUD,IIr;cXdfd }dfd }jj||S)Nczj|Dcgc]\}}|js|c}}Scc}}wr5)rJ is_numeric)rDrQrRr8s r9rTz2CompliantSelectorNamespace.numeric..series|s.'+'@'@'DXGC CX XX77czj|Dcgc]\}}|js|c}}Scc}}wr5)rHrw)rDrWrRr8s r9rXz1CompliantSelectorNamespace.numeric..namess.)-):):2)>RXT2"--/DR RRrxrYrZr\r])r8rTrXs` r9numericz"CompliantSelectorNamespace.numeric{s- Y S~~,,VUD,IIr;c`|j|jjjSr5)r_r3rc Categoricalr7s r9 categoricalz&CompliantSelectorNamespace.categoricals!~~dmm22>>??r;c`|j|jjjSr5)r_r3rcStringr7s r9stringz!CompliantSelectorNamespace.strings!~~dmm2299::r;c`|j|jjjSr5)r_r3rcBooleanr7s r9booleanz"CompliantSelectorNamespace.booleans!~~dmm22::;;r;cTdfd }jj|tS)Nc8tj|Sr5)listrE)rDr8s r9rTz.CompliantSelectorNamespace.all..seriess**2./ /r;rYrZ)r:r^r )r8rTs` r9allzCompliantSelectorNamespace.alls' 0~~,,V5Et,TTr;ct||\}}ttjj||dfd }dfd }j j ||S)N)rc time_units time_zonescjj|Dcgc]\}}|s|c}}Scc}}wr5rb)rDrQrRrtr8s r9rTz3CompliantSelectorNamespace.datetime..seriess-'+'@'@'DTGCPR CT TT//cjj|Dcgc]\}}|s|c}}Scc}}wr5rf)rDrWrRrtr8s r9rXz2CompliantSelectorNamespace.datetime..namess,)-):):2)>NXT2'"+DN NNrrYrZr\)r rr r3rcr:r^)r8 time_unit time_zonerrrTrXrts` @r9datetimez#CompliantSelectorNamespace.datetimesa "@ 9!U J 1==''!!   U O~~,,VUD,IIr;N)r[z.type[CompliantSelector[FrameT, SeriesOrExprT]])r?r"r[r)rDr-r[zIterator[SeriesOrExprT])rDr-r[Iterator[tuple[str, DType]])rDr-r[z%Iterator[tuple[SeriesOrExprT, DType]])rDr-r[z#Iterator[tuple[SeriesOrExprT, str]])r81CompliantSelectorNamespace[FrameT, SeriesOrExprT]rSz type[DType]r[(CompliantSelector[FrameT, SeriesOrExprT])rczCollection[DType | type[DType]]r[r)rsstrr[rr[r)rz$TimeUnit | Iterable[TimeUnit] | Nonerz7str | timezone | Iterable[str | timezone | None] | Noner[r)__name__ __module__ __qualname____annotations__propertyr: classmethodrArErHrJrMr_rgrtrzr}rrrrr6r;r9r&r&:s## NN KM44 .4B J? JHS J 1 J J5 J 1 JJ$J@;<U J7JKJ 2 Jr;r&c$eZdZddZddZddZy)r'c#lK|j|D]}|j|jfywr5)rErWrSr8rDrQs r9rHz#EagerSelectorNamespace._iter_schemas3%%b) &C((CII% % &s24c#@K|jEd{y7wr5) iter_columnsrCs r9rEz$EagerSelectorNamespace._iter_columnss??$$$ c#XK|j|D]}||jfywr5)rErSrs r9rJz+EagerSelectorNamespace._iter_columns_dtypess.%%b) !Csyy.  !s(*N)rDr.r[r)rDr.r[zIterator[SeriesT])rDr.r[zIterator[tuple[SeriesT, DType]]rrrrHrErJr6r;r9r'r's&%!r;r'c$eZdZddZddZddZy)r(c#TK|jjEd{y7wr5)schemaitemsrCs r9rHz"LazySelectorNamespace._iter_schemas99??$$$s (&(c#@K|jEd{y7wr5)rErCs r9rEz#LazySelectorNamespace._iter_columnss##%%%rc#Kt|j||jjEd{y7wr5)rrErvaluesrCs r9rJz*LazySelectorNamespace._iter_columns_dtypess.d004bii6F6F6HIIIs7A?AN)rDr/r[r)rDr/r[zIterator[ExprT])rDr/r[zIterator[tuple[ExprT, DType]]rr6r;r9r(r(s%&Jr;r(c>eZdZUded<ded<ded<ded<e dd Zedd Zdd Z dd Z e dd Z e ddZ ddZ e ddZ e ddZ ddZ e ddZ e ddZ ddZ ddZy) r%!EvalSeries[FrameT, SeriesOrExprT]_callr_function_namer r2r!r3c|j|}||_||_d|_|j|_|j |_|Sr5)r=r_evaluate_output_names_alias_output_namesr2r3)r>callevaluate_output_namesr?r@s r9r^z CompliantSelector.from_callablessIkk# %:""&%55''  r;c6|jjSr5)__narwhals_namespace__ selectorsr7s r9rzCompliantSelector.selectorss**,666r;cyr5r6r7s r9_to_exprzCompliantSelector._to_exprrFr;c,t|t|Sr5)rPtyper8others r9 _is_selectorzCompliantSelector._is_selectors%d,,r;cyr5r6rs r9__sub__zCompliantSelector.__sub__,/r;cyr5r6rs r9rzCompliantSelector.__sub__03r;cjr6dfd }dfd }jjj||Sj z S)Nct|\}}t||Dcgc] \}}||vr| c}}Scc}}wr5 _eval_lhs_rhsrrD lhs_names rhs_namesxrWrr8s r9rTz)CompliantSelector.__sub__..seriessO'4Ru'E$ 9$.d2h #B49,s;cXt|\}}|Dcgc] }||vs| c}Scc}wr5rrDrrrrr8s r9rXz(CompliantSelector.__sub__..namess1'4Ru'E$ 9#,Ca0BCCC ''rYrZr\rrr:r^rr8rrTrXs`` r9rzCompliantSelector.__sub__sT   U #  D>>++::65RV:W W}}&&r;cyr5r6rs r9__or__zCompliantSelector.__or__s+.r;cyr5r6rs r9rzCompliantSelector.__or__rr;cjr6dfd }dfd }jjj||Sj zS)Ncpt|\}gfdt||D|S)Nc30K|] \}}|vr|ywr5r6).0rrWrs r9 z;CompliantSelector.__or__..series..s%#Aty0srrDrrrr8s @r9rTz(CompliantSelector.__or__..series sK'4Ru'E$ 9'1$r(I'F 2Y r;cDt|\}gfd|DS)Nc3,K|] }|vs| ywr5r6)rrrs r9rz:CompliantSelector.__or__..names..sE!92D!Es rrs @r9rXz'CompliantSelector.__or__..namess,'4Ru'E$ 9REYER RRr;rYrZr\rrs`` r9rzCompliantSelector.__or__sT   U #  S>>++::65RV:W W}}&&r;cyr5r6rs r9__and__zCompliantSelector.__and__rr;cyr5r6rs r9rzCompliantSelector.__and__!rr;cjr6dfd }dfd }jjj||Sj zS)Nct|\}}t||Dcgc] \}}||vs |c}}Scc}}wr5rrs r9rTz)CompliantSelector.__and__..series*sJ'4Ru'E$ 9%/R)%D!!TPYHYAs <<cXt|\}}|Dcgc] }||vs| c}Scc}wr5rrs r9rXz(CompliantSelector.__and__..names0s0'4Ru'E$ 9#,?aY???rrYrZr\rrs`` r9rzCompliantSelector.__and__%sT   U #   @>>++::65RV:W W}}&&r;c<|jj|z Sr5)rrr7s r9 __invert__zCompliantSelector.__invert__7s~~!!#d**r;N)rrrzEvalNames[FrameT]r?r"r[r)r[r)r[$CompliantExpr[FrameT, SeriesOrExprT])rz+Self | CompliantExpr[FrameT, SeriesOrExprT]r[z0TypeIs[CompliantSelector[FrameT, SeriesOrExprT]])rrr[r)rrr[r)r%SelectorOrExpr[FrameT, SeriesOrExprT]r[rr)rrrrrr^rrrrrrrrrr6r;r9r%r%s] -,## /  1  !    77D-@- 9- // 393 -33':' .'(.. 393 -33':' .'.// 393 -33':' .'$+r;r%cF|j||j|fSr5)r)rDlhsrhss r9rr;s%  % %b )3+E+Eb+I IIr;)rDrrrrrr[z#tuple[Sequence[str], Sequence[str]])=__doc__ __future__rrq functoolsrtypingrrrrnarwhals._compliant.exprr narwhals._utilsr r r r rcollections.abcrrrrrrtyping_extensionsrrrrnarwhals._compliant.typingrrrrrrrrr r!r"narwhals.dtypesr#narwhals.typingr$__all__r)r+r,r-r.r/r0rr&r'r(r%rr6r;r9rsqC" ==2HH!993   IH%( /OP )#7 8|, !4 5 \)@ A \)@ A U  lJ&-*?!@lJ^ !z723Xj'>Q5R ! Jz5018J