§
    {Øjg�  ã                  óD  — d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
mZmZ d dlmZ d dlmZmZ d dlmZ d dlmZmZmZmZmZmZ d d	lmZ er2d d
lmZmZ d dl m!Z! d dl	m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+m,Z,m-Z-  G d„ deeef         eeef         ¦  «        Z.dS )é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚLiteralÚProtocol)ÚLazyExpr)Ú	EvalNamesÚ
EvalSeriesÚNativeExprT)ÚWindowInputs)Úcombine_alias_output_namesÚcombine_evaluate_output_names)ÚSQLLazyFrameT)ÚImplementationÚVersionÚextend_boolÚis_pyspark_pre_4Úlength_changing_hintÚnot_implemented)ÚInvalidOperationError)ÚCallableÚSequence)ÚSelf)Ú
AliasNamesÚWindowFunction)ÚSQLExprDateTimeNamesSpace)ÚSQLExprStringNamespace)ÚSQLNamespace)ÚModeKeepStrategyÚPythonLiteralÚ
RankMethodc                  óR  — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   	 d¹ej        dœdºd„Zd»d„Zd¼d„Z	 d¹d½d!„Z		 d¹d¾d#„Z
d¿d%„Z	 	 dÀdÁd'„Z	 d¹dÂd(„ZdÃd+„ZdÄd-„ZedÅd.„¦   «         ZdÆd4„ZdÇd7„ZdÈd9„ZdÉd:„ZdÊd<„ZdÊd=„ZdËd@„Z	 d¹dÌdD„Z	 	 	 	 dÍdddFœdÎdO„ZdÏdS„Z	 d¹dÐdZ„ZedÑd\„¦   «         ZedÒd]„¦   «         ZedÓd`„¦   «         Z dÔda„Z!dÕdb„Z"dÕdc„Z#dÕdd„Z$dÕde„Z%dÕdf„Z&dÕdg„Z'dÕdh„Z(dÕdi„Z)dÕdj„Z*dÕdk„Z+dÕdl„Z,dÕdm„Z-dÕdn„Z.dÕdo„Z/dÕdp„Z0dÕdq„Z1dÕdr„Z2dÕds„Z3dÖdt„Z4dÖdu„Z5dÖdv„Z6dÖdw„Z7d×dx„Z8d×dy„Z9dÖdz„Z:dØd|„Z;dÖd}„Z<dÖd~„Z=dÖd„Z>dÖd€„Z?dÖd�„Z@dÙd„„ZAdÚd…„ZBdÛd†„ZCdÖd‡„ZDdÜd‰„ZEdÖdŠ„ZFdÖd‹„ZGdÖdŒ„ZHdÖd�„ZIdÖdŽ„ZJdÖd�„ZKdÝd’„ZLdÞd“„ZMdÞd”„ZNdÞd•„ZOdÞd–„ZPdÞd—„ZQdßd˜„ZRdßd™„ZSdàdš„ZTdàd›„ZUdÖdœ„ZVdádž„ZWdÖdŸ„ZXdÖd „ZYdâdãd¢„ZZdâdãd£„Z[däd¤„Z\dåd§„Z]dÖd¨„Z^dæd©„Z_dçd¬„Z`edèd®„¦   «         Zaedéd°„¦   «         Zb ec edd±d²¬³¦  «        ¬´¦  «        Ze ec eddµd¶¬³¦  «        ¬´¦  «        Zf ec edd·d¸¬³¦  «        ¬´¦  «        ZgdS )êÚSQLExprú&EvalSeries[SQLLazyFrameT, NativeExprT]Ú_callúEvalNames[SQLLazyFrameT]Ú_evaluate_output_namesúAliasNames | NoneÚ_alias_output_namesr   Ú_versionr   Ú_implementationú1WindowFunction[SQLLazyFrameT, NativeExprT] | NoneÚ_window_functionN)ÚimplementationÚcallÚwindow_functionÚevaluate_output_namesÚalias_output_namesÚversionr.   ÚreturnÚNonec               ó   — d S ©N© )Úselfr/   r0   r1   r2   r3   r.   s          ú‡/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/narwhals/_sql/expr.pyÚ__init__zSQLExpr.__init__+   s	   € ð ˆsó    Údfr   úSequence[NativeExprT]c                ó,   — |                       |¦  «        S r7   )r%   )r9   r=   s     r:   Ú__call__zSQLExpr.__call__6   s   € Ø�zŠz˜"‰~Œ~Ðr<   ú3SQLNamespace[SQLLazyFrameT, Self, Any, NativeExprT]c                ó   — d S r7   r8   ©r9   s    r:   Ú__narwhals_namespace__zSQLExpr.__narwhals_namespace__9   s   € à>A¸cr<   Úexpression_argsúdict[str, Self] | NoneúCallable[..., NativeExprT]c               ó   ‡ ‡‡— dˆˆˆ fd„}|S )Nr=   r   r4   úlist[NativeExprT]c                ó€   •‡ ‡—  ‰‰ ¦  «        }ˆ fd„‰pi                       ¦   «         D ¦   «         Šˆˆfd„|D ¦   «         S )Nc                óB   •— i | ]\  }}|‰                      |¦  «        “ŒS r8   )Ú_evaluate_single_output_expr)Ú.0ÚkeyÚvaluer=   s      €r:   ú
<dictcomp>zBSQLExpr._callable_to_eval_series.<locals>.func.<locals>.<dictcomp>E   s=   ø€ ð #ð #ð #á�C˜ð �R×4Ò4°UÑ;Ô;ð#ð #ð #r<   c                ó"   •— g | ]} ‰|fi ‰¤Ž‘ŒS r8   r8   ©rM   Únative_seriesr/   Úother_native_seriess     €€r:   ú
<listcomp>zBSQLExpr._callable_to_eval_series.<locals>.func.<locals>.<listcomp>I   ó<   ø€ ð ð ð à!ð ��]Ð:Ð:Ð&9Ð:Ð:ðð ð r<   )Úitems)r=   Únative_series_listrT   r/   rE   r9   s   ` @€€€r:   Úfuncz.SQLExpr._callable_to_eval_series.<locals>.funcC   s}   øøø€ Ø!%  b¡¤Ðð#ð #ð #ð #à#2Ð#8°b×"?Ò"?Ñ"AÔ"Að#ñ #ô #Ððð ð ð ð à%7ðñ ô ð r<   )r=   r   r4   rI   r8   )r9   r/   rE   rY   s   ``` r:   Ú_callable_to_eval_seriesz SQLExpr._callable_to_eval_series=   s4   øøø€ ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð ˆr<   ú*WindowFunction[SQLLazyFrameT, NativeExprT]c               ó   ‡ ‡‡— dˆˆˆ fd„}|S )	Nr=   r   Úwindow_inputsúWindowInputs[NativeExprT]r4   r>   c                óš   •‡ ‡‡— ‰                      ‰ ‰¦  «        }ˆ ˆfd„‰pi                      ¦   «         D ¦   «         Šˆˆfd„|D ¦   «         S )Nc                óD   •— i | ]\  }}|‰                      |‰¦  «        “ŒS r8   )Ú_evaluate_window_expr)rM   rN   rO   r=   r]   s      €€r:   rP   zHSQLExpr._push_down_window_function.<locals>.window_f.<locals>.<dictcomp>_   s?   ø€ ð #ð #ð #á�C˜ð �R×-Ò-¨e°]ÑCÔCð#ð #ð #r<   c                ó"   •— g | ]} ‰|fi ‰¤Ž‘ŒS r8   r8   rR   s     €€r:   rU   zHSQLExpr._push_down_window_function.<locals>.window_f.<locals>.<listcomp>c   rV   r<   )r0   rW   )r=   r]   rX   rT   r/   rE   r9   s   `` @€€€r:   Úwindow_fz4SQLExpr._push_down_window_function.<locals>.window_fV   s�   øøøø€ ð "&×!5Ò!5°b¸-Ñ!HÔ!HÐð#ð #ð #ð #ð #à#2Ð#8°b×"?Ò"?Ñ"AÔ"Að#ñ #ô #Ððð ð ð ð à%7ðñ ô ð r<   ©r=   r   r]   r^   r4   r>   r8   )r9   r/   rE   rc   s   ``` r:   Ú_push_down_window_functionz"SQLExpr._push_down_window_functionP   s4   øøø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð$ ˆr<   r   c                ój   — |                       | j        || j        | j        | j        | j        ¬¦  «        S ©N©r1   r2   r3   r.   )Ú	__class__r%   r'   r)   r*   r+   )r9   r0   s     r:   Ú_with_window_functionzSQLExpr._with_window_functionj   s>   € ð �~Š~ØŒJØØ"&Ô"=Ø#Ô7Ø”MØÔ/ð ñ 
ô 
ð 	
r<   Úwindow_funcc               óˆ   — |                       |                      ||¦  «        || j        | j        | j        | j        ¬¦  «        S rg   )ri   rZ   r'   r)   r*   r+   )r9   r/   rk   rE   s       r:   Ú_with_callablezSQLExpr._with_callablev   sL   € ð �~Š~Ø×)Ò)¨$°Ñ@Ô@ØØ"&Ô"=Ø#Ô7Ø”MØÔ/ð ñ 
ô 
ð 	
r<   c               ó°   — |                       |                      ||¦  «        |                      ||¦  «        | j        | j        | j        | j        ¬¦  «        S rg   ©ri   rZ   re   r'   r)   r*   r+   )r9   r/   rE   s      r:   Ú_with_elementwisezSQLExpr._with_elementwise†   s\   € ð �~Š~Ø×)Ò)¨$°Ñ@Ô@Ø×+Ò+¨D°/ÑBÔBØ"&Ô"=Ø#Ô7Ø”MØÔ/ð ñ 
ô 
ð 	
r<   ÚopÚotherc                ó¸   — d|i}|                       |                      ||¦  «        |                      ||¦  «        | j        | j        | j        | j        ¬¦  «        S )Nrr   rh   ro   )r9   rq   rr   rE   s       r:   Ú_with_binaryzSQLExpr._with_binary•   sd   € Ø" EÐ*ˆØ�~Š~Ø×)Ò)¨"¨oÑ>Ô>Ø×+Ò+¨B°Ñ@Ô@Ø"&Ô"=Ø#Ô7Ø”MØÔ/ð ñ 
ô 
ð 	
r<   rY   c               óž   ‡‡— | j         Š‰€d n	‰€‰nˆˆfd„} t          | ¦  «        | j        | j        | j        || j        | j        ¬¦  «        S )Nc                ó,   •—  ‰ ‰| ¦  «        ¦  «        S r7   r8   )Úoutput_namesÚcurrent_alias_output_namesrY   s    €€r:   ú<lambda>z2SQLExpr._with_alias_output_names.<locals>.<lambda>§   s   ø€  d dÐ+EÐ+EÀlÑ+SÔ+SÑ&TÔ&T€ r<   rh   )r)   Útyper%   r-   r'   r*   r+   )r9   rY   r2   rx   s    ` @r:   Ú_with_alias_output_namesz SQLExpr._with_alias_output_names    s~   øø€ Ø%)Ô%=Ð"ð ˆ|ð ˆDð *Ð1ð �àTÐTÐTÐTÐTð 	ð �t�D‰zŒzØŒJØÔ!Ø"&Ô"=Ø1Ø”MØÔ/ð
ñ 
ô 
ð 	
r<   c                ó"   ‡ — dˆ fd„}‰ j         p|S )	Nr=   r   Úinputsr^   r4   r>   c                óH   •‡— ‰j         rJ ‚ˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc                óF   •— g | ]}‰                      |‰j        ¦  «        ‘ŒS r8   )Ú_window_expressionÚpartition_by©rM   Úexprr}   r9   s     €€r:   rU   zHSQLExpr.window_function.<locals>.default_window_func.<locals>.<listcomp>¸   s9   ø€ ð ð ð ØGK�×'Ò'¨¨fÔ.AÑBÔBðð ð r<   ©Úorder_by©r=   r}   r9   s    `€r:   Údefault_window_funcz4SQLExpr.window_function.<locals>.default_window_func´   sM   øø€ ð ”Ð&Ð&Ð&ðð ð ð ð ØOSÈtÐTVÉxÌxðñ ô ð r<   ©r=   r   r}   r^   r4   r>   )r-   )r9   r‡   s   ` r:   r0   zSQLExpr.window_function²   s2   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð Ô$Ð;Ð(;Ð;r<   ÚnameÚstrÚargsúNativeExprT | PythonLiteralr   c                óB   —  |                       ¦   «         j        |g|¢R Ž S r7   )rD   Ú	_function)r9   r‰   r‹   s      r:   rŽ   zSQLExpr._function¾   s)   € Ø6ˆt×*Ò*Ñ,Ô,Ô6°tÐC¸dÐCÐCÐCÐCr<   rO   r   c                óP   — |                       ¦   «                              |¦  «        S r7   )rD   Ú_lit)r9   rO   s     r:   r�   zSQLExpr._litÁ   s"   € Ø×*Ò*Ñ,Ô,×1Ò1°%Ñ8Ô8Ð8r<   rƒ   c                ó:   —  |                       ¦   «         j        |Ž S r7   )rD   Ú	_coalesce)r9   rƒ   s     r:   r’   zSQLExpr._coalesceÄ   s   € Ø6ˆt×*Ò*Ñ,Ô,Ô6¸Ð=Ð=r<   c                ó   — d S r7   r8   rC   s    r:   Ú_count_starzSQLExpr._count_starÇ   ó   € € € r<   r…   c                ó   — d S r7   r8   ©r9   rƒ   r…   s      r:   Ú_firstzSQLExpr._firstÈ   r•   r<   c                ó   — d S r7   r8   r—   s      r:   Ú_lastzSQLExpr._lastÉ   r•   r<   Úignore_nullsÚboolc               ó   — d S r7   r8   )r9   rƒ   r›   s      r:   Ú
_any_valuezSQLExpr._any_valueÊ   r•   r<   Ú	conditionÚ	otherwiseúNativeExprT | Nonec                óT   — |                       ¦   «                              |||¦  «        S r7   )rD   Ú_when)r9   rŸ   rO   r    s       r:   r£   zSQLExpr._whenË   s(   € ð ×*Ò*Ñ,Ô,×2Ò2°9¸eÀYÑOÔOÐOr<   r8   ©Ú
descendingÚ
nulls_lastr�   úSequence[str | NativeExprT]Ú
rows_startú
int | NoneÚrows_endr¥   úSequence[bool] | Noner¦   c               ó   — d S r7   r8   )r9   rƒ   r�   r…   r¨   rª   r¥   r¦   s           r:   r€   zSQLExpr._window_expressionÓ   s	   € ð �cr<   Ú	func_nameú'Literal['sum', 'max', 'min', 'product']Úreversec               ó   ‡ ‡‡— dˆˆˆ fd„}|S )	Nr=   r   r}   r^   r4   r>   c                ó€   •‡‡— t          ‰t          ‰j        ¦  «        ¦  «        Šˆˆˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc                óÒ   •— g | ]c}‰                      ‰                     d |¦  «        ‰                     ‰                     ‰|¦  «        ‰j        ‰j        ‰‰d¬¦  «        ¦  «        ‘ŒdS )Ú	isnotnullr   ©r¥   r¦   rª   )r£   rŽ   r€   r�   r…   )rM   rƒ   Úflagsr­   r}   r9   s     €€€€r:   rU   z:SQLExpr._cum_window_func.<locals>.func.<locals>.<listcomp>æ   s‡   ø€ ð ð ð ð ð —
’
Ø—N’N ;°Ñ5Ô5Ø×+Ò+ØŸš y°$Ñ7Ô7ØÔ+ØœØ#(Ø#(Ø!"ð ,ñ ô ñ
ô 
ðð ð r<   ©r   Úlenr…   )r=   r}   rµ   r­   r¯   r9   s    `@€€€r:   rY   z&SQLExpr._cum_window_func.<locals>.funcâ   sd   øøø€ õ   ­¨V¬_Ñ)=Ô)=Ñ>Ô>ˆEðð ð ð ð ð ð ð !˜D ™HœHðñ ô ð r<   rˆ   r8   )r9   r­   r¯   rY   s   ``` r:   Ú_cum_window_funczSQLExpr._cum_window_funcß   s4   øøø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð& ˆr<   ú$Literal['sum', 'mean', 'std', 'var']Úwindow_sizeÚintÚmin_samplesÚddofÚcenterc               óz   ‡ ‡‡‡‡	‡
‡— g d¢Š|r|dz
  dz  }|dz
  dz  }||z    Š
