
    h%2                    J   % S 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  \(       d"  SSKr\R2                  S:  a  SS
KJr  OSSKJr  OSS
KJr  \(       al  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J0r0  SS&KJ1r1  SS'KJ2r2  / S(Qr3\" S)S*S+9r4\" S,S-S+9r5\" S.S/S+9r6\" S0S1S+9r7\" S2S3S+9r8\" S4S5S+9r9S6r:S7\;S8'    " S9 S:\\7\44   5      r< " S; S<\<\8\54   \\8\54   5      r= " S= S>\<\9\64   \\9\64   5      r> " S? S@\\7\44   \\7\44   5      r?        SBSA jr@g)Cz=Almost entirely complete, generic `selectors` implementation.    )annotationsN)partial)TYPE_CHECKING)Any)
Collection)Iterable)Iterator)Protocol)Sequence)TypeVar)overload)CompliantExpr)_parse_time_unit_and_time_zone)%dtype_matches_time_unit_and_time_zone)get_column_names)import_dtypes_module)is_compliant_dataframe)   	   )Generic)timezone)Self)	TypeAlias)TypeIs)
NativeExpr)CompliantDataFrameAny)CompliantExprAny)CompliantFrameAny)CompliantLazyFrameAny)CompliantSeriesAny)CompliantSeriesOrNativeExprAny)	EvalNames)
EvalSeries)DType)TimeUnit)Implementation)Version)_FullContext)CompliantSelectorCompliantSelectorNamespaceEagerSelectorNamespaceLazySelectorNamespaceSeriesOrExprTr!   )boundSeriesTr    ExprTr   FrameTr   
DataFrameTr   
LazyFrameTr   zOCompliantSelector[FrameT, SeriesOrExprT] | CompliantExpr[FrameT, SeriesOrExprT]r   SelectorOrExprc                     \ rS rSr% S\S'   S\S'   S\S'   \SS j5       r\SS	 j5       rSS
 jr	SS jr
    SS jrSS jr      SS jr    S S jrS!S jrS"S jrS"S jrS"S jrS"S jrS"S jr      S#S jrSrg)$r*   N   r&   _implementationtuple[int, ...]_backend_versionr'   _versionc                   U R                  U 5      nUR                  Ul        UR                  Ul        UR                  Ul        U$ N)__new__r7   r9   r:   )clscontextobjs      O/var/www/html/env/lib/python3.13/site-packages/narwhals/_compliant/selectors.pyfrom_namespace)CompliantSelectorNamespace.from_namespaceS   s>    kk#%55&77''
    c                    g r<    selfs    rA   	_selector$CompliantSelectorNamespace._selector[   s    KNrD   c                   g r<   rF   rH   dfs     rA   _iter_columns(CompliantSelectorNamespace._iter_columns^   s    srD   c                   g r<   rF   rL   s     rA   _iter_schema'CompliantSelectorNamespace._iter_schema`   s    #rD   c                   g r<   rF   rL   s     rA   _iter_columns_dtypes/CompliantSelectorNamespace._iter_columns_dtypesb   s    03rD   c             #  j   #    [        U R                  U5      UR                  5       S h  vN   g  N7fr<   )ziprN   columnsrL   s     rA   _iter_columns_names.CompliantSelectorNamespace._iter_columns_namesf   s$     t))"-rzz:::s   )313c               ^   ^ ^ SUU 4S jjnSUU 4S jjnT R                   R                  X#T S9$ )Nc                   > TR                  U 5       VVs/ s H  u  p[        UT5      (       d  M  UPM     snn$ s  snnf r<   )rT   
isinstance)rM   sertpdtyperH   s      rA   series4CompliantSelectorNamespace._is_dtype.<locals>.seriesl   s<    #'#<#<R#@#@JrSXDY#@     ;;c                   > TR                  U 5       VVs/ s H  u  p[        UT5      (       d  M  UPM     snn$ s  snnf r<   )rQ   r]   )rM   namer_   r`   rH   s      rA   names3CompliantSelectorNamespace._is_dtype.<locals>.namesq   s4    )-):):2)>X)>XT*RQVBWD)>XXXrc   r?   rM   r1   returnzSequence[SeriesOrExprT]rM   r1   rj   zSequence[str]rI   from_callables)rH   r`   ra   rf   s   ``  rA   	_is_dtype$CompliantSelectorNamespace._is_dtypei   s5    	 	
	Y 	Y ~~,,VD,IIrD   c                ^   ^ ^ SUU 4S jjnSUU 4S jjnT R                   R                  X#T S9$ )Nc                l   > TR                  U 5       VVs/ s H  u  pUT;   d  M  UPM     snn$ s  snnf r<   rT   )rM   r^   r_   dtypesrH   s      rA   ra   3CompliantSelectorNamespace.by_dtype.<locals>.seriesy   s0    '+'@'@'DU'DGCfC'DUUU   00c                l   > TR                  U 5       VVs/ s H  u  pUT;   d  M  UPM     snn$ s  snnf r<   rQ   )rM   re   r_   rs   rH   s      rA   rf   2CompliantSelectorNamespace.by_dtype.<locals>.names|   s0    )-):):2)>O)>XT",D)>OOOru   rh   ri   rk   rl   )rH   rs   ra   rf   s   ``  rA   by_dtype#CompliantSelectorNamespace.by_dtypev   s7    	V 	V	P 	P ~~,,VD,IIrD   c                   ^ ^ [         R                  " U5      mSUU 4S jjnSU4S jjnT R                  R                  X#T S9$ )Nc                |  > [        U 5      (       ac  TR                  R                  5       (       dD  U R                   Vs/ s H,  nTR	                  U5      (       d  M  U R                  U5      PM.     sn$ TR                  U 5       VVs/ s H  u  p#TR	                  U5      (       d  M  UPM!     snn$ s  snf s  snnf r<   )r   r7   	is_duckdbrX   search
get_columnrY   )rM   colr^   re   prH   s       rA   ra   2CompliantSelectorNamespace.matches.<locals>.series   s    %b))$2F2F2P2P2R2R68jjRjsAHHSM*c*jRR)-)A)A")EX)EICRVC)EXX SXs   B3B3	B8)B8c                x   > U R                    Vs/ s H  nTR                  U5      (       d  M  UPM     sn$ s  snf r<   )rX   r~   )rM   r   r   s     rA   rf   1CompliantSelectorNamespace.matches.<locals>.names   s)    #%::?:C#C:???s   77rh   ri   rk   )recompilerI   rm   )rH   patternra   rf   r   s   `   @rA   matches"CompliantSelectorNamespace.matches   s?    JJw	Y 	Y	@ ~~,,VD,IIrD   c                X   ^  SU 4S jjnSU 4S jjnT R                   R                  XT S9$ )Nc                   > TR                  U 5       VVs/ s H  u  pUR                  5       (       d  M  UPM      snn$ s  snnf r<   )rT   
is_numeric)rM   r^   r_   rH   s      rA   ra   2CompliantSelectorNamespace.numeric.<locals>.series   s2    '+'@'@'DX'DGCC'DXXX   ??c                   > TR                  U 5       VVs/ s H  u  pUR                  5       (       d  M  UPM      snn$ s  snnf r<   )rQ   r   )rM   re   r_   rH   s      rA   rf   1CompliantSelectorNamespace.numeric.<locals>.names   s2    )-):):2)>R)>XT"--/D)>RRRr   rh   ri   rk   rl   )rH   ra   rf   s   `  rA   numeric"CompliantSelectorNamespace.numeric   s+    	Y	S ~~,,VD,IIrD   c                ^    U R                  [        U R                  5      R                  5      $ r<   )rn   r   r:   CategoricalrG   s    rA   categorical&CompliantSelectorNamespace.categorical   s!    ~~24==AMMNNrD   c                ^    U R                  [        U R                  5      R                  5      $ r<   )rn   r   r:   StringrG   s    rA   string!CompliantSelectorNamespace.string   s!    ~~24==AHHIIrD   c                ^    U R                  [        U R                  5      R                  5      $ r<   )rn   r   r:   BooleanrG   s    rA   boolean"CompliantSelectorNamespace.boolean   s!    ~~24==AIIJJrD   c                R   ^  SU 4S jjnT R                   R                  U[        T S9$ )Nc                8   > [        TR                  U 5      5      $ r<   )listrN   )rM   rH   s    rA   ra   .CompliantSelectorNamespace.all.<locals>.series   s    **2.//rD   rh   ri   )rI   rm   r   )rH   ra   s   ` rA   allCompliantSelectorNamespace.all   s'    	0 ~~,,V5Et,TTrD   c                   ^ ^ [        X5      u  p4[        [        [        T R                  S9UUS9mSUU 4S jjnSUU 4S jjnT R
                  R                  XVT S9$ )N)version)rs   
