
    LpjR0                    <   % S r SSKJr  SSKrSSKJr  SSKJrJrJ	r	J
r
  SSKJr  SSKJrJrJrJr  \(       aP  SSKJrJrJrJr  SS	KJr  SS
KJr  SSKJrJr  SSKJr  SSKJrJ r J!r!J"r"J#r#J$r$J%r%J&r&  SSKJ'r'J(r(J)r)  SSK*J+r+  SSK,J-r-  / SQr.\	" SSS9r/\	" SSS9r0\	" SSS9r1\	" SSS9r2\	" SSS9r3\	" SSS9r4Sr5S \6S!'    " S" S#\\2\/4   5      r7 " S$ S%\7\3\04   \\3\04   5      r8 " S& S'\7\4\14   \\4\14   5      r9 " S( S)\\2\/4   \\2\/4   5      r:        S+S* jr;g),z=Almost entirely complete, generic `selectors` implementation.    )annotationsN)partial)TYPE_CHECKINGProtocolTypeVaroverload)CompliantExpr)_parse_time_unit_and_time_zone%dtype_matches_time_unit_and_time_zoneget_column_namesis_compliant_dataframe)
CollectionIterableIteratorSequence)timezone)	TypeAlias)SelfTypeIs)
NativeExpr)CompliantDataFrameAnyCompliantExprAnyCompliantFrameAnyCompliantLazyFrameAnyCompliantSeriesAnyCompliantSeriesOrNativeExprAny	EvalNames
EvalSeries)ImplementationVersion_LimitedContext)DType)TimeUnit)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 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"S jrSrg)#r%   :   r   _implementationr    _versionc                    g N selfs    Y/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/narwhals/_compliant/selectors.py	_selector$CompliantSelectorNamespace._selector?   s    KN    c               l    U R                  U 5      nUR                  Ul        UR                  Ul        U$ r5   )__new__r2   r3   )clscontextobjs      r9   from_namespace)CompliantSelectorNamespace.from_namespaceA   s0    kk#%55''
r<   c                   g r5   r6   r8   dfs     r9   _iter_columns(CompliantSelectorNamespace._iter_columnsH   s    sr<   c                   g r5   r6   rE   s     r9   _iter_schema'CompliantSelectorNamespace._iter_schemaI   s    #r<   c                   g r5   r6   rE   s     r9   _iter_columns_dtypes/CompliantSelectorNamespace._iter_columns_dtypesJ   s    03r<   c             #  h   #    [        U R                  U5      UR                  SS9 S h  vN   g  N7fNTstrict)ziprG   columnsrE   s     r9   _iter_columns_names.CompliantSelectorNamespace._iter_columns_namesM   s&     t))"-rzz$GGGs   (202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 r5   )rM   
isinstance)rF   sertpdtyper8   s      r9   series4CompliantSelectorNamespace._is_dtype.<locals>.seriesS   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 r5   )rJ   rY   )rF   namer[   r\   r8   s      r9   names3CompliantSelectorNamespace._is_dtype.<locals>.namesX   s4    )-):):2)>X)>XT*RQVBWD)>XXXr_   r@   rF   r,   returnzSequence[SeriesOrExprT]rF   r,   rf   zSequence[str]r:   from_callables)r8   r\   r]   rb   s   ``  r9   	_is_dtype$CompliantSelectorNamespace._is_dtypeP   s5    	 	
	Y 	Y ~~,,VD,IIr<   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 r5   rM   )rF   rZ   r[   dtypesr8   s      r9   r]   3CompliantSelectorNamespace.by_dtype.<locals>.seriesa   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 r5   rJ   )rF   ra   r[   ro   r8   s      r9   rb   2CompliantSelectorNamespace.by_dtype.<locals>.namesd   s0    )-):):2)>O)>XT",D)>OOOrq   rd   re   rg   rh   )r8   ro   r]   rb   s   ``  r9   by_dtype#CompliantSelectorNamespace.by_dtype^   s7    	V 	V	P 	P ~~,,VD,IIr<   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      (       a  TR                  R                  5       (       dc  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 r5   )r   r2   	is_duckdbis_ibisrT   search