|Š	n|dz
   Š
dŠ	dˆˆ	ˆˆˆ ˆ
ˆfd„}|S )N)ÚsumÚmeanÚstdÚvaré   é   r   r=   r   r}   r^   r4   r>   c                óB  •‡‡— ‰dv r‰Šnk‰dk    r	‰dk    rdŠn\‰dv r	‰dk    rdŠnO‰dk    r	‰dk    rdŠn@‰dk    r	‰dk    rd	Šn1‰d
v rd‰› d�}t          |¦  «        ‚d‰› d‰› d�}t          |¦  «        ‚|j        |j        ‰
‰dœŠˆˆˆ	ˆfd„ ‰	| ¦  «        D ¦   «         S )N>   rÀ   rÁ   rÃ   r   Úvar_poprÄ   Úvar_samprÂ   Ú
stddev_popÚstddev_samp>   rÂ   rÃ   z;Only ddof=0 and ddof=1 are currently supported for rolling_ú.z,Only the following functions are supported: z.
Got: )r�   r…   r¨   rª   c                óê   •— g | ]o}‰                       ‰j        ‰                     d |¦  «        fi ‰¤Ž‰                     ‰¦  «        k     ‰j        ‰                     ‰|¦  «        fi ‰¤Ž¦  «        ‘ŒpS )Úcount)r£   r€   rŽ   r�   )rM   rƒ   Úfunc_r¼   r9   Úwindow_kwargss     €€€€r:   rU   z>SQLExpr._rolling_window_func.<locals>.func.<locals>.<listcomp>#  s§   ø€ ð 	ð 	ð 	ð ð —
’
Ø+�DÔ+ØŸš w°Ñ5Ô5ðð Ø9Fðð ð —y’y Ñ-Ô-ò.ð ,�DÔ+¨D¯NªN¸5À$Ñ,GÔ,GÐYÐYÈ=ÐYÐYñô ð	ð 	ð 	r<   )Ú
ValueErrorr�   r…   )r=   r}   ÚmsgrÎ   rÏ   r½   Úendr­   r¼   r9   ÚstartÚsupported_funcss      @@€€€€€€€r:   rY   z*SQLExpr._rolling_window_func.<locals>.func
  s/  øøø€ ð ˜OÐ+Ð+Ø&��Ø˜eÒ#Ð#¨°ª	¨	Ø!��Ø˜eÐ#Ð#¨°ª	¨	Ø"��Ø˜eÒ#Ð#¨°ª	¨	Ø$��Ø˜eÒ#Ð#¨°ª	¨	Ø%��Ø˜nÐ,Ð,Ø`ÐT]Ð`Ð`Ð`�Ý  ‘o”oÐ%àjÀ_ÐjÐjÐ^gÐjÐjÐj�Ý  ‘o”oÐ%à &Ô 3Ø"œOØ#Øð	"ð "ˆMð	ð 	ð 	ð 	ð 	ð 	ð 	ð !˜D ™HœHð	ñ 	ô 	ð 	r<   rˆ   r8   )r9   r­   rº   r¼   r½   r¾   ÚhalfÚ	remainderrY   rÒ   rÓ   rÔ   s   `` ``    @@@r:   Ú_rolling_window_funczSQLExpr._rolling_window_func÷   s£   øøøøøøø€ ð 8Ð7Ð7ˆØð 	Ø !‘O¨Ñ)ˆDØ$ q™¨AÑ-ˆIØ˜YÑ&Ð'ˆEØˆCˆCà! A‘oÐ&ˆEØˆCð"	ð "	ð "	ð "	ð "	ð "	ð "	ð "	ð "	ð "	ð "	ð "	ðH ˆr<   útuple[int, ...]c                ó4   — | j                              ¦   «         S r7   )r+   Ú_backend_versionrC   s    r:   rÚ   zSQLExpr._backend_version0  s   € àÔ#×4Ò4Ñ6Ô6Ð6r<   c               ó   — d S r7   r8   )Úclsrƒ   r‰   s      r:   Ú_alias_nativezSQLExpr._alias_native4  s   € ØLOÈCr<   ú.Callable[[Sequence[NativeExprT]], NativeExprT]Úexprsc                ó„   ‡‡— dˆˆfd„}dˆˆfd„}‰d	         } | ||t          ‰Ž t          ‰Ž |j        |j        ¬