time_units
time_zonesc                z   > TR                  U 5       VVs/ s H  u  pT" U5      (       d  M  UPM     snn$ s  snnf r<   rr   )rM   r^   r_   r   rH   s      rA   ra   3CompliantSelectorNamespace.datetime.<locals>.series   s1    '+'@'@'DT'DGCPRC'DTTT   77c                z   > TR                  U 5       VVs/ s H  u  pT" U5      (       d  M  UPM     snn$ s  snnf r<   rw   )rM   re   r_   r   rH   s      rA   rf   2CompliantSelectorNamespace.datetime.<locals>.names   s0    )-):):2)>N)>XT'"+D)>NNNr   rh   ri   rk   )r   r   r   r   r:   rI   rm   )rH   	time_unit	time_zoner   r   ra   rf   r   s   `      @rA   datetime#CompliantSelectorNamespace.datetime   sf    
 "@	!U
1'>!!	
	U 	U	O 	O ~~,,VD,IIrD   rF   N)r?   r(   rj   r   )rj   z.type[CompliantSelector[FrameT, SeriesOrExprT]])rM   r1   rj   zIterator[SeriesOrExprT])rM   r1   rj   Iterator[tuple[str, DType]])rM   r1   rj   z%Iterator[tuple[SeriesOrExprT, DType]])rM   r1   rj   z#Iterator[tuple[SeriesOrExprT, str]])rH   1CompliantSelectorNamespace[FrameT, SeriesOrExprT]r`   ztype[DType]rj   (CompliantSelector[FrameT, SeriesOrExprT])rs   zCollection[DType | type[DType]]rj   r   )r   strrj   r   rj   r   )r   z$TimeUnit | Iterable[TimeUnit] | Noner   z7str | timezone | Iterable[str | timezone | None] | Nonerj   r   )__name__
