Ë
    ðmxiŒ  ã            	      óP  — d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
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mZmZmZmZmZ d dlmZmZ d dlm Z  d dl!m"Z" er"d dl#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, ejZ                  Z- G d„ de eedef   «      Z.y)é    )ÚannotationsN)Úreduce)Úchain)ÚTYPE_CHECKINGÚAny)ÚCoalesceOperatorÚ
Expression©ÚDuckDBLazyFrame©Ú
DuckDBExpr)ÚDuckDBSelectorNamespace)ÚDeferredTimeZoneÚFÚ
concat_strÚduckdb_dtypesÚfunctionÚlitÚnarwhals_to_native_dtypeÚwhen)Úcombine_alias_output_namesÚcombine_evaluate_output_names)ÚSQLNamespace)ÚImplementation)ÚIterable)ÚDuckDBPyRelation)ÚWindowInputs)ÚVersion)ÚConcatMethodÚ	IntoDTypeÚNonNestedLiteralc                  óä   — e Zd ZU ej                  Zded<   dd„Zedd„«       Z	edd„«       Z
edd„«       Zdd„Zdd„Z	 d	 	 	 	 	 	 	 dd
„Zdd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zy	)ÚDuckDBNamespacer   Ú_implementationc               ó   — || _         y ©N)Ú_version)ÚselfÚversions     úQ/home/htdocs/ttos/venv/lib/python3.12/site-packages/narwhals/_duckdb/namespace.pyÚ__init__zDuckDBNamespace.__init__0   s	   € Øˆ�ó    c                ó,   — t        j                  | «      S r&   )r   Úfrom_namespace©r(   s    r*   Ú	selectorszDuckDBNamespace.selectors3   s   € ä&×5Ñ5°dÓ;Ð;r,   c                ó   — t         S r&   r   r/   s    r*   Ú_exprzDuckDBNamespace._expr7   s   € äÐr,   c                ó   — t         S r&   r
   r/   s    r*   Ú
_lazyframezDuckDBNamespace._lazyframe;   s   € äÐr,   c                ó   — t        |g|¢­Ž S r&   )r   )r(   ÚnameÚargss      r*   Ú	_functionzDuckDBNamespace._function?   s   € Ü˜Ð$˜tÒ$Ð$r,   c                ó   — t        |«      S r&   )r   )r(   Úvalues     r*   Ú_litzDuckDBNamespace._litB   s   € Ü�5‹zÐr,   Nc                óT   — |€t        ||«      S t        ||«      j                  |«      S r&   )r   Ú	otherwise)r(   Ú	conditionr:   r=   s       r*   Ú_whenzDuckDBNamespace._whenE   s/   € ð ÐÜ˜	 5Ó)Ð)Ü�I˜uÓ%×/Ñ/°	Ó:Ð:r,   c                ó   — t        |Ž S r&   )r   )r(   Úexprss     r*   Ú	_coalescezDuckDBNamespace._coalesceO   s   € Ü Ð'Ð'r,   c               óˆ  ‡	— |D �cg c]  }|j                   ‘Œ }}t        |«      }|d   }|j                  Š	|dk(  r$t        ˆ	fd„|dd  D «       «      sd}t	        |«      ‚|dk(  r<|j
                  }|dd  D ]  }t        j                  d«      }Œ |j                  |«      S t        d„ |«      }|j                  |«      S c c}w )	Nr   Úverticalc              3  ó<   •K  — | ]  }|j                   ‰k(  –— Œ y ­wr&   )Úschema)Ú.0ÚxrF   s     €r*   ú	<genexpr>z)DuckDBNamespace.concat.<locals>.<genexpr>Y   s   øè ø€ Ò(OÀ¨¯©°VÕ);Ñ(Oùs   ƒé   z&inputs should all have the same schemaÚdiagonalz]
                    from res select * union all by name from _item select *
                c                ó$   — | j                  |«      S r&   )Úunion)rH   Úys     r*   ú<lambda>z(DuckDBNamespace.concat.<locals>.<lambda>d   s   €  !§'¡'¨!£*€ r,   )