¦  «        S )Nr=   r   r4   r>   c                ó6   •‡ —  ‰ˆ fd„‰D ¦   «         ¦  «        gS )Nc                ó0   •— g | ]} |‰¦  «        D ]}|‘ŒŒS r8   r8   )rM   rƒ   Úer=   s      €r:   rU   zISQLExpr._from_elementwise_horizontal_op.<locals>.call.<locals>.<listcomp><  s.   ø€ Ð@Ð@Ð@ °t°t¸B±x´xÐ@Ð@°!˜!Ð@Ð@Ð@Ð@r<   r8   )r=   rß   rY   s   `€€r:   r/   z5SQLExpr._from_elementwise_horizontal_op.<locals>.call;  s,   øø€ Ø�DÐ@Ð@Ð@Ð@¨Ð@Ñ@Ô@ÑAÔAÐBÐBr<   r]   r^   c                ó>   •‡ ‡— ˆ ˆfd„‰D ¦   «         } ‰|¦  «        gS )Nc                óF   •— g | ]}|                      ‰‰¦  «        D ]}|‘ŒŒS r8   )r0   )rM   rƒ   rã   r=   r]   s      €€r:   rU   zTSQLExpr._from_elementwise_horizontal_op.<locals>.window_function.<locals>.<listcomp>A  s6   ø€ ÐXÐXÐX˜°×0DÒ0DÀRÈÑ0WÔ0WÐXÐX¨1�1ÐXÐXÐXÐXr<   r8   )r=   r]   Úlstrß   rY   s   `` €€r:   r0   z@SQLExpr._from_elementwise_horizontal_op.<locals>.window_function>  s4   øøø€ ð YÐXÐXÐXÐX ÐXÑXÔXˆCØ�D˜‘I”I�;Ðr<   r   )r0   r1   r2   r3   r.   ©r=   r   r4   r>   rd   )r   r   r*   r+   )rÜ   rY   rß   r/   r0   Úcontexts    ``   r:   Ú_from_elementwise_horizontal_opz'SQLExpr._from_elementwise_horizontal_op7  s—   øø€ ð	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð	ð 	ð 	ð 	ð 	ð 	ð 	ð ˜”(ˆØˆsØØ+Ý"?ÀÐ"GÝ9¸5ÐAØÔ$Ø"Ô2ð
ñ 
ô 
ð 	
r<   c                ó>   — | j         j                             ¦   «         S )a	  Return `True` for multi-output aggregations without names.

        For example, column `'a'` only appears in the output as a grouping key:

            df.group_by('a').agg(nw.all().sum())

        It does not get included in:

            nw.all().sum().
        )Ú	_metadataÚexpansion_kindÚis_multi_unnamedrC   s    r:   Ú_is_multi_output_unnamedz SQLExpr._is_multi_output_unnamedN  s   € ð Œ~Ô,×=Ò=Ñ?Ô?Ð?r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__eq__©rƒ   rr   s     r:   ry   z SQLExpr.__eq__.<locals>.<lambda>]  ó   € °T·[²[ÀÑ5GÔ5G€ r<   ©rt   ©r9   rr   s     r:   rñ   zSQLExpr.__eq__\  ó   € Ø× Ò Ð!GÐ!GÈÑOÔOÐOr<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__ne__rò   s     r:   ry   z SQLExpr.__ne__.<locals>.<lambda>`  ró   r<   rô   rõ   s     r:   rù   zSQLExpr.__ne___  rö   r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__add__rò   s     r:   ry   z!SQLExpr.__add__.<locals>.<lambda>c  ó   € °T·\²\À%Ñ5HÔ5H€ r<   rô   rõ   s     r:   rü   zSQLExpr.__add__b  ó   € Ø× Ò Ð!HÐ!HÈ%ÑPÔPÐPr<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__sub__rò   s     r:   ry   z!SQLExpr.__sub__.<locals>.<lambda>f  rý   r<   rô   rõ   s     r:   r  zSQLExpr.__sub__e  rþ   r<   c                óV   — |                       d„ |¦  «                             d¦  «        S )Nc                ó   — || z
  S r7   r8   rò   s     r:   ry   z"SQLExpr.__rsub__.<locals>.<lambda>i  ó
   € °U¸T±\€ r<   Úliteral©rt   Úaliasrõ   s     r:   Ú__rsub__zSQLExpr.__rsub__h  ó+   € Ø× Ò Ð!AÐ!AÀ5ÑIÔI×OÒOÐPYÑZÔZÐZr<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__mul__rò   s     r:   ry   z!SQLExpr.__mul__.<locals>.<lambda>l  rý   r<   rô   rõ   s     r:   r  zSQLExpr.__mul__k  rþ   r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__truediv__rò   s     r:   ry   z%SQLExpr.__truediv__.<locals>.<lambda>o  s   € °T×5EÒ5EÀeÑ5LÔ5L€ r<   rô   rõ   s     r:   r  zSQLExpr.__truediv__n  s   € Ø× Ò Ð!LÐ!LÈeÑTÔTÐTr<   c                óV   — |                       d„ |¦  «                             d¦  «        S )Nc                ó   — || z  S r7   r8   rò   s     r:   ry   z&SQLExpr.__rtruediv__.<locals>.<lambda>r  r  r<   r  r  rõ   s     r:   Ú__rtruediv__zSQLExpr.__rtruediv__q  r	  r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__pow__rò   s     r:   ry   z!SQLExpr.__pow__.<locals>.<lambda>u  rý   r<   rô   rõ   s     r:   r  zSQLExpr.__pow__t  rþ   r<   c                óV   — |                       d„ |¦  «                             d¦  «        S )Nc                ó   — || z  S r7   r8   rò   s     r:   ry   z"SQLExpr.__rpow__.<locals>.<lambda>x  s
   € °U¸D±[€ r<   r  r  rõ   s     r:   Ú__rpow__zSQLExpr.__rpow__w  s*   € Ø× Ò Ð!@Ð!@À%ÑHÔH×NÒNÈyÑYÔYÐYr<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__ge__rò   s     r:   ry   z SQLExpr.__ge__.<locals>.<lambda>{  ró   r<   rô   rõ   s     r:   r  zSQLExpr.__ge__z  rö   r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__gt__rò   s     r:   ry   z SQLExpr.__gt__.<locals>.<lambda>~  ró   r<   rô   rõ   s     r:   r  zSQLExpr.__gt__}  rö   r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__le__rò   s     r:   ry   z SQLExpr.__le__.<locals>.<lambda>�  ró   r<   rô   rõ   s     r:   r!  zSQLExpr.__le__€  rö   r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__lt__rò   s     r:   ry   z SQLExpr.__lt__.<locals>.<lambda>„  ró   r<   rô   rõ   s     r:   r$  zSQLExpr.__lt__ƒ  rö   r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__and__rò   s     r:   ry   z!SQLExpr.__and__.<locals>.<lambda>‡  rý   r<   rô   rõ   s     r:   r'  zSQLExpr.__and__†  rþ   r<   c                ó0   — |                       d„ |¦  «        S )Nc                ó,   — |                       |¦  «        S r7   )Ú__or__rò   s     r:   ry   z SQLExpr.__or__.<locals>.<lambda>Š  ró   r<   rô   rõ   s     r:   r*  zSQLExpr.__or__‰  rö   r<   c                ó>   ‡ — dˆ fd„}‰                       ||¬¦  «        S )Nrƒ   r   rr   r4   c                ó°   •— ‰                      |‰                     d¦  «        k    ‰                     d| |¦  «        ‰                     d ¦  «        ¦  «        S ©Nr   Úfloordiv©r£   r�   rŽ   ©rƒ   rr   r9   s     €r:   rY   z"SQLExpr.__floordiv__.<locals>.func�  sK   ø€ Ø—:’:Ø˜Ÿš 1™œÒ%Ø—’˜z¨4°Ñ7Ô7Ø—	’	˜$‘”ñô ð r<   ©rr   ©rƒ   r   rr   r   r4   r   rô   ©r9   rr   rY   s   `  r:   Ú__floordiv__zSQLExpr.__floordiv__Œ  s<   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð × Ò  ¨UÐ Ñ3Ô3Ð3r<   c                ód   ‡ — dˆ fd„}‰                       ||¬¦  «                             d¦  «        S )	Nrƒ   r   rr   r4   c                ó°   •— ‰                      | ‰                     d¦  «        k    ‰                     d|| ¦  «        ‰                     d ¦  «        ¦  «        S r-  r/  r0  s     €r:   rY   z#SQLExpr.__rfloordiv__.<locals>.func—  sK   ø€ Ø—:’:Ø˜Ÿ	š	 !™œÒ$Ø—’˜z¨5°$Ñ7Ô7Ø—	’	˜$‘”ñô ð r<   r1  r  r2  r  r3  s   `  r:   Ú__rfloordiv__zSQLExpr.__rfloordiv__–  sJ   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð × Ò  ¨UÐ Ñ3Ô3×9Ò9¸)ÑDÔDÐDr<   c                óH   ‡ — dˆ fd„}dˆ fd
„}‰                       ||¦  «        S )Nrƒ   r   r4   c                ó~   •— ‰                      ‰                     d| ¦  «        ‰                     d¦  «        ¦  «        S )NÚbool_andT©r’   rŽ   r�   ©rƒ   r9   s    €r:   ÚfzSQLExpr.all.<locals>.f¢  s/   ø€ Ø—>’> $§.¢.°¸TÑ"BÔ"BÀDÇIÂIÈdÁOÄOÑTÔTÐTr<   r=   r   r}   r^   r>   c                ó6   •‡— ˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc           
     ó¼   •— g | ]X}‰                      ‰                     ‰                     d |¦  «        ‰j        ¦  «        ‰                     d¦  «        ¦  «        ‘ŒYS )r:  T©r’   r€   rŽ   r�   r�   r‚   s     €€r:   rU   z1SQLExpr.all.<locals>.window_f.<locals>.<listcomp>¨  sq   ø€ ð ð ð ð ð —’Ø×+Ò+ØŸš z°4Ñ8Ô8¸&Ô:Mñô ð —I’I˜d‘O”Oñ	ô ðð ð r<   r8   r†   s    `€r:   rc   zSQLExpr.all.<locals>.window_f¥  ó>   øø€ ðð ð ð ð ð !˜D ™HœHðñ ô ð r<   ©rƒ   r   r4   r   rˆ   ©rm   ©r9   r=  rc   s   `  r:   ÚallzSQLExpr.all¡  ó]   ø€ ð	Uð 	Uð 	Uð 	Uð 	Uð 	Uð	ð 	ð 	ð 	ð 	ð 	ð ×"Ò" 1 hÑ/Ô/Ð/r<   c                óH   ‡ — dˆ fd„}dˆ fd