get_columnrU   )rF   colrZ   ra   pr8   s       r9   r]   2CompliantSelectorNamespace.matches.<locals>.seriesl   s    &r**,,6688,,446668jjRjsAHHSM*c*jRR)-)A)A")EX)EICRVC)EXX SXs   C<C(CCc                x   > U R                    Vs/ s H  nTR                  U5      (       d  M  UPM     sn$ s  snf r5   )rT   r{   )rF   r}   r~   s     r9   rb   1CompliantSelectorNamespace.matches.<locals>.namesv   s)    #%::?:C#C:???s   77rd   re   rg   )recompiler:   ri   )r8   patternr]   rb   r~   s   `   @r9   matches"CompliantSelectorNamespace.matchesi   s?    JJw	Y 	Y	@ ~~,,VD,IIr<   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 r5   )rM   
is_numeric)rF   rZ   r[   r8   s      r9   r]   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 r5   )rJ   r   )rF   ra   r[   r8   s      r9   rb   1CompliantSelectorNamespace.numeric.<locals>.names   s2    )-):):2)>R)>XT"--/D)>RRRr   rd   re   rg   rh   )r8   r]   rb   s   `  r9   numeric"CompliantSelectorNamespace.numeric{   s+    	Y	S ~~,,VD,IIr<   c                `    U R                  U R                  R                  R                  5      $ r5   )rj   r3   ro   Categoricalr7   s    r9   categorical&CompliantSelectorNamespace.categorical   s!    ~~dmm22>>??r<   c                `    U R                  U R                  R                  R                  5      $ r5   )rj   r3   ro   Enumr7   s    r9   enumCompliantSelectorNamespace.enum   s!    ~~dmm227788r<   c                `    U R                  U R                  R                  R                  5      $ r5   )rj   r3   ro   Stringr7   s    r9   string!CompliantSelectorNamespace.string   s!    ~~dmm2299::r<   c                `    U R                  U R                  R                  R                  5      $ r5   )rj   r3   ro   Booleanr7   s    r9   boolean"CompliantSelectorNamespace.boolean   s!    ~~dmm22::;;r<   c                R   ^  SU 4S jjnT R                   R                  U[        T S9$ )Nc                8   > [        TR                  U 5      5      $ r5   )listrG   )rF   r8   s    r9   r]   .CompliantSelectorNamespace.all.<locals>.series   s    **2.//r<   rd   re   )r:   ri   r   )r8   r]   s   ` r9   allCompliantSelectorNamespace.all   s'    	0 ~~,,V5Et,TTr<   c                   ^ ^ [        X5      u  p4[        [        T R                  R                  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)ro   
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 r5   rn   )rF   rZ   r[   r   r8   s      r9   r]   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 r5   rs   )rF   ra   r[   r   r8   s      r9   rb   2CompliantSelectorNamespace.datetime.<locals>.names   s0    )-):):2)>N)>XT'"+D)>NNNr   rd   re   rg   )r
   r   r   r3   ro   r:   ri   )r8   	time_unit	time_zoner   r   r]   rb   r   s   `      @r9   datetime#CompliantSelectorNamespace.datetime   sg    
 "@	!U
1==''!!	
	U 	U	O 	O ~~,,VD,IIr<   r6   N)rf   z.type[CompliantSelector[FrameT, SeriesOrExprT]])r@   r!   rf   r   )rF   r,   rf   zIterator[SeriesOrExprT])rF   r,   rf   Iterator[tuple[str, DType]])rF   r,   rf   z%Iterator[tuple[SeriesOrExprT, DType]])rF   r,   rf   z#Iterator[tuple[SeriesOrExprT, str]])r8   1CompliantSelectorNamespace[FrameT, SeriesOrExprT]r\   ztype[DType]rf   (CompliantSelector[FrameT, SeriesOrExprT])ro   zCollection[DType | type[DType]]rf   r   )r   strrf   r   rf   r   )r   z$TimeUnit | Iterable[TimeUnit] | Noner   z7str | timezone | Iterable[str | timezone | None] | Nonerf   r   )__name__
__module____qualname____firstlineno____annotations__propertyr:   classmethodrB   rG   rJ   rM   rU   rj   ru   r   r   r   r   r   r   r   r   __static_attributes__r6   r<   r9   r%   r%   :   s    ##N N  KM44	.4HJ?JHSJ	1J	J5	J	1	JJ$J@9;<UJ7J KJ 
2	Jr<   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r5   )rG   ra   r\   r8   rF   rZ   s      r9   rJ   #EagerSelectorNamespace._iter_schema   s-     %%b)C((CII%% *s   46c             #  @   #    UR                  5        S h  vN   g  N7fr5   )iter_columnsrE   s     r9   rG   $EagerSelectorNamespace._iter_columns   s     ??$$$   c             #  Z   #    U R                  U5       H  nX"R                  4v   M     g 7fr5   )rG   r\   r   s      r9   rM   +EagerSelectorNamespace._iter_columns_dtypes   s&     %%b)Cyy.  *s   )+r6   N)rF   r-   rf   r   )rF   r-   rf   zIterator[SeriesT])rF   r-   rf   zIterator[tuple[SeriesT, DType]]r   r   r   r   rJ   rG   rM   r   r6   r<   r9   r&   r&      s    &%!r<   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r5   )schemaitemsrE   s     r9   rJ   "LazySelectorNamespace._iter_schema   s     99??$$$s   (&(c              #  @   #    UR                  5        S h  vN   g  N7fr5   )rG   rE   s     r9   rG   #LazySelectorNamespace._iter_columns   s     ##%%%r   c             #     #    [        U R                  U5      UR                  R                  5       SS9 S h  vN   g  N7frP   )rS   rG   r   valuesrE   s     r9   rM   *LazySelectorNamespace._iter_columns_dtypes   s/     t))"-ryy/?/?/A$OOOs   6A >A r6   N)rF   r.   rf   r   )rF   r.   rf   zIterator[ExprT])rF   r.   rf   zIterator[tuple[ExprT, DType]]r   r6   r<   r9   r'   r'      s    %&Pr<   r'   c                  b   \ rS rSr% 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_namer   r2   r    r3   c                   U R                  U 5      nXl        X$l        S Ul        UR                  Ul        UR
                  Ul        U$ r5   )r>   r   _evaluate_output_names_alias_output_namesr2   r3   )r?   callevaluate_output_namesr@   rA   s        r9   ri    CompliantSelector.from_callables   sE     kk#	%:""&%55''
r<   c                6    U R                  5       R                  $ r5   )__narwhals_namespace__	selectorsr7   s    r9   r   CompliantSelector.selectors   s    **,666r<   c                    g r5   r6   r7   s    r9   _to_exprCompliantSelector._to_expr   s    r<   c                ,    [        U[        U 5      5      $ r5   )rY   typer8   others     r9   _is_selectorCompliantSelector._is_selector   s     %d,,r<   c                    g r5   r6   r   s     r9   __sub__CompliantSelector.__sub__       ,/r<   c                    g r5   r6   r   s     r9   r   r           03r<   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[        U5      n[        T" U 5      USS9 VVs/ s H  u  pEXS;  d  M  UPM     snn$ s  snnf rP   _eval_lhs_rhs	frozensetrS   rF   	lhs_names	rhs_namesrhs_setxra   r   r8   s         r9   r]   )CompliantSelector.__sub__.<locals>.series   sZ    '4Ru'E$	#I. $'tBx4#H#H* #H  
   A	A	c                v   > [        U TT5      u  p[        U5      nU Vs/ s H  oDU;  d  M
  UPM     sn$ s  snf r5   r   r   rF   r   r   r   r   r   r8   s        r9   rb   (CompliantSelector.__sub__.<locals>.names   s;    '4Ru'E$	#I.#,A9a0@9AAA   	66rd   re   rg   r   r   r:   ri   r   r8   r   r]   rb   s   ``  r9   r   r      s`     U## B B
 >>++::6RV:WW}}&&r<   c                    g r5   r6   r   s     r9   __or__CompliantSelector.__or__  s    +.r<   c                    g r5   r6   r   s     r9   r  r	  	  r   r<   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[        U5      m/ U4S j[        T" U 5      USS9 5       QT" U 5      Q$ )Nc              3  <   >#    U  H  u  pUT;  d  M  Uv   M     g 7fr5   r6   ).0r   ra   r   s      r9   	<genexpr>;CompliantSelector.__or__.<locals>.series.<locals>.<genexpr>  s$      'LGAw. 'Ls   	TrQ   r   rF   r   r   r   r   r8   s      @r9   r]   (CompliantSelector.__or__.<locals>.series  sU    '4Ru'E$	#I.'*48Yt'L 2Y r<   c                Z   >^ [        U TT5      u  p[        U5      m/ U4S jU 5       QUQ$ )Nc              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7fr5   r6   )r  r   r   s     r9   r  :CompliantSelector.__or__.<locals>.names.<locals>.<genexpr>!  s     CY72B!!Ys   		r  r  s      @r9   rb   'CompliantSelector.__or__.<locals>.names  s4    '4Ru'E$	#I.PCYCPiPPr<   rd   re   rg   r  r  s   ``  r9   r  r	    s`     U##
 
Q Q
 >>++::6RV:WW}}&&r<   c                    g r5   r6   r   s     r9   __and__CompliantSelector.__and__&  r   r<   c                    g r5   r6   r   s     r9   r  r  (  r   r<   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[        U5      n[        T" U 5      USS9 VVs/ s H  u  pEXS;   d  M  UPM     snn$ s  snnf rP   r   r   s         r9   r]   )CompliantSelector.__and__.<locals>.series1  sY    '4Ru'E$	#I. $'tBx4#H#H #H  r   c                v   > [        U TT5      u  p[        U5      nU Vs/ s H  oDU;   d  M
  UPM     sn$ s  snf r5   r  r  s        r9   rb   (CompliantSelector.__and__.<locals>.names:  s:    '4Ru'E$	#I.#,=9aW9===r  rd   re   rg   r  r  s   ``  r9   r  r  ,  s^     U## > >
 >>++::6RV:WW}}&&r<   c                <    U R                   R                  5       U -
  $ r5   )r   r   r7   s    r9   
__invert__CompliantSelector.__invert__B  s    ~~!!#d**r<   r6   N)r   r   r   zEvalNames[FrameT]r@   r!   rf   r   )rf   r   )rf   $CompliantExpr[FrameT, SeriesOrExprT])r   z+Self | CompliantExpr[FrameT, SeriesOrExprT]rf   z0TypeIs[CompliantSelector[FrameT, SeriesOrExprT]])r   r   rf   r   )r   r#  rf   r#  )r   %SelectorOrExpr[FrameT, SeriesOrExprT]rf   r$  r   )r   r   r   r   r   r   ri   r   r   r   r   r   r   r  r  r!  r   r6   r<   r9   r$   r$      s]    -,##/  1
 ! 
  7 7 D-@-	9-
 / /393	-3 3':'	.', . .393	-3 3':'	.'2 / /393	-3 3':'	.',+r<   r$   c                F    UR                  U 5      UR                  U 5      4$ r5   )r   )rF   lhsrhss      r9   r   r   F  s%     %%b)3+E+Eb+IIIr<   )rF   r   r&  r   r'  r   rf   z#tuple[Sequence[str], Sequence[str]])<__doc__
__future__r   r   	functoolsr   typingr   r   r   r   narwhals._compliant.exprr	   narwhals._utilsr
   r   r   r   collections.abcr   r   r   r   r   r   r   typing_extensionsr   r   r   narwhals._compliant.typingr   r   r   r   r   r   r   r   r   r    r!   narwhals.dtypesr"   narwhals.typingr#   __all__r(   r*   r+   r,   r-   r.   r/   r   r%   r&   r'   r$   r   r6   r<   r9   <module>r4     sq   C " 	  = = 2  HH! .3	 	 	 IH%( /OP
)#7
8|,	!4	5\)@A
\)@A
U 	 
oJ&-*?!@ oJd!z723Xj'>Q5R!
Pz5018J<M3N
P{+&-'((6=3H*I{+|JJ 0J7GJ(Jr<   