Ú_native_frameÚlistrF   ÚallÚ	TypeErrorÚnativeÚduckdbÚsqlÚ_with_nativer   )
r(   ÚitemsÚhowÚitemÚnative_itemsÚfirstÚmsgÚresÚ_itemrF   s
            @r*   ÚconcatzDuckDBNamespace.concatR   sÓ   ø€ ð 8=Ö=¨t˜×*Ó*Ð=ˆÐ=Ü�U“ˆØ�a‘ˆØ—‘ˆØ�*Ò¤SÓ(OÀUÈ1È2ÀYÔ(OÔ%OØ:ˆCÜ˜C“.Ð Ø�*ÒØ—,‘,ˆCØ% a bÐ)ò �ä—j‘jð "ó ‘ðð
 ×%Ñ% cÓ*Ð*ÜÑ,¨lÓ;ˆØ×!Ñ! #Ó&Ð&ùò! >s   †B?c               ón   ‡‡‡— dˆˆˆfd„}| j                  |t        ‰Ž t        ‰Ž | j                  ¬«      S )Nc                óö   •‡ — t        j                  ˆ fd„‰D «       «      }‰rt        |d‰iŽgS t        |«      }t	        t
        j                  d„ |D «       «      }d„ |D «       }t        | t        |d‰iŽ«      gS )Nc              3  ó.   •K  — | ]  } |‰«      –— Œ y ­wr&   © )rG   ÚeÚdfs     €r*   rI   z;DuckDBNamespace.concat_str.<locals>.func.<locals>.<genexpr>k   s   øè ø€ Ò<RÀq¹Q¸r¿UÑ<Rùs   ƒÚ	separatorc              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr&   )Úisnull)rG   Úss     r*   rI   z;DuckDBNamespace.concat_str.<locals>.func.<locals>.<genexpr>o   s   è ø€ Ò-G¸Q¨a¯h©h¯jÑ-Gùs   ‚c              3  óF   K  — | ]  }|j                  t        «      –— Œ y ­wr&   )ÚcastÚVARCHAR)rG   Úcs     r*   rI   z;DuckDBNamespace.concat_str.<locals>.func.<locals>.<genexpr>p   s   è ø€ Ò6¨A˜Ÿ™œwŸÑ6ùó   ‚!)r   Úfrom_iterabler   Útupler   ÚoperatorÚor_r   )rf   ÚcolsÚ	null_maskÚcols_strrA   Úignore_nullsrg   s   `   €€€r*   Úfuncz(DuckDBNamespace.concat_str.<locals>.funcj   st   ù€ Ü).×)<Ñ)<Ó<RÈEÔ<RÓ)RˆDÙÜ" DÐ>°IÑ>Ð?Ð?Ü˜“;ˆDÜœxŸ|™|Ñ-GÀ$Ô-GÓHˆIÙ6°Ô6ˆHÜ˜)˜¤Z°Ð%OÀYÑ%OÓPÐQÐQr,   ©ÚcallÚevaluate_output_namesÚalias_output_namesr)   ©rf   r   Úreturnúlist[Expression])r2   r   r   r'   )r(   rg   rw   rA   rx   s    ``` r*   r   zDuckDBNamespace.concat_strg   s;   ú€ ÷	Rð �z‰zØÜ"?ÀÐ"GÜ9¸5ÐAØ—M‘Mð	 ó 