„}‰                       ||¦  «        S )Nrƒ   r   r4   c                ó~   •— ‰                      ‰                     d| ¦  «        ‰                     d¦  «        ¦  «        S )NÚbool_orFr;  r<  s    €r:   r=  zSQLExpr.any.<locals>.fµ  s1   ø€ Ø—>’> $§.¢.°¸DÑ"AÔ"AÀ4Ç9Â9ÈUÑCSÔCSÑTÔTÐTr<   r=   r   r}   r^   r>   c                ó6   •‡— ˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc           
     ó¼   •— g | ]X}‰                      ‰                     ‰                     d |¦  «        ‰j        ¦  «        ‰                     d¦  «        ¦  «        ‘ŒYS )rI  Fr@  r‚   s     €€r:   rU   z1SQLExpr.any.<locals>.window_f.<locals>.<listcomp>»  ss   ø€ ð ð ð ð ð —’Ø×+Ò+ØŸš y°$Ñ7Ô7¸Ô9Lñô ð —I’I˜eÑ$Ô$ñ	ô ðð ð r<   r8   r†   s    `€r:   rc   zSQLExpr.any.<locals>.window_f¸  rA  r<   rB  rˆ   rC  rD  s   `  r:   ÚanyzSQLExpr.any´  rF  r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚmax©rŽ   r<  s    €r:   ry   zSQLExpr.max.<locals>.<lambda>È  ó   ø€ °·²¸uÀdÑ0KÔ0K€ r<   rC  rC   s   `r:   rO  zSQLExpr.maxÇ  ó!   ø€ Ø×"Ò"Ð#KÐ#KÐ#KÐ#KÑLÔLÐLr<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NrÁ   rP  r<  s    €r:   ry   zSQLExpr.mean.<locals>.<lambda>Ë  ó   ø€ °·²¸vÀtÑ0LÔ0L€ r<   rC  rC   s   `r:   rÁ   zSQLExpr.meanÊ  s!   ø€ Ø×"Ò"Ð#LÐ#LÐ#LÐ#LÑMÔMÐMr<   c               ó>   ‡ ‡— dˆˆ fd„}‰                       |¦  «        S )Nrƒ   r   r4   c                óè  •— ‰dk    r‰                      d| ¦  «        S ‰dk    r‰                      d| ¦  «        S ‰                      d| ¦  «        }‰                      d‰                      d| ¦  «        ‰                      d‰                      d‰                      d	|‰                     d¦  «        ¦  «        ‰                      d	|‰                     ‰¦  «        ¦  «        ¦  «        ¦  «        ¦  «        S )
