§
    Šhþh9  ã            	      ó¶  — 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"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+m,Z,m-Z- ej.        Z. G d„ de eedef         ¦  «        Z/ G d„ de#deef         ¦  «        Z0 G d„ de"deef         e¦  «        Z1dS )é    )Ú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)ÚSQLThenÚSQLWhen)ÚImplementation)ÚIterable)ÚDuckDBPyRelation)ÚVersion)ÚConcatMethodÚ	IntoDTypeÚNonNestedLiteralc                  óÌ   — e Zd ZU ej        Zded<   d1d„Zed2d	„¦   «         Z	ed3d„¦   «         Z
ed4d„¦   «         Zd5d„Zd6d„Z	 d7d8d„Zd9d„Zd:d"„Zd;d'„Zd<d(„Zd=d+„Zd>d/„Zd?d0„ZdS )@ÚDuckDBNamespacer   Ú_implementationÚversionr   ÚreturnÚNonec               ó   — || _         d S ©N)Ú_version)Úselfr&   s     úQ/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_duckdb/namespace.pyÚ__init__zDuckDBNamespace.__init__0   s   € ØˆŒˆˆó    r   c                ó*   — t          j        | ¦  «        S r*   )r   Úfrom_namespace©r,   s    r-   Ú	selectorszDuckDBNamespace.selectors3   s   € å&Ô5°dÑ;Ô;Ð;r/   útype[DuckDBExpr]c                ó   — t           S r*   r   r2   s    r-   Ú_exprzDuckDBNamespace._expr7   ó   € åÐr/   útype[DuckDBLazyFrame]c                ó   — t           S r*   r
   r2   s    r-   Ú