ð 	
r,   c                óD   — dd„} | j                   j                  |g|¢­Ž S )Nc                ó¦   — t        | «      } t        t        j                  d„ | D «       «      }t        t        j                  d„ | D «       «      }||z  S )Nc              3  óF   K  — | ]  }t        |t        d «      «      –— Œ y­w)r   N)r   r   ©rG   Úcols     r*   rI   z@DuckDBNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>}   s   è ø€ Ò)XÈCÔ*:¸3ÄÀAÃ×*GÑ)Xùro   c              3  óv   K  — | ]1  }|j                  «       j                  t        j                  «      –— Œ3 y ­wr&   )Ú	isnotnullrl   r   ÚBIGINTrƒ   s     r*   rI   z@DuckDBNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>   s'   è ø€ ÒZÈc˜sŸ}™}›×3Ñ3´M×4HÑ4H×IÑZùs   ‚79)rq   r   rr   Úadd)rt   ÚtotalÚcounts      r*   rx   z-DuckDBNamespace.mean_horizontal.<locals>.func{   sH   € Ü˜“;ˆDÜœ8Ÿ<™<Ñ)XÐSWÔ)XÓYˆEÜÜ—‘ÑZÐUYÔZóˆEð ˜5‘=Ð r,   )rt   zIterable[Expression]r~   r	   )r2   Ú_from_elementwise_horizontal_op)r(   rA   rx   s      r*   Úmean_horizontalzDuckDBNamespace.mean_horizontalz   s%   € ó	!ð :ˆt�z‰z×9Ñ9¸$ÐGÀÒGÐGr,   c                ót   ‡ ‡‡‡— dˆˆ ˆfd„Š	 	 	 	 	 	 dˆfd„}‰ j                  ‰|d„ d ‰ j                  ¬«      S )Nc                ó®   •— t        | j                  «      }‰�2t        ‰‰j                  |«      }t	        ‰«      j                  |«      gS t	        ‰«      gS r&   )r   rT   r   r'   r   rl   )rf   ÚtzÚtargetÚdtyper(   r:   s      €€€r*   rx   z!DuckDBNamespace.lit.<locals>.func†   sK   ø€ Ü! "§)¡)Ó,ˆBØÐ Ü1°%¸¿¹ÈÓK�Ü˜E›
Ÿ™¨Ó/Ð0Ð0Ü˜“J�<Ðr,   c                ó   •—  ‰| «      S r&   rd   )rf   Ú_window_inputsrx   s     €r*   Úwindow_funcz(DuckDBNamespace.lit.<locals>.window_func�   s   ø€ ñ ˜“8ˆOr,   c                ó   — dgS )NÚliteralrd   ©Ú_dfs    r*   rO   z%DuckDBNamespace.lit.<locals>.<lambda>•   s   € ¨y¨k€ r,   )r{   r|   r)   r}   )rf   r   r“   zWindowInputs[Expression]r~   r   ©r2   r'   )r(   r:   r‘   r”   rx   s   ``` @r*   r   zDuckDBNamespace.lit…   sP   û€ ÷	 ð	Øð	Ø1Ið	àõ	ð
 �z‰zØØÙ"9Ø#Ø—M‘Mð ó 
ð 	
r,   c                óJ   — dd„}| j                  |d„ d | j                  ¬«      S )Nc                ó   — t        d«      gS )NrŠ   )r   r—   s    r*   rx   z!DuckDBNamespace.len.<locals>.func›   s   € Ü�g“J�<Ðr,   c                ó   — dgS )NÚlenrd   r—   s    r*   rO   z%DuckDBNamespace.len.<locals>.<lambda>    s   € ¨u¨g€ r,   ry   )r˜   r   r~   r   r™   )r(   rx   s     r*   r�   zDuckDBNamespace.lenš   s/   € ó	 ð �z‰zØÙ"5Ø#Ø—M‘Mð	 ó 
ð 	
r,   )r)   r   r~   ÚNone)r~   r   )r~   ztype[DuckDBExpr])r~   ztype[DuckDBLazyFrame])r6   Ústrr7   r	   r~   r	   )r:   r   r~   r	   r&   )r>   r	   r:   r	   r=   zExpression | Noner~   r	   )rA   r	   r~   r	   )rX   zIterable[DuckDBLazyFrame]rY   r   r~   r   )rA   r   rg   rŸ   rw   Úboolr~   r   )rA   r   r~   r   )r:   r!   r‘   zIntoDType | Noner~   r   )r~   r   )Ú__name__Ú
__module__Ú__qualname__r   ÚDUCKDBr$   Ú__annotations__r+   Úpropertyr0   r2   r4   r8   r;   r?   rB   r`   r   rŒ   r   r�   rd   r,   r*   r#   r#   +   sæ   … ð '5×&;Ñ&;€O�^Ó;ó ð ò<ó ð<ð òó ðð òó ðó%óð (,ð	;àð;ð ð;ð %ð	;ð
 
ó;ó(ð'Ø.ð'Ø8Dð'à	ó'ð*
Ø ð
Ø-0ð
Ø@Dð
à	ó
ó&	Hó
ô*	
r,   r#   r   )/Ú
__future__r   rr   Ú	functoolsr   Ú	itertoolsr   Útypingr   r   rU   r   r	   Únarwhals._duckdb.dataframer   Únarwhals._duckdb.exprr   Únarwhals._duckdb.selectorsr   Únarwhals._duckdb.utilsr   r   r   r   r   r   r   r   Únarwhals._expression_parsingr   r   Únarwhals._sql.namespacer   Únarwhals._utilsr   Úcollections.abcr   r   Únarwhals._compliant.windowr   r   Únarwhals.typingr   r    r!   rm   r#   rd   r,   r*   ú<module>rµ      s}   ðÝ "ã Ý Ý ß %ã ß /å 6Ý ,Ý >÷	÷ 	ó 	÷õ 1Ý *áÝ(å'å7Ý'ßIÑIà
×
Ñ
€ôx
Ø� *Ð.@À*ÐLÑMõx
r,   