Nr   rÉ   rÄ   rÊ   rÍ   ÚmultiplyÚsqrtÚdivideÚsubtract©rŽ   r�   ©rƒ   Ú	n_samplesr½   r9   s     €€r:   rY   zSQLExpr.std.<locals>.funcÎ  sÜ   ø€ Ø�qŠyˆyØ—~’~ l°DÑ9Ô9Ð9Ø�qŠyˆyØ—~’~ m°TÑ:Ô:Ð:ØŸš w°Ñ5Ô5ˆIØ—>’>ØØ—’˜}¨dÑ3Ô3Ø—’ØØ—N’NØ ØŸš z°9¸d¿iºiÈ¹l¼lÑKÔKØŸš z°9¸d¿iºiÈ¹o¼oÑNÔNñô ñô ñô ð r<   rB  rC  ©r9   r½   rY   s   `` r:   rÂ   zSQLExpr.stdÍ  s=   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð& ×"Ò" 4Ñ(Ô(Ð(r<   c               ó>   ‡ ‡— dˆˆ fd„}‰                       |¦  «        S )Nrƒ   r   r4   c                óÀ  •— ‰dk    r‰                      d| ¦  «        S ‰dk    r‰                      d| ¦  «        S ‰                      d| ¦  «        }‰                      d‰                      d| ¦  «        ‰                      d‰                      d|‰                     d¦  «        ¦  «        ‰                      d|‰                     ‰¦  «        ¦  «        ¦  «        ¦  «        S )	Nr   rÇ   rÄ   rÈ   rÍ   rX  rZ  r[  r\  r]  s     €€r:   rY   zSQLExpr.var.<locals>.funcä  sÈ   ø€ Ø�qŠyˆyØ—~’~ i°Ñ6Ô6Ð6Ø�qŠyˆyØ—~’~ j°$Ñ7Ô7Ð7ØŸš w°Ñ5Ô5ˆIØ—>’>ØØ—’˜z¨4Ñ0Ô0Ø—’ØØ—N’N :¨y¸$¿)º)ÀA¹,¼,ÑGÔGØ—N’N :¨y¸$¿)º)ÀD¹/¼/ÑJÔJñô ñô ð r<   rB  rC  r_  s   `` r:   rÃ   zSQLExpr.varã  s=   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð  ×"Ò" 4Ñ(Ô(Ð(r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚmedianrP  r<  s    €r:   ry   z SQLExpr.median.<locals>.<lambda>÷  s   ø€ °·²¸xÈÑ0NÔ0N€ r<   rC  rC   s   `r:   rd  zSQLExpr.medianö  s!   ø€ Ø×"Ò"Ð#NÐ#NÐ#NÐ#NÑOÔOÐOr<   úfloat | Nonec                ó>   ‡ ‡— dˆ ˆfd„}‰                       |¦  «        S )Nrƒ   r   r4   c                ó€   •— ‰                      ‰                     d| ¦  «        ‰                     ‰¦  «        | ¦  «        S )NÚisnan)r£   rŽ   r�   )rƒ   r9   rO   s    €€r:   Ú	_fill_nanz#SQLExpr.fill_nan.<locals>._fill_nanú  s3   ø€ Ø—:’:˜dŸnšn¨W°dÑ;Ô;¸T¿YºYÀuÑ=MÔ=MÈtÑTÔTÐTr<   rB  ©rp   )r9   rO   ri  s   `` r:   Úfill_nanzSQLExpr.fill_nanù  sD   øø€ ð	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð ×%Ò% iÑ0Ô0Ð0r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚminrP  r<  s    €r:   ry   zSQLExpr.min.<locals>.<lambda>   rQ  r<   rC  rC   s   `r:   rn  zSQLExpr.minÿ  rR  r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NrÍ   rP  r<  s    €r:   ry   zSQLExpr.count.<locals>.<lambda>  s   ø€ °·²¸wÈÑ0MÔ0M€ r<   rC  rC   s   `r:   rÍ   zSQLExpr.count  s!   ø€ Ø×"Ò"Ð#MÐ#MÐ#MÐ#MÑNÔNÐNr<   c                óH   ‡ — dˆ fd„}dˆ fd
„}‰                       ||¦  «        S )Nrƒ   r   r4   c                ó~   •— ‰                      ‰                     d| ¦  «        ‰                     d¦  «        ¦  «        S )NrÀ   r   r;  r<  s    €r:   r=  zSQLExpr.sum.<locals>.f  s/   ø€ Ø—>’> $§.¢.°¸Ñ"=Ô"=¸t¿yºyÈ¹|¼|ÑLÔLÐLr<   r=   r   r}   r^   r>   c                óH   •‡— ‰j         rJ ‚ˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc           
     ó¼   •— g | ]X}‰                      ‰                     ‰                     d |¦  «        ‰j        ¦  «        ‰                     d¦  «        ¦  «        ‘ŒYS )rÀ   r   r@  r‚   s     €€r:   rU   z1SQLExpr.sum.<locals>.window_f.<locals>.<listcomp>  sq   ø€ ð ð ð ð ð —’Ø×+Ò+ØŸš u¨dÑ3Ô3°VÔ5Hñô ð —I’I˜a‘L”Lñ	ô ðð ð r<   r„   r†   s    `€r:   rc   zSQLExpr.sum.<locals>.window_f	  sN   øø€ ð ”Ð&Ð&Ð&ðð ð ð ð ð !˜D ™HœHðñ ô ð r<   rB  rˆ   rC  rD  s   `  r:   rÀ   zSQLExpr.sum  s]   ø€ ð	Mð 	Mð 	Mð 	Mð 	Mð 	Mð	ð 	ð 	ð 	ð 	ð 	ð ×"Ò" 1 hÑ/Ô/Ð/r<   c                óÐ   ‡ ‡‡‡‡— ‰ j         Š‰ j        Š‰                      d¦  «        ‰                      d¦  «        cŠŠdˆˆˆ ˆfd„}dˆˆˆˆ ˆfd„}‰                      ||¦  «        S )Nr   rÄ   rƒ   r   r4   c                ó„   •—  ‰d ‰d| ¦  «         ‰d‰                       ‰d| ¦  «        ‰‰¦  «        ¦  «        ¦  «        S )NÚaddÚcount_distinctrO  Úisnull)r£   )rƒ   ÚFÚoner9   Úzeros    €€€€r:   rY   zSQLExpr.n_unique.<locals>.func  sU   ø€ Ø�1ØØ�Ð" DÑ)Ô)Ø��%˜Ÿš A A h°Ñ$5Ô$5°s¸DÑAÔAÑBÔBñô ð r<   r=   r   r}   r^   r>   c                ó>   •‡— ˆˆˆˆˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc                óÌ   •— g | ]`} ‰d  ‰ ‰d|¦  «        ‰j         ¦  «         ‰ ‰d‰                      ‰d|¦  «        ‰‰¦  «        ¦  «        ‰j         ¦  «        ¦  «        ‘ŒaS )rw  rx  rO  ry  )r�   r£   )rM   rƒ   rz  ÚWr}   r{  r9   r|  s     €€€€€€r:   rU   z6SQLExpr.n_unique.<locals>.window_f.<locals>.<listcomp>(  s™   ø€ ð 
ð 
ð 
ð ð �ØØ�A�a�aÐ(¨$Ñ/Ô/°Ô1DÑEÔEØ�AØ˜˜% §¢¨A¨A¨h¸Ñ,=Ô,=¸sÀDÑ!IÔ!IÑJÔJØÔ+ñô ñô ð
ð 
ð 
r<   r8   )r=   r}   rz  r  r{  r9   r|  s    `€€€€€r:   rc   z"SQLExpr.n_unique.<locals>.window_f%  sR   øø€ ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð !˜D ™HœHð
ñ 
ô 
ð 
r<   rB  rˆ   )rŽ   r€   r�   rm   )r9   rY   rc   rz  r  r{  r|  s   `  @@@@r:   Ún_uniquezSQLExpr.n_unique  s¬   øøøøø€ ØŒNˆØÔ#ˆØ—I’I˜a‘L”L $§)¢)¨A¡,¤,ˆ	ˆˆcð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð ×"Ò" 4¨Ñ2Ô2Ð2r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚabsrP  r<  s    €r:   ry   zSQLExpr.abs.<locals>.<lambda>8  ó   ø€ °4·>²>À%ÈÑ3NÔ3N€ r<   rj  rC   s   `r:   rƒ  zSQLExpr.abs7  ó!   ø€ Ø×%Ò%Ð&NÐ&NÐ&NÐ&NÑOÔOÐOr<   Úlower_boundÚupper_boundc                óD   ‡ — d	ˆ fd„}‰                       |||dœ¬¦  «        S )
Nrƒ   r   r†  r‡  r4   c                óØ   •— ‰                      d‰                      d| |¦  «        |¦  «        }‰                     ‰                      d| ¦  «        ‰                     d ¦  «        |¦  «        S )NÚgreatestÚleastry  ©rŽ   r£   r�   )rƒ   r†  r‡  Úclippedr9   s       €r:   Ú_clipzSQLExpr.clip.<locals>._clip;  s_   ø€ ð —n’nØ˜DŸNšN¨7°D¸+ÑFÔFÈñô ˆGð —:’:˜dŸnšn¨X°tÑ<Ô<¸d¿iºiÈ¹o¼oÈwÑWÔWÐWr<   )r†  r‡  ©rE   )rƒ   r   r†  r   r‡  r   r4   r   rj  )r9   r†  r‡  rŽ  s   `   r:   ÚclipzSQLExpr.clip:  sT   ø€ ð	Xð 	Xð 	Xð 	Xð 	Xð 	Xð ×%Ò%ØØ,7ÈÐTÐTð &ñ 
ô 
ð 	
r<   c                óB   ‡ — dˆ fd„}‰                       |d|i¬¦  «        S )Nrƒ   r   r†  r4   c                ó®   •— ‰                      d| |¦  «        }‰                     ‰                      d| ¦  «        ‰                     d ¦  «        |¦  «        S )NrŠ  ry  rŒ  )rƒ   r†  r�  r9   s      €r:   rŽ  z!SQLExpr.clip_lower.<locals>._clipI  sF   ø€ Ø—n’n Z°°{ÑCÔCˆGØ—:’:˜dŸnšn¨X°tÑ<Ô<¸d¿iºiÈ¹o¼oÈwÑWÔWÐWr<   r�  )rƒ   r   r†  r   r4   r   rj  )r9   r†  rŽ  s   `  r:   Ú
clip_lowerzSQLExpr.clip_lowerH  óG   ø€ ð	Xð 	Xð 	Xð 	Xð 	Xð 	Xð ×%Ò% e¸mÈ[Ð=YÐ%ÑZÔZÐZr<   c                óB   ‡ — dˆ fd„}‰                       |d|i¬¦  «        S )Nrƒ   r   r‡  r4   c                ó®   •— ‰                      d| |¦  «        }‰                     ‰                      d| ¦  «        ‰                     d ¦  «        |¦  «        S )Nr‹  ry  rŒ  )rƒ   r‡  r�  r9   s      €r:   rŽ  z!SQLExpr.clip_upper.<locals>._clipP  sF   ø€ Ø—n’n W¨d°KÑ@Ô@ˆGØ—:’:˜dŸnšn¨X°tÑ<Ô<¸d¿iºiÈ¹o¼oÈwÑWÔWÐWr<   r�  )rƒ   r   r‡  r   r4   r   rj  )r9   r‡  rŽ  s   `  r:   Ú
clip_upperzSQLExpr.clip_upperO  r”  r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )Nry  rP  r<  s    €r:   ry   z!SQLExpr.is_null.<locals>.<lambda>W  s   ø€ °4·>²>À(ÈDÑ3QÔ3Q€ r<   rj  rC   s   `r:   Úis_nullzSQLExpr.is_nullV  s!   ø€ Ø×%Ò%Ð&QÐ&QÐ&QÐ&QÑRÔRÐRr<   Údecimalsc                ó’   ‡ ‡— t          ‰ j        ¦  «        }|r|n‰                      |¦  «        Š‰                      ˆˆ fd„¦  «        S )Nc                ó2   •— ‰                      d| ‰¦  «        S )NÚroundrP  )rƒ   Úround_decimalsr9   s    €€r:   ry   zSQLExpr.round.<locals>.<lambda>_  s   ø€ ˜Ÿš¨°°~ÑFÔF€ r<   )r   r+   r�   rp   )r9   r›  Ú_is_pre4rŸ  s   `  @r:   rž  zSQLExpr.roundY  sW   øø€ õ $ DÔ$8Ñ9Ô9ˆØ%-ÐF˜˜°4·9²9¸XÑ3FÔ3FˆØ×%Ò%ØFÐFÐFÐFÐFñ
ô 
ð 	
r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚfloorrP  r<  s    €r:   ry   zSQLExpr.floor.<locals>.<lambda>c  s   ø€ °4·>²>À'È4Ñ3PÔ3P€ r<   rj  rC   s   `r:   r£  zSQLExpr.floorb  s!   ø€ Ø×%Ò%Ð&PÐ&PÐ&PÐ&PÑQÔQÐQr<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚceilrP  r<  s    €r:   ry   zSQLExpr.ceil.<locals>.<lambda>f  s   ø€ °4·>²>À&È$Ñ3OÔ3O€ r<   rj  rC   s   `r:   r¦  zSQLExpr.ceile  s!   ø€ Ø×%Ò%Ð&OÐ&OÐ&OÐ&OÑPÔPÐPr<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚsinrP  r<  s    €r:   ry   zSQLExpr.sin.<locals>.<lambda>i  r„  r<   rj  rC   s   `r:   r©  zSQLExpr.sinh  r…  r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚcosrP  r<  s    €r:   ry   zSQLExpr.cos.<locals>.<lambda>l  r„  r<   rj  rC   s   `r:   r¬  zSQLExpr.cosk  r…  r<   c                ó:   ‡ — dˆ fd„}‰                       |¦  «        S )Nrƒ   r   r4   c                óÈ   •— ‰                      | ‰                     d¦  «        k     ‰                     t          d¦  «        ¦  «        ‰                     d| ¦  «        ¦  «        S )Nr   ÚnanrY  )r£   r�   ÚfloatrŽ   r<  s    €r:   Ú_sqrtzSQLExpr.sqrt.<locals>._sqrto  sP   ø€ Ø—:’:Ø�t—y’y ‘|”|Ò# T§Y¢Y­u°U©|¬|Ñ%<Ô%<¸d¿nºnÈVÐUYÑ>ZÔ>Zñô ð r<   rB  rj  )r9   r±  s   ` r:   rY  zSQLExpr.sqrtn  s7   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð
 ×%Ò% eÑ,Ô,Ð,r<   c                ó4   ‡ — ‰                       ˆ fd„¦  «        S )Nc                ó0   •— ‰                      d| ¦  «        S )NÚexprP  r<  s    €r:   ry   zSQLExpr.exp.<locals>.<lambda>w  r„  r<   rj  rC   s   `r:   r´  zSQLExpr.expv  r…  r<   Úbaser°  c                ó>   ‡ ‡— dˆˆ fd„}‰                       |¦  «        S )Nrƒ   r   r4   c                óª  •— ‰j         }‰                     | ‰                     d¦  «        k     ‰                     t          d¦  «        ¦  «        ‰                     | ‰                     d¦  «        k    ‰                     t          d¦  «        ¦  «         |d |d| ¦  «         |d‰                     ‰¦  «        ¦  «        ¦  «        ¦  «        ¦  «        S )Nr   r¯  z-infrZ  Úlog)rŽ   r£   r�   r°  )rƒ   rz  rµ  r9   s     €€r:   Ú_logzSQLExpr.log.<locals>._logz  s°   ø€ Ø”ˆAØ—:’:Ø�t—y’y ‘|”|Ò#Ø—	’	�% ™,œ,Ñ'Ô'Ø—
’
Ø˜DŸIšI a™LœLÒ(Ø—I’I�e F™mœmÑ,Ô,Ø�A�h   %¨¡¤°°°%¸¿ºÀ4¹¼Ñ0IÔ0IÑJÔJñô ñô ð r<   rB  rj  )r9   rµ  r¹  s   `` r:   r¸  zSQLExpr.logy  s=   øø€ ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð ×%Ò% dÑ+Ô+Ð+r<   c               óV   — |                       |                      d|¬¦  «        ¦  «        S )NrÀ   ©r¯   ©rj   r¸   ©r9   r¯   s     r:   Úcum_sumzSQLExpr.cum_sum‰  ó)   € Ø×)Ò)¨$×*?Ò*?ÀÈwÐ*?Ñ*WÔ*WÑXÔXÐXr<   c               óV   — |                       |                      d|¬¦  «        ¦  «        S )NrO  r»  r¼  r½  s     r:   Úcum_maxzSQLExpr.cum_maxŒ  r¿  r<   c               óV   — |                       |                      d|¬¦  «        ¦  «        S )Nrn  r»  r¼  r½  s     r:   Úcum_minzSQLExpr.cum_min�  r¿  r<   c               ó>   ‡ ‡— dˆˆ fd„}‰                       |¦  «        S )	Nr=   r   r}   r^   r4   r>   c                ó~   •‡‡— t          ‰t          ‰j        ¦  «        ¦  «        Šˆˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc           
     ó‚   •— g | ];}‰                      ‰                     d |¦  «        ‰j        ‰j        ‰‰d¬¦  «        ‘Œ<S )rÍ   r   r´   ©r€   rŽ   r�   r…   ©rM   rƒ   rµ   r}   r9   s     €€€r:   rU   z3SQLExpr.cum_count.<locals>.func.<locals>.<listcomp>—  se   ø€ ð 
ð 
ð 
ð ð ×'Ò'Ø—N’N 7¨DÑ1Ô1ØÔ'Ø”OØ$Ø$Øð (ñ ô ð
ð 
ð 
r<   r¶   )r=   r}   rµ   r¯   r9   s    `@€€r:   rY   zSQLExpr.cum_count.<locals>.func“  s_   øøø€ õ   ­¨V¬_Ñ)=Ô)=Ñ>Ô>ˆEð
ð 
ð 
ð 
ð 
ð 
ð !˜D ™HœHð
ñ 
ô 
ð 
r<   rˆ   ©rj   )r9   r¯   rY   s   `` r:   Ú	cum_countzSQLExpr.cum_count’  s=   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð  ×)Ò)¨$Ñ/Ô/Ð/r<   c               óV   — |                       |                      d|¬¦  «        ¦  «        S )NÚproductr»  r¼  r½  s     r:   Úcum_prodzSQLExpr.cum_prod¥  s0   € Ø×)Ò)Ø×!Ò! )°WÐ!Ñ=Ô=ñ
ô 
ð 	
r<   c               óZ   — |                       |                      d|||¬¦  «        ¦  «        S )NrÀ   ©r¾   ©rj   r×   ©r9   rº   r¼   r¾   s       r:   Úrolling_sumzSQLExpr.rolling_sum«  s4   € Ø×)Ò)Ø×%Ò% e¨[¸+ÈfÐ%ÑUÔUñ
ô 
ð 	
r<   c               óZ   — |                       |                      d|||¬¦  «        ¦  «        S )NrÁ   rÏ  rÐ  rÑ  s       r:   Úrolling_meanzSQLExpr.rolling_mean°  s4   € Ø×)Ò)Ø×%Ò% f¨k¸;ÈvÐ%ÑVÔVñ
ô 
ð 	
r<   c          	     ó\   — |                       |                      d||||¬¦  «        ¦  «        S )NrÃ   ©r½   r¾   rÐ  ©r9   rº   r¼   r¾   r½   s        r:   Úrolling_varzSQLExpr.rolling_varµ  ó?   € ð ×)Ò)Ø×%Ò%Ø�{ K°dÀ6ð &ñ ô ñ
ô 
ð 	
r<   c          	     ó\   — |                       |                      d||||¬¦  «        ¦  «        S )NrÂ   rÖ  rÐ  r×  s        r:   Úrolling_stdzSQLExpr.rolling_std¾  rÙ  r<   c                ó:   ‡ — dˆ fd„}‰                       |¦  «        S )	Nr=   r   r}   r^   r4   r>   c                óX   •‡‡‡— ‰j         Š‰j        Šˆˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc                óh   •— g | ].} ‰d | ‰ ‰d|¦  «        ‰j         ‰j        ¦  «        ¦  «        ‘Œ/S )r[  Úlag)r�   r…   )rM   rƒ   rz  r}   Úwindows     €€€r:   rU   z.SQLExpr.diff.<locals>.func.<locals>.<listcomp>Î  s]   ø€ ð ð ð ð ð �ØØØ�F˜1˜1˜U D™>œ>¨6Ô+>ÀÄÑPÔPñô ðð ð r<   )rŽ   r€   )r=   r}   rz  rà  r9   s    `@@€r:   rY   zSQLExpr.diff.<locals>.funcÉ  sV   øøøø€ ð ”ˆAØÔ,ˆFðð ð ð ð ð ð !˜D ™HœHðñ ô ð r<   rˆ   rÉ  ©r9   rY   s   ` r:   ÚdiffzSQLExpr.diffÈ  ó7   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð ×)Ò)¨$Ñ/Ô/Ð/r<   Únc                ó>   ‡ ‡— dˆˆ fd„}‰                       |¦  «        S )	Nr=   r   r}   r^   r4   r>   c                ó8   •‡— ˆˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc           	     ó|   •— g | ]8}‰                      ‰                     d |‰¦  «        ‰j        ‰j        ¦  «        ‘Œ9S )rß  rÇ  )rM   rƒ   r}   rä  r9   s     €€€r:   rU   z/SQLExpr.shift.<locals>.func.<locals>.<listcomp>Ý  sW   ø€ ð ð ð ð ð ×'Ò'Ø—N’N 5¨$°Ñ2Ô2°FÔ4GÈÌñô ðð ð r<   r8   )r=   r}   rä  r9   s    `€€r:   rY   zSQLExpr.shift.<locals>.funcÚ  sC   øø€ ðð ð ð ð ð ð !˜D ™HœHð	ñ ô ð r<   rˆ   rÉ  )r9   rä  rY   s   `` r:   ÚshiftzSQLExpr.shiftÙ  s=   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð ×)Ò)¨$Ñ/Ô/Ð/r<   c                ó:   ‡ — dˆ fd„}‰                       |¦  «        S )	Nr=   r   r}   r^   r4   r>   c                ó6   •‡— ˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc                ó°   •— g | ]R}‰                      ‰                     d ¦  «        g ‰j        ¢|‘R ‰j        ¦  «        ‰                     d¦  «        k    ‘ŒSS )Ú
row_numberrÄ   ©r€   rŽ   r�   r…   r�   r‚   s     €€r:   rU   z;SQLExpr.is_first_distinct.<locals>.func.<locals>.<listcomp>ë  sv   ø€ ð ð ð ð ð ×'Ò'Ø—N’N <Ñ0Ô0Ø0�fÔ)Ð0¨4Ð0Ð0Ø”Oñô ð
 —9’9˜Q‘<”<ò ðð ð r<   r8   r†   s    `€r:   rY   z'SQLExpr.is_first_distinct.<locals>.funcç  s>   øø€ ðð ð ð ð ð !˜D ™HœHðñ ô ð r<   rˆ   rÉ  rá  s   ` r:   Úis_first_distinctzSQLExpr.is_first_distinctæ  rã  r<   c                ó:   ‡ — dˆ fd„}‰                       |¦  «        S )	Nr=   r   r}   r^   r4   r>   c                ó~   •‡‡— t          dt          ‰j        ¦  «        ¦  «        Šˆˆˆfd„ ‰| ¦  «        D ¦   «         S )NTc           	     ó¶   •— g | ]U}‰                      ‰                     d ¦  «        g ‰j        ¢|‘R ‰j        ‰‰¬¦  «        ‰                     d¦  «        k    ‘ŒVS )rì  r¤   rÄ   rí  rÈ  s     €€€r:   rU   z:SQLExpr.is_last_distinct.<locals>.func.<locals>.<listcomp>ü  s�   ø€ ð 