__module____qualname____firstlineno____annotations__classmethodrB   propertyrI   rN   rQ   rT   rY   rn   ry   r   r   r   r   r   r   r   __static_attributes__rF   rD   rA   r*   r*   N   s    ##%%  N NJM44	.4;J?JHSJ	1J	J5	J	1	JJJOJKUJ7J KJ 
2	JrD   r*   c                  2    \ rS rSrSS jrSS jrS	S jrSrg)
r+      c             #  p   #    U R                  U5       H  nUR                  UR                  4v   M     g 7fr<   )rN   re   r`   rH   rM   r^   s      rA   rQ   #EagerSelectorNamespace._iter_schema   s-     %%b)C((CII%% *s   46c             #  @   #    UR                  5        S h  vN   g  N7fr<   )iter_columnsrL   s     rA   rN   $EagerSelectorNamespace._iter_columns   s     ??$$$   c             #  Z   #    U R                  U5       H  nX"R                  4v   M     g 7fr<   )rN   r`   r   s      rA   rT   +EagerSelectorNamespace._iter_columns_dtypes   s&     %%b)Cyy.  *s   )+rF   N)rM   r2   rj   r   )rM   r2   rj   zIterator[SeriesT])rM   r2   rj   zIterator[tuple[SeriesT, DType]]r   r   r   r   rQ   rN   rT   r   rF   rD   rA   r+   r+      s    &%!rD   r+   c                  2    \ rS rSrSS jrSS jrS	S jrSrg)
r,      c              #  T   #    UR                   R                  5        S h  vN   g  N7fr<   )schemaitemsrL   s     rA   rQ   "LazySelectorNamespace._iter_schema   s     99??$$$s   (&(c              #  @   #    UR                  5        S h  vN   g  N7fr<   )rN   rL   s     rA   rN   #LazySelectorNamespace._iter_columns   s     ##%%%r   c             #     #    [        U R                  U5      UR                  R                  5       5       S h  vN   g  N7fr<   )rW   rN   r   valuesrL   s     rA   rT   *LazySelectorNamespace._iter_columns_dtypes   s-     t))"-ryy/?/?/ABBBs   7A?ArF   N)rM   r3   rj   r   )rM   r3   rj   zIterator[ExprT])rM   r3   rj   zIterator[tuple[ExprT, DType]]r   rF   rD   rA   r,   r,      s    %&CrD   r,   c                     \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   \        S S j5       r\S!S j5       rS"S jr	    S#S jr
\S$S j5       r\    S%S j5       r    S&S jr\S$S j5       r\    S%S j5       r    S&S jr\S$S j5       r\    S%S j5       r    S&S jrS'S jrSrg)(r)      !EvalSeries[FrameT, SeriesOrExprT]_callr   _function_nameint_depthr&   r7   r8   r9   r'   r:   zdict[str, Any]_call_kwargsc                   U R                  U 5      nXl        SUl        SUl        X$l        S Ul        UR                  Ul        UR                  Ul        UR                  Ul        0 Ul	        U$ )Nr   selector)
r=   r   r   r   _evaluate_output_names_alias_output_namesr7   r9   r:   r   )r>   callevaluate_output_namesr?   r@   s        rA   rm    CompliantSelector.from_callables   sj     kk#	
'%:""&%55&77''
rD   c                6    U R                  5       R                  $ r<   )__narwhals_namespace__	selectorsrG   s    rA   r   CompliantSelector.selectors   s    **,666rD   c                    g r<   rF   rG   s    rA   _to_exprCompliantSelector._to_expr   s    rD   c                ,    [        U[        U 5      5      $ r<   )r]   typerH   others     rA   _is_selectorCompliantSelector._is_selector   s     %d,,rD   c                    g r<   rF   r   s     rA   __sub__CompliantSelector.__sub__      ,/rD   c                    g r<   rF   r   s     rA   r   r          03rD   c                   ^ ^ T R                  T5      (       a6  SUU 4S jjnSUU 4S jjnT R                  R                  R                  X#T S9$ T R	                  5       T-
  $ )Nc                   > [        U TT5      u  p[        T" U 5      U5       VVs/ s H  u  p4XB;  d  M  UPM     snn$ s  snnf r<   _eval_lhs_rhsrW   rM   	lhs_names	rhs_namesxre   r   rH   s        rA   ra   )CompliantSelector.__sub__.<locals>.series  sH    '4Ru'E$	%(b9%=%='!AVA%=     ??c                `   > [        U TT5      u  pU Vs/ s H  o3U;  d  M
  UPM     sn$ s  snf r<   r   rM   r   r   r   r   rH   s       rA   rf   (CompliantSelector.__sub__.<locals>.names  s1    '4Ru'E$	#,C9a0B9CCC   	++rh   ri   rk   r   r   rI   rm   r   rH   r   ra   rf   s   ``  rA   r   r   	  s`     U## D D >>++::6RV:WW}}&&rD   c                    g r<   rF   r   s     rA   __or__CompliantSelector.__or__  s    +.rD   c                    g r<   rF   r   s     rA   r
  r    r   rD   c                   ^ ^ T R                  T5      (       a6  SUU 4S jjnSUU 4S jjnT R                  R                  R                  X#T S9$ T R	                  5       T-  $ )Nc                r   >^ [        U TT5      u  nm/ U4S j[        T" U 5      U5       5       QT" U 5      Q$ )Nc              3  <   >#    U  H  u  pUT;  d  M  Uv   M     g 7fr<   rF   ).0r   re   r   s      rA   	<genexpr>;CompliantSelector.__or__.<locals>.series.<locals>.<genexpr>)  s     Y'?GA4yCXaa'?s   	r   rM   r   r   r   rH   s     @rA   ra   (CompliantSelector.__or__.<locals>.series&  sD    '4Ru'E$	9Ys48Y'?Y2Y rD   c                F   >^ [        U TT5      u  nm/ U4S jU 5       QTQ$ )Nc              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7fr<   rF   )r  r   r   s     rA   r  :CompliantSelector.__or__.<locals>.names.<locals>.<genexpr>/  s     EY92D!!Ys   		r  r  s     @rA   rf   'CompliantSelector.__or__.<locals>.names-  s,    '4Ru'E$	9REYER	RRrD   rh   ri   rk   r  r  s   ``  rA   r
  r  !  s`     U## S S >>++::6RV:WW}}&&rD   c                    g r<   rF   r   s     rA   __and__CompliantSelector.__and__4  r   rD   c                    g r<   rF   r   s     rA   r  r  6  r   rD   c                   ^ ^ T R                  T5      (       a6  SUU 4S jjnSUU 4S jjnT R                  R                  R                  X#T S9$ T R	                  5       T-  $ )Nc                   > [        U TT5      u  p[        T" U 5      U5       VVs/ s H  u  p4XB;   d  M  UPM     snn$ s  snnf r<   r   r   s        rA   ra   )CompliantSelector.__and__.<locals>.series?  s@    '4Ru'E$	),T"Xy)AW)AgaTEV)AWWWr  c                `   > [        U TT5      u  pU Vs/ s H  o3U;   d  M
  UPM     sn$ s  snf r<   r  r  s       rA   rf   (CompliantSelector.__and__.<locals>.namesC  s0    '4Ru'E$	#,?9aY9???r  rh   ri   rk   r  r  s   ``  rA   r  r  :  sb     U##X X@ @ >>++::6RV:WW}}&&rD   c                <    U R                   R                  5       U -
  $ r<   )r   r   rG   s    rA   
__invert__CompliantSelector.__invert__J  s    ~~!!#d**rD   rF   N)r   r   r   zEvalNames[FrameT]r?   r(   rj   r   )rj   r   )rj   $CompliantExpr[FrameT, SeriesOrExprT])r   z+Self | CompliantExpr[FrameT, SeriesOrExprT]rj   z0TypeIs[CompliantSelector[FrameT, SeriesOrExprT]])r   r   rj   r   )r   r%  rj   r%  )r   %SelectorOrExpr[FrameT, SeriesOrExprT]rj   r&  r   )r   r   r   r   r   r   rm   r   r   r   r   r   r   r
  r  r#  r   rF   rD   rA   r)   r)      sn    -,K##%%  /  1
  
 & 7 7 D-@-	9-
 / /393	-3 3':'	.'$ . .393	-3 3':'	.'& / /393	-3 3':'	.' +rD   r)   c                F    UR                  U 5      UR                  U 5      4$ r<   )r   )rM   lhsrhss      rA   r   r   N  s%     %%b)3+E+Eb+IIIrD   )rM   r   r(  r   r)  r   rj   z#tuple[Sequence[str], Sequence[str]])A__doc__
__future__r   r   	functoolsr   typingr   r   r   r   r	   r
   r   r   r   narwhals._compliant.exprr   narwhals.utilsr   r   r   r   r   sysversion_info
Protocol38r   r   r   typing_extensionsr   r   r   r   narwhals._compliant.typingr   r   r   r   r    r!   r"   r#   narwhals.dtypesr$   narwhals.typingr%   r&   r'   r(   __all__r-   r/   r0   r1   r2   r3   r4   r   r*   r+   r,   r)   r   rF   rD   rA   <module>r8     s   C " 	            2 9 @ + / 1 
6!10 .!&+(3@;<@=I45%(-&+ /OP
)#7
8|,	!4	5\)@A
\)@A
U 	 
lJ&-*?!@ lJ^!z723Xj'>Q5R!
Cz5018J<M3N
Cr+&-'(*V]5J*Kr+jJJ 0J7GJ(JrD   