_lazyframezDuckDBNamespace._lazyframe;   s   € åÐr/   ÚnameÚstrÚargsr	   c                ó   — t          |g|¢R Ž S r*   )r   )r,   r;   r=   s      r-   Ú	_functionzDuckDBNamespace._function?   s   € Ý˜Ð$˜tÐ$Ð$Ð$Ð$r/   Úvaluer   c                ó    — t          |¦  «        S r*   )r   )r,   r@   s     r-   Ú_litzDuckDBNamespace._litB   s   € Ý�5‰zŒzÐr/   NÚ	conditionÚ	otherwiseúExpression | Nonec                ól   — |€t          ||¦  «        S t          ||¦  «                             |¦  «        S r*   )r   rD   )r,   rC   r@   rD   s       r-   Ú_whenzDuckDBNamespace._whenE   s8   € ð ÐÝ˜	 5Ñ)Ô)Ð)Ý�I˜uÑ%Ô%×/Ò/°	Ñ:Ô:Ð:r/   Úexprsc                ó   — t          |Ž S r*   )r   )r,   rH   s     r-   Ú	_coalescezDuckDBNamespace._coalesceO   s   € Ý Ð'Ð'r/   ÚitemsúIterable[DuckDBLazyFrame]Úhowr    r   c               óž  ‡— d„ |D ¦   «         }t          |¦  «        }|d         }|j        Š|dk    r4t          ˆfd„|dd …         D ¦   «         ¦  «        sd}t          |¦  «        ‚|dk    r=|j        }|dd …         D ]}t          j        d¦  «        }Œ|                     |¦  «        S t          d	„ |¦  «        }|                     |¦  «        S )
Nc                ó   — g | ]	}|j         ‘Œ
S © )Ú_native_frame)Ú.0Úitems     r-   ú
<listcomp>z*DuckDBNamespace.concat.<locals>.<listcomp>U   s   € Ð=Ð=Ð=¨t˜Ô*Ð=Ð=Ð=r/   r   Úverticalc              3  ó.   •K  — | ]}|j         ‰k    V — Œd S r*   )Úschema)rR   ÚxrW   s     €r-   ú	<genexpr>z)DuckDBNamespace.concat.<locals>.<genexpr>Y   s*   øè è € Ð(OÐ(OÀ¨¬°VÒ);Ð(OÐ(OÐ(OÐ(OÐ(OÐ(Or/   é   z&inputs should all have the same schemaÚdiagonalz]
                    from res select * union all by name from _item select *
                c                ó,   — |                       |¦  «        S r*   )Úunion)rX   Úys     r-   ú<lambda>z(DuckDBNamespace.concat.<locals>.<lambda>d   s   €  !§'¢'¨!¡*¤*€ r/   )	ÚlistrW   ÚallÚ	TypeErrorÚnativeÚduckdbÚsqlÚ_with_nativer   )	r,   rK   rM   Únative_itemsÚfirstÚmsgÚresÚ_itemrW   s	           @r-   ÚconcatzDuckDBNamespace.concatR   sø   ø€ ð >Ð=°uÐ=Ñ=Ô=ˆÝ�U‘”ˆØ�a”ˆØ”ˆØ�*ÒÐ¥SÐ(OÐ(OÐ(OÐ(OÀUÈ1È2È2ÄYÐ(OÑ(OÔ(OÑ%OÔ%OÐØ:ˆCÝ˜C‘.”.Ð Ø�*ÒÐØ”,ˆCØ% a b bÔ)ð ð �å”jð "ñ ô ��ð ×%Ò% cÑ*Ô*Ð*ÝÐ,Ð,¨lÑ;Ô;ˆØ×!Ò! #Ñ&Ô&Ð&r/   r   Ú	separatorÚignore_nullsÚboolc               óp   ‡‡‡— dˆˆˆfd„}|                       |t          ‰Ž t          ‰Ž | j        ¬¦  «        S )NÚdfr   r'   úlist[Expression]c                ó  •‡ — 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  — | ]} |‰¦  «        V — Œd S r*   rP   )rR   Úerq   s     €r-   rY   z;DuckDBNamespace.concat_str.<locals>.func.<locals>.<genexpr>k   s+   øè è € Ð<RÐ<RÀq¸Q¸Q¸r¹U¼UÐ<RÐ<RÐ<RÐ<RÐ<RÐ<Rr/   rm   c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r*   )Úisnull)rR   Úss     r-   rY   z;DuckDBNamespace.concat_str.<locals>.func.<locals>.<genexpr>o   s*   è è € Ð-GÐ-G¸Q¨a¯hªh©j¬jÐ-GÐ-GÐ-GÐ-GÐ-GÐ-Gr/   c              3  óJ   K  — | ]}|                      t          ¦  «        V — Œd S r*   )ÚcastÚVARCHAR)rR   Úcs     r-   rY   z;DuckDBNamespace.concat_str.<locals>.func.<locals>.<genexpr>p   s,   è è € Ð6Ð6¨A˜Ÿš�w™œÐ6Ð6Ð6Ð6Ð6Ð6r/   )r   Úfrom_iterabler   Útupler   ÚoperatorÚor_r   )rq   ÚcolsÚ	null_maskÚcols_strrH   rn   rm   s   `   €€€r-   Úfuncz(DuckDBNamespace.concat_str.<locals>.funcj   s¨   øø€ Ý).Ô)<Ð<RÐ<RÐ<RÐ<RÈEÐ<RÑ<RÔ<RÑ)RÔ)RˆDØð @Ý" DÐ>°IÐ>Ð>Ð?Ð?Ý˜‘;”;ˆDÝ�xœ|Ð-GÐ-GÀ$Ð-GÑ-GÔ-GÑHÔHˆIØ6Ð6°Ð6Ñ6Ô6ˆHÝ˜)˜¥Z°Ð%OÀYÐ%OÐ%OÑPÔPÐQÐQr/   ©ÚcallÚevaluate_output_namesÚalias_output_namesr&   ©rq   r   r'   rr   )r6   r   r   r+   )r,   rm   rn   rH   r„   s    ``` r-   r   zDuckDBNamespace.concat_strg   sj   øøø€ ð	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð �zŠzØÝ"?ÀÐ"GÝ9¸5ÐAØ”Mð	 ñ 
ô 
ð 	
r/   c                ó0   — dd„} | j         j        |g|¢R Ž S )Nr�   úIterable[Expression]r'   r	   c                óº   — t          | ¦  «        } t          t          j        d„ | D ¦   «         ¦  «        }t          t          j        d„ | D ¦   «         ¦  «        }||z  S )Nc              3  óP   K  — | ]!}t          |t          d ¦  «        ¦  «        V — Œ"dS )r   N)r   r   ©rR   Úcols     r-   rY   z@DuckDBNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>}   s3   è è € Ð)XÐ)XÈCÕ*:¸3ÅÀAÁÄÑ*GÔ*GÐ)XÐ)XÐ)XÐ)XÐ)XÐ)Xr/   c              3  óx   K  — | ]5}|                      ¦   «                              t          j        ¦  «        V — Œ6d S r*   )Ú	isnotnullrz   r   ÚBIGINTrŽ   s     r-   rY   z@DuckDBNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>   s;   è è € ÐZÐZÈc˜sŸ}š}™œ×3Ò3µMÔ4HÑIÔIÐZÐZÐZÐZÐZÐZr/   )r~   r   r   Úadd)r�   ÚtotalÚcounts      r-   r„   z-DuckDBNamespace.mean_horizontal.<locals>.func{   s`   € Ý˜‘;”;ˆDÝ�8œ<Ð)XÐ)XÐSWÐ)XÑ)XÔ)XÑYÔYˆEÝÝ”ÐZÐZÐUYÐZÑZÔZñô ˆEð ˜5‘=Ð r/   )r�   r‹   r'   r	   )r6   Ú_from_elementwise_horizontal_op)r,   rH   r„   s      r-   Úmean_horizontalzDuckDBNamespace.mean_horizontalz   s5   € ð	!ð 	!ð 	!ð 	!ð :ˆtŒzÔ9¸$ÐGÀÐGÐGÐGÐGr/   Ú	predicateÚ
DuckDBWhenc                ó:   — t                                || ¬¦  «        S )N)Úcontext)r™   Ú	from_expr)r,   r˜   s     r-   r   zDuckDBNamespace.when…   s   € Ý×#Ò# I°tÐ#Ñ<Ô<Ð<r/   r"   ÚdtypeúIntoDType | Nonec                óV   ‡ ‡‡— dˆˆ ˆfd„}‰                       |d„ d ‰ j        ¬¦  «        S )	Nrq   r   r'   rr   c                óÂ   •— t          | j        ¦  «        }‰�9t          ‰‰j        |¦  «        }t	          ‰¦  «                             |¦  «        gS t	          ‰¦  «        gS r*   )r   rc   r   r+   r   rz   )rq   ÚtzÚtargetr�   r,   r@   s      €€€r-   r„   z!DuckDBNamespace.lit.<locals>.func‰   sT   ø€ Ý! "¤)Ñ,Ô,ˆBØÐ Ý1°%¸¼ÈÑKÔK�Ý˜E™
œ
Ÿš¨Ñ/Ô/Ð0Ð0Ý˜‘J”J�<Ðr/   c                ó   — dgS )NÚliteralrP   ©Ú_dfs    r-   r_   z%DuckDBNamespace.lit.<locals>.<lambda>’   s   € ¨y¨k€ r/   )r‡   rˆ   r&   r‰   ©r6   r+   )r,   r@   r�   r„   s   ``` r-   r   zDuckDBNamespace.litˆ   s[   øøø€ ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð �zŠzØØ"9Ð"9Ø#Ø”Mð	 ñ 
ô 
ð 	
r/   c                óH   — dd„}|                       |d„ d | j        ¬¦  «        S )	Nr¦   r   r'   rr   c                ó"   — t          d¦  «        gS )Nr•   )r   r¥   s    r-   r„   z!DuckDBNamespace.len.<locals>.func˜   s   € Ý�g‘J”J�<Ðr/   c                ó   — dgS )NÚlenrP   r¥   s    r-   r_   z%DuckDBNamespace.len.<locals>.<lambda>�   s   € ¨u¨g€ r/   r…   )r¦   r   r'   rr   r§   )r,   r„   s     r-   r«   zDuckDBNamespace.len—   sD   € ð	 ð 	 ð 	 ð 	 ð �zŠzØØ"5Ð"5Ø#Ø”Mð	 ñ 
ô 
ð 	
r/   )r&   r   r'   r(   )r'   r   )r'   r4   )r'   r8   )r;   r<   r=   r	   r'   r	   )r@   r   r'   r	   r*   )rC   r	   r@   r	   rD   rE   r'   r	   )rH   r	   r'   r	   )rK   rL   rM   r    r'   r   )rH   r   rm   r<   rn   ro   r'   r   )rH   r   r'   r   )r˜   r   r'   r™   )r@   r"   r�   rž   r'   r   )r'   r   )Ú__name__Ú
__module__Ú__qualname__r   ÚDUCKDBr%   Ú__annotations__r.   Úpropertyr3   r6   r:   r?   rB   rG   rJ   rl   r   r—   r   r   r«   rP   r/   r-   r$   r$   +   sv  € € € € € € ð '5Ô&;€OÐ;Ð;Ð;Ñ;ð ð  ð  ð  ð ð<ð <ð <ñ „Xð<ð ðð ð ñ „Xðð ðð ð ñ „Xðð%ð %ð %ð %ðð ð ð ð (,ð	;ð ;ð ;ð ;ð ;ð(ð (ð (ð (ð'ð 'ð 'ð 'ð*
ð 
ð 
ð 
ð&	Hð 	Hð 	Hð 	Hð=ð =ð =ð =ð
ð 
ð 
ð 
ð	
ð 	
ð 	
ð 	
ð 	
ð 	
r/   r$   r   c                  ó&   — e Zd Zedd„¦   «         ZdS )r™   r'   útype[DuckDBThen]c                ó   — t           S r*   )Ú
DuckDBThenr2   s    r-   Ú_thenzDuckDBWhen._then¤   r7   r/   N)r'   r³   )r¬   r­   r®   r±   r¶   rP   r/   r-   r™   r™   £   s2   € € € € € Øðð ð ñ „Xðð ð r/   r™   r   c                  ó   — e Zd ZdS )rµ   N)r¬   r­   r®   rP   r/   r-   rµ   rµ   ©   s   € € € € € € € r/   rµ   )2Ú
__future__r   r   Ú	functoolsr   Ú	itertoolsr   Útypingr   r   rd   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._sql.when_thenr   r   Únarwhals._utilsr   Úcollections.abcr   r   r   Únarwhals.typingr    r!   r"   r{   r$   r™   rµ   rP   r/   r-   ú<module>rÆ      sŽ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø >Ð >Ð >Ð >Ð >Ð >ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *àð JØ(Ð(Ð(Ð(Ð(Ð(à'Ð'Ð'Ð'Ð'Ð'à'Ð'Ð'Ð'Ð'Ð'ØIÐIÐIÐIÐIÐIÐIÐIÐIÐIà
Ô
€ðu
ð u
ð u
ð u
ð u
Ø� *Ð.@À*ÐLÔMñu
ô u
ð u
ðpð ð ð ð �Ð*¨J¸
ÐBÔCñ ô ð ð VÐ UÐ UÐ UÐ U�Ð*¨J¸
ÐBÔCÀZÑ UÔ UÐ UÐ UÐ Ur/   