ð 
ð 
ð ð ×'Ò'Ø—N’N <Ñ0Ô0Ø0�fÔ)Ð0¨4Ð0Ð0Ø”OØ$Ø$ð (ñ ô ð —9’9˜Q‘<”<ò ð
ð 
ð 
r<   r¶   )r=   r}   rµ   r9   s    `@€r:   rY   z&SQLExpr.is_last_distinct.<locals>.funcø  s_   øøø€ õ   ¥c¨&¬/Ñ&:Ô&:Ñ;Ô;ˆEð
ð 
ð 
ð 
ð 
ð 
ð !˜D ™HœHð
ñ 
ô 
ð 
r<   rˆ   rÉ  rá  s   ` r:   Úis_last_distinctzSQLExpr.is_last_distinct÷  s7   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð  ×)Ò)¨$Ñ/Ô/Ð/r<   úSequence[str]c                óN   ‡ ‡— dˆˆ fd„}dˆˆ fd
„}‰                       ||¦  «        S )Nrƒ   r   r4   c                óF   •— ‰sd}t          |¦  «        ‚ ‰j        | g‰¢R Ž S ©Nz#Expected `order_by` to be specified)r   r˜   ©rƒ   rÑ   r…   r9   s     €€r:   r=  zSQLExpr.first.<locals>.f  s8   ø€ Øð 1Ø;�Ý+¨CÑ0Ô0Ð0Ø�4”;˜tÐ/ hÐ/Ð/Ð/Ð/r<   r=   r   r}   r^   r>   c                ó    •‡— ‰r‰j         rd}t          |¦  «        ‚‰s‰j         sd}t          |¦  «        ‚ˆˆˆfd„ ‰| ¦  «        D ¦   «         S )Nz4Can't specify both `order_by` in `over` and `first`.z4Must specify `order_by` either in `over` or `first`.c                ól   •— g | ]0}‰                       ‰j        |g‰j        p‰¢R Ž ‰j        ¦  «        ‘Œ1S r8   )r€   r˜   r…   r�   ©rM   rƒ   r}   r…   r9   s     €€€r:   rU   z3SQLExpr.first.<locals>.window_f.<locals>.<listcomp>  s^   ø€ ð ð ð ð ð ×'Ò'Ø�D”K ÐE¨¬Ð(C¸8ÐEÐEÐEÀvÔGZñô ðð ð r<   ©r…   r   ©r=   r}   rÑ   r…   r9   s    ` €€r:   rc   zSQLExpr.first.<locals>.window_f  s�   øø€ ð ð 1˜FœOð 1ØL�Ý+¨CÑ0Ô0Ð0Øð 1 F¤Oð 1ØL�Ý+¨CÑ0Ô0Ð0ðð ð ð ð ð ð !˜D ™HœHð	ñ ô ð r<   rB  rˆ   rC  ©r9   r…   r=  rc   s   ``  r:   ÚfirstzSQLExpr.first
  sb   øø€ ð	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð	ð 	ð 	ð 	ð 	ð 	ð 	ð  ×"Ò" 1 hÑ/Ô/Ð/r<   c                óN   ‡ ‡— dˆˆ fd„}dˆˆ fd
„}‰                       ||¦  «        S )Nrƒ   r   r4   c                óF   •— ‰sd}t          |¦  «        ‚ ‰j        | g‰¢R Ž S rö  )r   rš   r÷  s     €€r:   r=  zSQLExpr.last.<locals>.f$  s8   ø€ Øð 1Ø;�Ý+¨CÑ0Ô0Ð0Ø�4”:˜dÐ. XÐ.Ð.Ð.Ð.r<   r=   r   r}   r^   r>   c                ó    •‡— ‰r‰j         rd}t          |¦  «        ‚‰s‰j         sd}t          |¦  «        ‚ˆˆˆfd„ ‰| ¦  «        D ¦   «         S )Nz3Can't specify both `order_by` in `over` and `last`.z3Must specify `order_by` either in `over` or `last`.c                ól   •— g | ]0}‰                       ‰j        |g‰j        p‰¢R Ž ‰j        ¦  «        ‘Œ1S r8   )r€   rš   r…   r�   rú  s     €€€r:   rU   z2SQLExpr.last.<locals>.window_f.<locals>.<listcomp>3  s^   ø€ ð ð ð ð ð ×'Ò'Ø�D”J˜tÐD v¤Ð'B¸(ÐDÐDÐDÀfÔFYñô ðð ð r<   rû  rü  s    ` €€r:   rc   zSQLExpr.last.<locals>.window_f*  s�   øø€ ð ð 1˜FœOð 1ØK�Ý+¨CÑ0Ô0Ð0Øð 1 F¤Oð 1ØK�Ý+¨CÑ0Ô0Ð0ðð ð ð ð ð ð !˜D ™HœHð	ñ ô ð r<   rB  rˆ   rC  rý  s   ``  r:   ÚlastzSQLExpr.last#  sb   øø€ ð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð	ð 	ð 	ð 	ð 	ð 	ð 	ð  ×"Ò" 1 hÑ/Ô/Ð/r<   c               ó8   ‡ ‡— ‰                       ˆˆ fd„¦  «        S )Nc                ó2   •— ‰                      | ‰¬¦  «        S )N)r›   )rž   )rƒ   r›   r9   s    €€r:   ry   z#SQLExpr.any_value.<locals>.<lambda>>  s   ø€ ˜Ÿš¨¸L˜ÑIÔI€ r<   rC  )r9   r›   s   ``r:   Ú	any_valuezSQLExpr.any_value<  s+   øø€ Ø×"Ò"ØIÐIÐIÐIÐIñ
ô 
ð 	
r<   Úmethodr!   c               ó   ‡ ‡‡‡‡— ‰dv r‰                       d¦  «        Šn1‰dk    r‰                       d¦  «        Šn‰                       d¦  «        Š	 ddˆˆˆ fd„Šdˆˆfd„}dˆˆˆ fd„}‰                      ||¦  «        S )N>   rO  rn  ÚaverageÚrankÚdenseÚ
dense_rankrì  r8   rƒ   r   r�   r§   r¥   rœ   r4   c               óü  •— ‰                      ¦   «         }|| f|gdgdœ}dg |¢| ‘R i}‰j        }‰j        }‰
dk    r: |d |d |‰	fi |¤Ž ||fi |¤Ž¦  «        ‰                     d¦  «        ¦  «        }ng‰
dk    rX |d |‰	fi |¤Ž |d	 |d ||fi |¤Ž‰                     d¦  «        ¦  «        ‰                     d
¦  «        ¦  «        ¦  «        }n	 |‰	fi |¤Ž}‰                      |d| ¦  «        |¦  «        S )NT)r�   r…   r¥   r¦   r�   rO  r[  rw  rÄ   r	  rZ  g       @r³   )r”   r€   rŽ   r�   r£   )rƒ   r�   r¥   Ú
count_exprrÏ   Úcount_window_kwargsrà  rz  Ú	rank_exprrY   r  r9   s            €€€r:   Ú_rankzSQLExpr.rank.<locals>._rankI  s’  ø€ ð ×)Ò)Ñ+Ô+ˆJà ,Ø!˜GØ)˜lØ#˜fð	-ð -ˆMð 4BÐCXÀ\ÐCXÐSWÐCXÐCXÐ2YÐØÔ,ˆFØ”ˆAØ˜ŠˆØ˜AØØ�AØØ˜˜tÐ5Ð5 }Ð5Ð5Ø˜˜zÐAÐAÐ-@ÐAÐAñô ð
 —I’I˜a‘L”Lñô �	�	ð ˜9Ò$Ð$Ø˜AØØ�F˜4Ð1Ð1 =Ð1Ð1Ø�AØ Ø˜Ø&Ø"˜F :ÐEÐEÐ1DÐEÐEØ ŸIšI a™LœLñô ð
 Ÿ	š	 #™œñô ñô �	�	ð #˜F 4Ð9Ð9¨=Ð9Ð9�	Ø—:’:˜a˜a ¨TÑ2Ô2°IÑ>Ô>Ð>r<   c                ó   •—  ‰| ‰¬¦  «        S )N©r¥   r8   )rƒ   r  r¥   s    €€r:   Ú_unpartitioned_rankz)SQLExpr.rank.<locals>._unpartitioned_ranku  s   ø€ Ø�5˜¨*Ð5Ñ5Ô5Ð5r<   r=   r   r}   r^   r>   c                óh   •‡— ‰j         rd}t          |¦  «        ‚ˆˆˆfd„ ‰| ¦  «        D ¦   «         S )Nz[`rank` followed by `over` with `order_by` specified is not supported for SQL-like backends.c                ó6   •— g | ]} ‰|‰j         ‰¬ ¦  «        ‘ŒS )r  ©r�   )rM   rƒ   r  r¥   r}   s     €€€r:   rU   z;SQLExpr.rank.<locals>._partitioned_rank.<locals>.<listcomp>~  s=   ø€ ð ð ð àð ��d˜FÔ/¸JÐGÑGÔGðð ð r<   )r…   ÚNotImplementedError)r=   r}   rÑ   r  r¥   r9   s    ` €€€r:   Ú_partitioned_rankz'SQLExpr.rank.<locals>._partitioned_rankx  s`   øø€ ð Œð /Øs�Ý)¨#Ñ.Ô.Ð.ðð ð ð ð ð à ˜D ™HœHðñ ô ð r<   ©r8   )rƒ   r   r�   r§   r¥   rœ   r4   r   rB  rˆ   )rŽ   rm   )r9   r  r¥   r  r  r  rY   s   ```  @@r:   r
  zSQLExpr.rankA  sí   øøøøø€ ØÐ.Ð.Ð.Ø—>’> &Ñ)Ô)ˆDˆDØ�wÒÐØ—>’> ,Ñ/Ô/ˆDˆDà—>’> ,Ñ/Ô/ˆDð 9;ð*	?ð *	?ð *	?ð *	?ð *	?ð *	?ð *	?ð *	?ð *	?ðX	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð ×"Ò"Ð#6Ð8IÑJÔJÐJr<   c                ó|   ‡ ‡— dˆ fd„Šdˆfd„}dˆˆ fd„}‰                       |¦  «                             |¦  «        S )Nrƒ   r   r�   ústr | NativeExprTr4   c                óŠ   •— ‰                      ‰                     ¦   «         | g|¢R ¦  «        ‰                     d¦  «        k    S )NrÄ   )r€   r”   r�   )rƒ   r�   r9   s     €r:   Ú
_is_uniquez%SQLExpr.is_unique.<locals>._is_unique†  sK   ø€ ð ×*Ò*Ø× Ò Ñ"Ô" TÐ$9¨LÐ$9Ð$9ñô à—’˜1‘”òð r<   c                ó   •—  ‰| ¦  «        S r7   r8   )rƒ   r  s    €r:   Ú_unpartitioned_is_uniquez3SQLExpr.is_unique.<locals>._unpartitioned_is_unique�  s   ø€ Ø�:˜dÑ#Ô#Ð#r<   r=   r   r}   r^   r>   c                óH   •‡— ‰j         rJ ‚ˆˆfd„ ‰| ¦  «        D ¦   «         S )Nc                ó,   •— g | ]} ‰|g‰j         ¢R Ž ‘ŒS r8   r  )rM   rƒ   r  r}   s     €€r:   rU   zESQLExpr.is_unique.<locals>._partitioned_is_unique.<locals>.<listcomp>”  s.   ø€ ÐPÐPÐP¸t�J�J˜tÐ: fÔ&9Ð:Ð:Ð:ÐPÐPÐPr<   r„   )r=   r}   r  r9   s    `€€r:   Ú_partitioned_is_uniquez1SQLExpr.is_unique.<locals>._partitioned_is_unique�  s9   øø€ ð ”Ð&Ð&Ð&ØPÐPÐPÐPÐPÀtÀtÈBÁxÄxÐPÑPÔPÐPr<   )rƒ   r   r�   r  r4   r   rB  rˆ   )rm   rj   )r9   r   r#  r  s   `  @r:   Ú	is_uniquezSQLExpr.is_unique…  s–   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð ×"Ò"Ð#;Ñ<Ô<×RÒRØ"ñ
ô 
ð 	
r<   c                ót   ‡ ‡‡— dˆˆˆ fd„}‰                       |‰ j        ‰ j        ‰ j        ‰ j        ¬¦  «        S )Nr=   r   r4   r>   c                óL   •— ‰                      | t          ‰‰¦  «        ¦  «        S r7   )r0   r   )r=   r…   r�   r9   s    €€€r:   rY   zSQLExpr.over.<locals>.funcž  s#   ø€ Ø×'Ò'¨­L¸ÀxÑ,PÔ,PÑQÔQÐQr<   rh   rç   )ri   r'   r)   r*   r+   )r9   r�   r…   rY   s   ``` r:   ÚoverzSQLExpr.over›  sl   øøø€ ð	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð �~Š~ØØ"&Ô"=Ø#Ô7Ø”MØÔ/ð ñ 
ô 
ð 	
r<   Úkeepr   c               óz   ‡ — |dk    rd|› d‰ j         › d�}t          |¦  «        ‚‰                      ˆ fd„¦  «        S )NrL  z`Expr.mode(keep='z#')` is not implemented for backend z3

Hint: Use `nw.col(...).mode(keep='any')` instead.c                ó0   •— ‰                      d| ¦  «        S )NÚmoderP  r<  s    €r:   ry   zSQLExpr.mode.<locals>.<lambda>±  rU  r<   )r+   r  rm   )r9   r(  rÑ   s   `  r:   r+  zSQLExpr.mode©  sj   ø€ Ø�5Š=ˆ=ðD Dð Dð DÈTÔMað Dð Dð Dð õ & cÑ*Ô*Ð*à×"Ò"Ð#LÐ#LÐ#LÐ#LÑMÔMÐMr<   úSQLExprStringNamespace[Self]c                ó   — d S r7   r8   rC   s    r:   rŠ   zSQLExpr.str´  s   € Ø36°3r<   úSQLExprDateTimeNamesSpace[Self]c                ó   — d S r7   r8   rC   s    r:   Údtz
SQLExpr.dt·  s   € Ø58°Sr<   z#lf.select(nw.col('a').drop_nulls())zlf.drop_nulls(subset=['a']))Ú
instead_ofÚuse)Úhintz.lf.select(nw.col('a').filter(nw.col('b') > 0))z&lf.filter(nw.col('b') > 0).select('a')zlf.select(nw.col('a').unique())zlf.select('a').unique()r7   )r/   r$   r0   r,   r1   r&   r2   r(   r3   r   r.   r   r4   r5   rç   )r4   rA   )rE   rF   r/   rG   r4   r$   )rE   rF   r/   rG   r4   r[   )r0   r[   r4   r   )NN)rE   rF   r/   rG   rk   r,   r4   r   )rE   rF   r/   rG   r4   r   )rq   rG   rr   r   r4   r   )rY   r(   r4   r   )r4   r[   )r‰   rŠ   r‹   rŒ   r4   r   )rO   r   r4   r   rB  )r4   r   )rƒ   r   r…   rŠ   r4   r   )rƒ   r   r›   rœ   r4   r   )rŸ   r   rO   r   r    r¡   r4   r   )r8   r8   NN)rƒ   r   r�   r§   r…   r§   r¨   r©   rª   r©   r¥   r«   r¦   r«   r4   r   )r­   r®   r¯   rœ   r4   r[   )r­   r¹   rº   r»   r¼   r»   r½   r©   r¾   rœ   r4   r[   )r4   rØ   )rƒ   r   r‰   rŠ   r4   r   )rY   rÞ   rß   r   r4   r   )r4   rœ   )rr   r   r4   r   )r4   r   )r½   r»   r4   r   )rO   re  r4   r   )r†  r   r‡  r   r4   r   )r†  r   r4   r   )r‡  r   r4   r   )r›  r»   r4   r   )rµ  r°  r4   r   )r¯   rœ   r4   r   )rº   r»   r¼   r»   r¾   rœ   r4   r   )
rº   r»   r¼   r»   r¾   rœ   r½   r»   r4   r   )rä  r»   r4   r   r  )r…   ró  r4   r   )r›   rœ   r4   r   )r  r!   r¥   rœ   r4   r   )r�   r§   r…   ró  r4   r   )r(  r   r4   r   )r4   r,  )r4   r.  )hÚ__name__Ú
__module__Ú__qualname__Ú__annotations__r   ÚDUCKDBr;   r@   rD   rZ   re   rj   rm   rp   rt   r{   Úpropertyr0   rŽ   r�   r’   r”   r˜   rš   rž   r£   r€   r¸   r×   rÚ   ÚclassmethodrÝ   ré   rî   rñ   rù   rü   r  r  r  r  r  r  r  r  r  r!  r$  r'  r*  r4  r7  rE  rL  rO  rÁ   rÂ   rÃ   rd  rk  rn  rÍ   rÀ   r€  rƒ  r�  r“  r—  rš  rž  r£  r¦  r©  r¬  rY  r´  r¸  r¾  rÁ  rÃ  rÊ  rÍ  rÒ  rÔ  rØ  rÛ  râ  rè  rî  rò  rþ  r  r  r
  r$  r'  r+  rŠ   r0  r   r   Ú
drop_nullsÚfilterÚuniquer8   r<   r:   r#   r#   #   sP	  € € € € € € Ø1Ð1Ð1Ñ1Ø4Ð4Ð4Ñ4Ø*Ð*Ð*Ñ*ØÐÐÑØ#Ð#Ð#Ñ#ØGÐGÐGÑGð
 NRð	ð *8Ô)>ð	ð 	ð 	ð 	ð 	ð 	ðð ð ð ðBð Bð Bð Bð 37ð	ð ð ð ð ð. 37ð	ð ð ð ð ð4

ð 

ð 

ð 

ð JNà26ð
ð 
ð 
ð 
ð 
ð( 37ð	
ð 
ð 
ð 
ð 
ð	
ð 	
ð 	
ð 	
ð
ð 
ð 
ð 
ð$ ð	<ð 	<ð 	<ñ „Xð	<ðDð Dð Dð Dð9ð 9ð 9ð 9ð>ð >ð >ð >ð .Ð-Ð-Ð-ØKÐKÐKÐKØJÐJÐJÐJØVÐVÐVÐVð
 )-ð	Pð Pð Pð Pð Pð 57Ø02Ø!%Ø#ð
ð -1Ø,0ð
ð 
ð 
ð 
ð 
ð 
ðð ð ð ð:  ð7ð 7ð 7ð 7ð 7ðr ð7ð 7ð 7ñ „Xð7ð ØOÐOÐOñ „[ØOàð
ð 
ð 
ñ „[ð
ð,@ð @ð @ð @ðPð Pð Pð PðPð Pð Pð PðQð Qð Qð QðQð Qð Qð Qð[ð [ð [ð [ðQð Qð Qð QðUð Uð Uð Uð[ð [ð [ð [ðQð Qð Qð QðZð Zð Zð ZðPð Pð Pð PðPð Pð Pð PðPð Pð Pð PðPð Pð Pð PðQð Qð Qð QðPð Pð Pð Pð4ð 4ð 4ð 4ðEð Eð Eð Eð0ð 0ð 0ð 0ð&0ð 0ð 0ð 0ð&Mð Mð Mð MðNð Nð Nð Nð)ð )ð )ð )ð,)ð )ð )ð )ð&Pð Pð Pð Pð1ð 1ð 1ð 1ðMð Mð Mð MðOð Oð Oð Oð0ð 0ð 0ð 0ð(3ð 3ð 3ð 3ð<Pð Pð Pð Pð
ð 
ð 
ð 
ð[ð [ð [ð [ð[ð [ð [ð [ðSð Sð Sð Sð
ð 
ð 
ð 
ðRð Rð Rð RðQð Qð Qð QðPð Pð Pð PðPð Pð Pð Pð-ð -ð -ð -ðPð Pð Pð Pð,ð ,ð ,ð ,ð Yð Yð Yð YðYð Yð Yð YðYð Yð Yð Yð0ð 0ð 0ð 0ð&
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð

ð 
ð 
ð 
ð

ð 
ð 
ð 
ð
ð 
ð 
ð 
ð0ð 0ð 0ð 0ð"0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð"0ð 0ð 0ð 0ð&0ð 0ð 0ð 0ð 0ð20ð 0ð 0ð 0ð 0ð2
ð 
ð 
ð 
ð
BKð BKð BKð BKðH
ð 
ð 
ð 
ð,
ð 
ð 
ð 
ðNð Nð Nð Nð Ø6Ð6Ð6ñ „XØ6àØ8Ð8Ð8ñ „XØ8ð !�Ø!Ð!Ø<Ø-ð
ñ 
ô 
ðñ ô €Jð ˆ_Ø!Ð!ØGØ8ð
ñ 
ô 
ðñ ô €Fð ˆ_Ø!Ð!Ø8Ð>Wð
ñ 
ô 
ðñ ô €F€F€Fr<   r#   N)/Ú
__future__r   Útypingr   r   r   r   Únarwhals._compliant.exprr   Únarwhals._compliant.typingr	   r
   r   Únarwhals._compliant.windowr   Únarwhals._expression_parsingr   r   Únarwhals._sql.typingr   Únarwhals._utilsr   r   r   r   r   r   Únarwhals.exceptionsr   Úcollections.abcr   r   Útyping_extensionsr   r   r   Únarwhals._sql.expr_dtr   Únarwhals._sql.expr_strr   Únarwhals._sql.namespacer   Únarwhals.typingr   r    r!   r#   r8   r<   r:   ú<module>rM     s  ðØ "Ð "Ð "Ð "Ð "Ð "à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8à -Ð -Ð -Ð -Ð -Ð -Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 6Ð 5Ð 5Ð 5Ð 5Ð 5àð 	LØ2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à&Ð&Ð&Ð&Ð&Ð&àEÐEÐEÐEÐEÐEÐEÐEØ?Ð?Ð?Ð?Ð?Ð?Ø=Ð=Ð=Ð=Ð=Ð=Ø4Ð4Ð4Ð4Ð4Ð4ØKÐKÐKÐKÐKÐKÐKÐKÐKÐKðið ið ið ið iˆh�} kÐ1Ô2°H¸]ÈKÐ=WÔ4Xñ iô ið ið ið ir<   