§
    {Øj!B  ã                  óÞ  — U d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	Z	d dl
mc mZ 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mZmZmZmZ d d	lm Z  er}d d
l!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' d dlm(Z( d dlm)Z) d dl*Z+d dl,Z-d dl.m/Z/ d dl0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dlm=Z= d dl>m?Z? d dl@mAZA d dlBmCZD d dlEmFZFmGZGmHZHmIZI dZJdeKd<    G d„ ded         e¦  «        ZLdS ) é    )ÚannotationsN)ÚBytesIO)ÚTYPE_CHECKINGÚAnyÚcast©ÚIbisExpr)Úevaluate_exprsÚlitÚnarwhals_to_native_dtypeÚnative_to_narwhals_dtype)ÚSQLLazyFrame)ÚImplementationÚValidateBackendVersionÚVersionÚgenerate_temporary_column_nameÚnot_implementedÚparse_columns_to_dropÚto_pyarrow_table)ÚInvalidOperationError)ÚIterableÚIteratorÚMappingÚSequence)ÚPath)Ú
ModuleType)Ú	TypeAlias)ÚBinary)ÚSelfÚTypeIs)ÚCompliantDataFrameAny©ÚIbisGroupBy©ÚIbisNamespace©ÚIbisInterchangeSeries)Ú_EagerAllowedImpl)Ú_LimitedContext)Ú	LazyFrame)ÚDType©Ú	DataFrame)ÚAsofJoinStrategyÚ	IntoDTypeÚJoinStrategyÚUniqueKeepStrategyz*Sequence[ir.BooleanColumn] | Sequence[str]r   ÚJoinPredicatesc                  óä  — e Zd Zej        Zddœd{d„Zed|d„¦   «         Ze	d}d„¦   «         Z
d~d„Zdd„Zdd„Zd€d„Zd�d„Zd‚d „Zdƒd"„Zd„d(„Zd…d+„Zd†d-„Zd‡d0„Zd‡d1„Zdˆd5„Zd‰dŠd8„Zd‡d9„Zd‹d<„ZdŒd>„Zed�d@„¦   «         ZedŽdB„¦   «         Zd�dD„Zd�dF„Z d‘dG„Z!d’dH„Z"d“dM„Z#d”dP„Z$ed•dR„¦   «         Z%d–dZ„Z&d—d_„Z'd˜da„Z(d�db„Z)d™dg„Z*dšdl„Z+d›do„Z,dœdp„Z-d�dq„Z.dždv„Z/dŸdw„Z0d dz„Z1 e2¦   «         Z3 e2¦   «         Z4d6S )¡ÚIbisLazyFrameF)Úvalidate_backend_versionÚdfúir.TableÚversionr   r5   ÚboolÚreturnÚNonec               ón   — || _         || _        d | _        d | _        |r|                      ¦   «          d S d S ©N)Ú_native_frameÚ_versionÚ_cached_schemaÚ_cached_columnsÚ_validate_backend_version)Úselfr6   r8   r5   s       ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/narwhals/_ibis/dataframe.pyÚ__init__zIbisLazyFrame.__init__A   sM   € ð (*ˆÔØˆŒØ7;ˆÔØ15ˆÔØ#ð 	-Ø×*Ò*Ñ,Ô,Ð,Ð,Ð,ð	-ð 	-ó    Úobjúir.Table | AnyúTypeIs[ir.Table]c                ó6   — t          | t          j        ¦  «        S r=   )Ú
isinstanceÚirÚTable)rG   s    rD   Ú
_is_nativezIbisLazyFrame._is_nativeK   s   € å˜#�rœxÑ(Ô(Ð(rF   ÚdataÚcontextr)   r   c              ó&   —  | ||j         ¬¦  «        S ©N©r8   )r?   )ÚclsrO   rP   s      rD   Úfrom_nativezIbisLazyFrame.from_nativeO   s   € àˆs�4 Ô!1Ð2Ñ2Ô2Ð2rF   ú+LazyFrame[ir.Table] | DataFrameV1[ir.Table]c                ó†   — | j         t          j        u rddlm}  || d¬¦  «        S | j                              | d¬¦  «        S )Nr   r,   Úinterchange)ÚlevelÚlazy)r?   r   ÚV1Únarwhals.stable.v1r-   Ú	lazyframe)rC   r-   s     rD   Úto_narwhalszIbisLazyFrame.to_narwhalsS   sS   € ØŒ=�GœJÐ&Ð&Ø4Ð4Ð4Ð4Ð4Ð4à�9˜T¨Ð7Ñ7Ô7Ð7ØŒ}×&Ò& t°6Ð&Ñ:Ô:Ð:rF   c                óN   — | j         t          j        urd}t          |¦  «        ‚| S )Nz;__narwhals_dataframe__ is not implemented for IbisLazyFrame)r?   r   r[   ÚAttributeError)rC   Úmsgs     rD   Ú__narwhals_dataframe__z$IbisLazyFrame.__narwhals_dataframe__Z   s)   € àŒ=¥¤
Ð*Ð*ØOˆCÝ  Ñ%Ô%Ð%ØˆrF   c                ó   — | S r=   © ©rC   s    rD   Ú__narwhals_lazyframe__z$IbisLazyFrame.__narwhals_lazyframe__a   s   € ØˆrF   r   c                ó   — t           S r=   )Úibisre   s    rD   Ú__native_namespace__z"IbisLazyFrame.__native_namespace__d   s   € ÝˆrF   r%   c                ó0   — ddl m}  || j        ¬¦  «        S )Nr   r$   rS   )Únarwhals._ibis.namespacer%   r?   )rC   r%   s     rD   Ú__narwhals_namespace__z$IbisLazyFrame.__narwhals_namespace__g   s)   € Ø:Ð:Ð:Ð:Ð:Ð:àˆ} T¤]Ð3Ñ3Ô3Ð3rF   ÚnameÚstrr'   c                ób   — ddl m}  || j                             |¦  «        | j        ¬¦  «        S )Nr   r&   rS   )Únarwhals._ibis.seriesr'   ÚnativeÚselectr?   )rC   rm   r'   s      rD   Ú
get_columnzIbisLazyFrame.get_columnl   s<   € Ø?Ð?Ð?Ð?Ð?Ð?à$Ð$ T¤[×%7Ò%7¸Ñ%=Ô%=ÀtÄ}ÐUÑUÔUÐUrF   úIterator[ir.Expr]c              #  ó<   K  — | j         D ]}| j        |         V — Œd S r=   )Úcolumnsrq   )rC   rm   s     rD   Ú_iter_columnszIbisLazyFrame._iter_columnsq   s7   è è € Ø”Lð 	$ð 	$ˆDØ”+˜dÔ#Ð#Ð#Ð#Ð#ð	$ð 	$rF   Úbackendú_EagerAllowedImpl | NoneÚkwargsr   r!   c                óÖ  — |�|t           j        u r>ddlm}  |t	          | j                             ¦   «         ¦  «        d| j        d¬¦  «        S |t           j        u r<ddl	m
}  || j                             ¦   «         t           j        d| j        d¬¦  «        S |t           j        u r0ddlm}  || j                             ¦   «         d| j        ¬¦  «        S d	|› �}t!          |¦  «        ‚)
Nr   )ÚArrowDataFrameT)r5   r8   Úvalidate_column_names)ÚPandasLikeDataFrame)Úimplementationr5   r8   r}   )ÚPolarsDataFrame)r5   r8   zUnsupported `backend` value: )r   ÚPYARROWÚnarwhals._arrow.dataframer|   r   rq   Ú
to_pyarrowr?   ÚPANDASÚnarwhals._pandas_like.dataframer~   Ú	to_pandasÚPOLARSÚnarwhals._polars.dataframer€   Ú	to_polarsÚ
ValueError)rC   rx   rz   r|   r~   r€   ra   s          rD   ÚcollectzIbisLazyFrame.collectu   s2  € ð ˆ?˜g­Ô)?Ð?Ð?Ø@Ð@Ð@Ð@Ð@Ð@à!�>Ý  ¤×!7Ò!7Ñ!9Ô!9Ñ:Ô:Ø)-ØœØ&*ð	ñ ô ð ð •nÔ+Ð+Ð+ØKÐKÐKÐKÐKÐKà&Ð&Ø”×%Ò%Ñ'Ô'Ý-Ô4Ø)-ØœØ&*ðñ ô ð ð •nÔ+Ð+Ð+ØBÐBÐBÐBÐBÐBà"�?Ø”×%Ò%Ñ'Ô'Ø)-Øœðñ ô ð ð 8¨gÐ7Ð7ˆÝ˜‰oŒoÐrF   ÚnÚintc                ó\   — |                       | j                             |¦  «        ¦  «        S r=   )Ú_with_nativerq   Úhead)rC   rŒ   s     rD   r�   zIbisLazyFrame.head™   s&   € Ø× Ò  ¤×!1Ò!1°!Ñ!4Ô!4Ñ5Ô5Ð5rF   Úcolumn_namesc                óF   — |                        | j        j        |Ž ¦  «        S r=   )r�   rq   rr   )rC   r‘   s     rD   Úsimple_selectzIbisLazyFrame.simple_selectœ   s#   € Ø× Ò Ð!3 ¤Ô!3°\Ð!BÑCÔCÐCrF   Úexprsr	   c                óŠ   — d„ t          | g|¢R Ž D ¦   «         }|                      | j                             |¦  «        ¦  «        S )Nc                óZ   — g | ](\  }}t          d |                     |¦  «        ¦  «        ‘Œ)S )z	ir.Scalar)r   rm   ©Ú.0rm   Úvals      rD   ú
<listcomp>z+IbisLazyFrame.aggregate.<locals>.<listcomp>    s@   € ð 
ð 
ð 
á��cõ �˜cŸhšh t™nœnÑ-Ô-ð
ð 
ð 
rF   )r
   r�   rq   Ú	aggregate)rC   r”   Ú	selections      rD   r›   zIbisLazyFrame.aggregateŸ   sV   € ð
ð 
å+¨DÐ9°5Ð9Ð9Ð9ð
ñ 
ô 
ˆ	ð × Ò  ¤×!6Ò!6°yÑ!AÔ!AÑBÔBÐBrF   c                óž   — d„ t          | g|¢R Ž D ¦   «         }|sd}t          |¦  «        ‚ | j        j        |Ž }|                      |¦  «        S )Nc                ó>   — g | ]\  }}|                      |¦  «        ‘ŒS rd   )rm   r—   s      rD   rš   z(IbisLazyFrame.select.<locals>.<listcomp>§   s&   € ÐRÐRÐR©	¨¨c�S—X’X˜d‘^”^ÐRÐRÐRrF   zKAt least one expression must be provided to `select` with the Ibis backend.)r
   rŠ   rq   rr   r�   )rC   r”   rœ   ra   Úts        rD   rr   zIbisLazyFrame.select¦   sc   € ØRÐRµ^ÀDÐ5QÈ5Ð5QÐ5QÐ5QÐRÑRÔRˆ	Øð 	"Ø_ˆCÝ˜S‘/”/Ð!àˆDŒKÔ 	Ð*ˆØ× Ò  Ñ#Ô#Ð#rF   rv   úSequence[str]Ústrictc               ó’   ‡— t          | ||¬¦  «        Šˆfd„| j        D ¦   «         }|                       | j        j        |Ž ¦  «        S )N©r¡   c              3  ó$   •K  — | ]
}|‰v¯|V — Œd S r=   rd   )r˜   ÚcolÚcolumns_to_drops     €rD   ú	<genexpr>z%IbisLazyFrame.drop.<locals>.<genexpr>±   s-   øè è € ÐOÐO˜S°C¸Ð4NÐ4N�SÐ4NÐ4NÐ4NÐ4NÐOÐOrF   )r   rv   r�   rq   rr   )rC   rv   r¡   rœ   r¦   s       @rD   ÚdropzIbisLazyFrame.drop¯   sS   ø€ Ý/°°gÀfÐMÑMÔMˆØOÐOÐOÐO D¤LÐOÑOÔOˆ	Ø× Ò Ð!3 ¤Ô!3°YÐ!?Ñ@Ô@Ð@rF   NÚ_c                ó,   — |�d}t          |¦  «        ‚| S )Nz,`backend` argument is not supported for Ibis)rŠ   )rC   rx   r©   ra   s       rD   rZ   zIbisLazyFrame.lazy´   s    € ð
 ÐØ@ˆCÝ˜S‘/”/Ð!ØˆrF   c                ó€   — t          t          | g|¢R Ž ¦  «        }|                       | j        j        di |¤Ž¦  «        S )Nrd   )Údictr
   r�   rq   Úmutate)rC   r”   Únew_columns_maps      rD   Úwith_columnszIbisLazyFrame.with_columns¾   sI   € Ý�~¨dÐ;°UÐ;Ð;Ð;Ñ<Ô<ˆØ× Ò Ð!3 ¤Ô!3Ð!FÐ!F°oÐ!FÐ!FÑGÔGÐGrF   ÚdtypesúMapping[str, IntoDType]c                óž   ‡ — ˆ fd„|                      ¦   «         D ¦   «         }‰                      ‰ j                             |¦  «        ¦  «        S )Nc                óB   •— i | ]\  }}|t          |‰j        ¦  «        “ŒS rd   )r   r?   ©r˜   rm   ÚdtyperC   s      €rD   ú
<dictcomp>z&IbisLazyFrame.cast.<locals>.<dictcomp>Ã   s<   ø€ ð 
ð 
ð 
á��eð Õ*¨5°$´-Ñ@Ô@ð
ð 
ð 
rF   )Úitemsr�   rq   r   )rC   r°   Únative_dtypess   `  rD   r   zIbisLazyFrame.castÂ   sY   ø€ ð
ð 
ð 
ð 
à%Ÿ|š|™~œ~ð
ñ 
ô 
ˆð × Ò  ¤×!1Ò!1°-Ñ!@Ô!@ÑAÔAÐArF   Ú	predicatec                óš   — t          d || ¦  «        d         ¦  «        }|                      | j                             |¦  «        ¦  «        S )Nzir.BooleanValuer   )r   r�   rq   Úfilter)rC   r¹   Úmasks      rD   r»   zIbisLazyFrame.filterÉ   sC   € åÐ% y y°¡¤°qÔ'9Ñ:Ô:ˆØ× Ò  ¤×!3Ò!3°DÑ!9Ô!9Ñ:Ô:Ð:rF   údict[str, DType]c                ó¢   ‡ — ‰ j         €Aˆ fd„‰ j                             ¦   «         j                             ¦   «         D ¦   «         ‰ _         ‰ j         S )Nc                óB   •— i | ]\  }}|t          |‰j        ¦  «        “ŒS rd   )r   r?   r´   s      €rD   r¶   z(IbisLazyFrame.schema.<locals>.<dictcomp>Ó   s<   ø€ ð #ð #ð #á�D˜%ð Õ.¨u°d´mÑDÔDð#ð #ð #rF   )r@   rq   ÚschemaÚfieldsr·   re   s   `rD   rÀ   zIbisLazyFrame.schemaÎ   s_   ø€ àÔÐ&ð#ð #ð #ð #à#'¤;×#5Ò#5Ñ#7Ô#7Ô#>×#DÒ#DÑ#FÔ#Fð#ñ #ô #ˆDÔð Ô"Ð"rF   ú	list[str]c                ó�   — | j         €9| j        �t          | j        ¦  «        nt          | j        j        ¦  «        | _         | j         S r=   )rA   r@   ÚlistrÀ   rq   rv   re   s    rD   rv   zIbisLazyFrame.columnsÙ   sK   € àÔÐ'ð Ô&Ð2õ �T”[Ñ!Ô!Ð!å˜$œ+Ô-Ñ.Ô.ð Ô ð
 Ô#Ð#rF   úpd.DataFramec                ó4   — | j                              ¦   «         S r=   )rq   r†   re   s    rD   r†   zIbisLazyFrame.to_pandasã   s   € àŒ{×$Ò$Ñ&Ô&Ð&rF   úpa.Tablec                ó4   — | j                              ¦   «         S r=   )rq   rƒ   re   s    rD   Úto_arrowzIbisLazyFrame.to_arrowç   s   € àŒ{×%Ò%Ñ'Ô'Ð'rF   c                ó:   — |                       | j        |¬¦  «        S rR   )Ú	__class__rq   )rC   r8   s     rD   Ú_with_versionzIbisLazyFrame._with_versionë   s   € Ø�~Š~˜dœk°7ˆ~Ñ;Ô;Ð;rF   c                ó:   — |                       || j        ¬¦  «        S rR   )rË   r?   )rC   r6   s     rD   r�   zIbisLazyFrame._with_nativeî   s   € Ø�~Š~˜b¨$¬-ˆ~Ñ8Ô8Ð8rF   Úkeysú"Sequence[str] | Sequence[IbisExpr]Údrop_null_keysr#   c               ó*   — ddl m}  || ||¬¦  «        S )Nr   r"   )rÐ   )Únarwhals._ibis.group_byr#   )rC   rÎ   rÐ   r#   s       rD   Úgroup_byzIbisLazyFrame.group_byñ   s-   € ð 	8Ð7Ð7Ð7Ð7Ð7àˆ{˜4 °nÐEÑEÔEÐErF   ÚmappingúMapping[str, str]c                ój   ‡— dˆfd„}|                       | j                             |¦  «        ¦  «        S )Nr¥   rn   r:   c                ó0   •— ‰                      | | ¦  «        S r=   )Úget)r¥   rÔ   s    €rD   Ú_renamez%IbisLazyFrame.rename.<locals>._renameù   s   ø€ Ø—;’;˜s CÑ(Ô(Ð(rF   )r¥   rn   r:   rn   )r�   rq   Úrename)rC   rÔ   rÙ   s    ` rD   rÚ   zIbisLazyFrame.renameø   sG   ø€ ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð × Ò  ¤×!3Ò!3°GÑ!<Ô!<Ñ=Ô=Ð=rF   úIterable[str]c               ól   — t          | j        ¦  «                             |¦  «        }|r
 | j        |Ž n| S )zWIbis adds a suffix to the right table col, even when it matches the left during a join.)Úsetrv   Úintersectionr¨   )r6   rv   Ú
duplicatess      rD   Ú_join_drop_duplicate_columnsz*IbisLazyFrame._join_drop_duplicate_columnsþ   s8   € õ ˜œ‘_”_×1Ò1°'Ñ:Ô:ˆ
Ø'1Ð9ˆwˆrŒw˜
Ð#Ð#°rÐ9rF   ÚotherÚhowr0   Úleft_onúSequence[str] | NoneÚright_onÚsuffixc               ó´  ‡— |dk    rdn|}d‰z   }|| k    r,|                       |j                             ¦   «         ¦  «        }|dk    r7| j                             |j        ||¬¦  «        }|                       |¦  «        S |€J ‚|€J ‚|                      |||¦  «        }	| j                             |j        |	||¬¦  «        }|dk    r}ˆfd„|D ¦   «         }
|                      ||
¦  «        }d„ |	D ¦   «         }g }|D ]<}|j        j        }|| j        vr%|j	        j        |k    r| 
                    |¦  «         Œ=|r
 |j        |Ž }|                       |¦  «        S )	NÚfullÚouterú{name}Úcross)râ   ÚrnameÚleftc              3  ó"   •K  — | ]	}|‰z   V — Œ
d S r=   rd   ©r˜   rŒ   ræ   s     €rD   r§   z%IbisLazyFrame.join.<locals>.<genexpr>  ó'   øè è € Ð8Ð8¨!˜1˜v™:Ð8Ð8Ð8Ð8Ð8Ð8rF   c              3  ó„   K  — | ];}t          |t          ¦  «        °t          d |                     ¦   «         ¦  «        V — Œ<dS )r   N)rK   rn   r   Úop)r˜   Úps     rD   r§   z%IbisLazyFrame.join.<locals>.<genexpr>  sD   è è € ÐWÐW¨QÅJÈqÕRUÑDVÔDVÐW•$�x §¢¡¤Ñ(Ô(ÐWÐWÐWÐWÐWÐWrF   )r�   rq   ÚviewÚjoinÚ_convert_predicatesrà   Úrightrm   rv   rí   Úappendr¨   )rC   rá   râ   rã   rå   ræ   Ú
how_nativerì   ÚjoinedÚ
predicatesÚright_namesÚitÚto_dropÚpredr÷   s        `         rD   rõ   zIbisLazyFrame.join  s˜  ø€ ð !$ v¢ �W�W°3ˆ
Ø˜6Ñ!ˆØ�DŠ=ˆ=à×%Ò% e¤l×&7Ò&7Ñ&9Ô&9Ñ:Ô:ˆEØ˜Ò Ð Ø”[×%Ò% e¤l¸
È%Ð%ÑPÔPˆFØ×$Ò$ VÑ,Ô,Ð,àÐ"Ð"Ð"ØÐ#Ð#Ð#Ø×-Ò-¨e°W¸hÑGÔGˆ
Ø”×!Ò! %¤,°
À
ÐRWÐ!ÑXÔXˆØ˜ÒÐØ8Ð8Ð8Ð8¨xÐ8Ñ8Ô8ˆKØ×6Ò6°v¸{ÑKÔKˆFØWÐW°*ÐWÑWÔWˆBØˆGØð *ð *�Øœ
œ�à ¤Ð,Ð,°´´À5Ò1HÐ1HØ—N’N 5Ñ)Ô)Ð)øØð /Ø$˜œ gÐ.�Ø× Ò  Ñ(Ô(Ð(rF   Úby_leftÚby_rightÚstrategyr.   c               ó   ‡— d‰z   }t           j        t           j        dœ}	g }
|	                     |¦  «        x}r# || j        |         |j        |         ¦  «        }nd}t          |¦  «        ‚|�|�|                      |||¦  «        }
| j                             |j        ||
|¬¦  «        }|                      ||‰z   g¦  «        }|�$ˆfd„|D ¦   «         }|                      ||¦  «        }|  	                    |¦  «        S )Nrê   )ÚbackwardÚforwardzIOnly `backward` and `forward` strategies are currently supported for Ibis)rì   c              3  ó"   •K  — | ]	}|‰z   V — Œ
d S r=   rd   rï   s     €rD   r§   z*IbisLazyFrame.join_asof.<locals>.<genexpr>@  rð   rF   )
ÚoperatorÚgeÚlerØ   rq   ÚNotImplementedErrorrö   Ú	asof_joinrà   r�   )rC   rá   rã   rå   r   r  r  ræ   rì   Ústrategy_oprû   rò   Úonra   rú   rü   s          `        rD   Ú	join_asofzIbisLazyFrame.join_asof(  s  ø€ ð ˜6Ñ!ˆÝ#+¤;½8¼;ÐGÐGˆØ%'ˆ
Ø—’ Ñ*Ô*Ð*ˆ2ð 	+Ø#% 2 d¤k°'Ô&:¸E¼LÈÔ<RÑ#SÔ#SˆBˆBà]ˆCÝ% cÑ*Ô*Ð*ØÐ 8Ð#7Ø×1Ò1°%¸À(ÑKÔKˆJØ”×&Ò& u¤|°R¸È5Ð&ÑQÔQˆØ×2Ò2°6¸HÀvÑ<MÐ;NÑOÔOˆØÐØ8Ð8Ð8Ð8¨xÐ8Ñ8Ô8ˆKØ×6Ò6°v¸{ÑKÔKˆFØ× Ò  Ñ(Ô(Ð(rF   r2   c                óT   ‡ ‡— ||k    r|S ˆˆ fd„t          ||d¬¦  «        D ¦   «         S )Nc                ój   •— g | ]/\  }}t          d ‰j        |         ‰j        |         k    ¦  «        ‘Œ0S )zir.BooleanColumn)r   rq   )r˜   rí   r÷   rá   rC   s      €€rD   rš   z5IbisLazyFrame._convert_predicates.<locals>.<listcomp>I  sK   ø€ ð 
ð 
ð 
á��eõ Ð# d¤k°$Ô&7¸5¼<ÈÔ;NÒ&NÑPÔPð
ð 
ð 
rF   Tr£   )Úzip)rC   rá   rã   rå   s   ``  rD   rö   z!IbisLazyFrame._convert_predicatesD  sU   øø€ ð �hÒÐØˆNð
ð 
ð 
ð 
ð 
å" 7¨H¸TÐBÑBÔBð
ñ 
ô 
ð 	
rF   c                ó   — | j         S r=   )rÀ   re   s    rD   Úcollect_schemazIbisLazyFrame.collect_schemaN  s
   € ØŒ{ÐrF   ÚsubsetÚkeepr1   Úorder_byc               óÐ  — |p| j         }|                      |¦  «        x}r|‚t          d| j         d¬¦  «        }|r|dk    rt          j        |dddœŽ}n$|rt          j        |dddœŽ}nt          d¦  «        }t          j        ||¬	¦  «        }|d
k    r-| j         	                    ¦   «          
                    |¦  «        }	n6t          j        ¦   «          
                    |¦  «        t          d¦  «        z   }	 | j        j        di ||	i¤Ž                     t          j        |         t          d¦  «        k    ¦  «                             |¦  «        }
|                      |
¦  «        S )Né   Ú
row_index_)ÚprefixÚlastT©Ú
descendingÚ
nulls_lastFé   )rÓ   r  Únonerd   )rv   Ú_check_columns_existr   r	   Ú_sortr   rh   Úwindowrq   ÚcountÚoverÚ
row_numberr­   r»   r©   r¨   r�   )rC   r  r  r  Úsubset_ÚerrorÚtmp_nameÚ	order_by_r#  Úexprr6   s              rD   ÚuniquezIbisLazyFrame.uniqueQ  sa  € ð Ð(˜DœLˆØ×-Ò-¨gÑ6Ô6Ð6ˆ5ð 	ØˆKÝ1°!°T´\È,ÐWÑWÔWˆØð 	˜ š˜Ý œ¨¸TÈdÐSÐSÐSˆIˆIØð 	Ý œ¨¸UÈuÐUÐUÐUˆIˆIå˜A™œˆIÝ” g¸	ÐBÑBÔBˆØ�6Š>ˆ>Ø”;×$Ò$Ñ&Ô&×+Ò+¨FÑ3Ô3ˆDˆDå”?Ñ$Ô$×)Ò)¨&Ñ1Ô1µC¸±F´FÑ:ˆDàˆDŒKÔÐ2Ð2 (¨DÐ!1Ð2Ð2ßŠV•D”F˜8Ô$­¨A©¬Ò.Ñ/Ô/ßŠT�(‰^Œ^ð 	ð
 × Ò  Ñ$Ô$Ð$rF   Úbyr  úbool | Sequence[bool]r  c               ón   — ddl m}  |j        |||dœŽ}|                       | j        j        |Ž ¦  «        S )Nr   r   r  )Únarwhals._ibis.exprr	   r"  r�   rq   r  )rC   r  r  r-  r	   Úcolss         rD   ÚsortzIbisLazyFrame.sortn  sM   € Ø0Ð0Ð0Ð0Ð0Ð0àˆxŒ~˜r¨jÀZÐPÐPÐPˆØ× Ò Ð!5 ¤Ô!5°tÐ!<Ñ=Ô=Ð=rF   ÚkÚreversec               óÜ   — ddl m} t          |t          ¦  «        r| nd„ |D ¦   «         } |j        ||ddœŽ}|                       | j        j        |Ž                      |¦  «        ¦  «        S )Nr   r   c                ó   — g | ]}| ‘ŒS rd   rd   )r˜   Úels     rD   rš   z'IbisLazyFrame.top_k.<locals>.<listcomp>w  s   € Ð=WÐ=WÐ=WÈÀ"¸fÐ=WÐ=WÐ=WrF   Tr  )	r0  r	   rK   r9   r"  r�   rq   r  r�   )rC   r3  r-  r4  r	   Údescr1  s          rD   Útop_kzIbisLazyFrame.top_kt  s„   € Ø0Ð0Ð0Ð0Ð0Ð0å(¨µ$Ñ7Ô7ÐW�7ˆ{ˆ{Ð=WÐ=WÈwÐ=WÑ=WÔ=WˆØˆxŒ~˜r¨d¸tÐDÐDÐDˆØ× Ò Ð!5 ¤Ô!5°tÐ!<×!AÒ!AÀ!Ñ!DÔ!DÑEÔEÐErF   c                ór   — |�|n| j         }|                      | j                             |¦  «        ¦  «        S r=   )rv   r�   rq   Ú	drop_null)rC   r  r'  s      rD   Ú
drop_nullszIbisLazyFrame.drop_nulls{  s6   € Ø"Ð.�&�&°D´LˆØ× Ò  ¤×!6Ò!6°wÑ!?Ô!?Ñ@Ô@Ð@rF   c                óN  — | j         j        }|                      ¦   «         }|D ]*}||         }||j        k    rd|› d�}t	          |¦  «        ‚Œ+t          |¦  «        dk    rd}t          |¦  «        ‚|                      | j         	                    |d         d¬¦  «        ¦  «        S )Nz-`explode` operation not supported for dtype `z`, expected List typer  z’Exploding on multiple columns is not supported with Ibis backend since we cannot guarantee that the exploded columns have matching element counts.r   T)Ú
keep_empty)
r?   r°   r  ÚListr   Úlenr
  r�   rq   Úunnest)rC   rv   r°   rÀ   r¥   rµ   ra   s          rD   ÚexplodezIbisLazyFrame.explode  sÍ   € Ø”Ô%ˆØ×$Ò$Ñ&Ô&ˆØð 	1ð 	1ˆCØ˜3”KˆEà˜œÒ#Ð#ð)ÀEð )ð )ð )ð õ ,¨CÑ0Ô0Ð0ð $õ ˆw‰<Œ<˜1ÒÐð^ð õ & cÑ*Ô*Ð*à× Ò  ¤×!3Ò!3°G¸A´JÈ4Ð!3Ñ!PÔ!PÑQÔQÐQrF   r  ÚindexÚvariable_nameÚ
value_namec                ó(  ‡	— dd l m} |€g n|Š	|€ˆ	fd„| j        D ¦   «         n|}t          t                               g ‰	¢|‘|‘¦  «        ¦  «        }| j                              |j        |Ž ||¬¦  «        }|  	                     |j
        |Ž ¦  «        S )Nr   c                ó   •— g | ]}|‰v¯|‘Œ	S rd   rd   )r˜   ÚcÚindex_s     €rD   rš   z)IbisLazyFrame.unpivot.<locals>.<listcomp>   s   ø€ Ð8Ð8Ð8�1¨°¨¨ˆQ¨¨¨rF   )Únames_toÚ	values_to)Úibis.selectorsÚ	selectorsrv   rÄ   r¬   Úfromkeysrq   Úpivot_longerr1  r�   rr   )
rC   r  rC  rD  rE  ÚsÚon_Úfinal_columnsÚ	unpivotedrI  s
            @rD   ÚunpivotzIbisLazyFrame.unpivot•  sÃ   ø€ ð 	#Ð"Ð"Ð"Ð"Ð"à&+ m  ¸ˆà<>¸JÐ8Ð8Ð8Ð8˜œÐ8Ñ8Ô8Ð8ÈBð 	õ
 �TŸ]š]Ð+O¨VÐ+O°]Ð+OÀJÐ+OÑPÔPÑQÔQˆà”K×,Ò,ØˆAŒF�CˆL =¸Jð -ñ 
ô 
ˆ	ð × Ò Ð!1 Ô!1°=Ð!AÑBÔBÐBrF   c                ó†  — |sd}t          |¦  «        ‚|rt          t          j        |dddœŽ¦  «        nd }t	          j        ¦   «                              t	          j        |¬¦  «        ¦  «                             |¦  «        t          j	         
                    ¦   «         g}|                       | j        j        |Ž ¦  «        S )Nz1Must pass `order_by` to `with_row_index` for IbisFr  )r  )Ú	TypeErrorrÄ   r	   r"  rh   r&  r%  r#  rm   rM  Úallr�   rq   rr   )rC   rm   r  ra   Ú	sort_colsÚ	to_selects         rD   Úwith_row_indexzIbisLazyFrame.with_row_index«  s¼   € Øð 	!ØEˆCÝ˜C‘.”.Ð ð ð�D•” °eÈÐNÐNÐNÑOÔOÐOàð 	õ ŒOÑÔ×"Ò"¥4¤;¸	Ð#BÑ#BÔ#BÑCÔC×HÒHÈÑNÔNÝŒN×ÒÑ Ô ð
ˆ	ð × Ò Ð!3 ¤Ô!3°YÐ!?Ñ@Ô@Ð@rF   Úfileústr | Path | BytesIOc                ó†   — t          |t          ¦  «        rd}t          |¦  «        ‚| j                             |¦  «         d S )Nz5Writing to BytesIO is not supported for Ibis backend.)rK   r   r
  rq   Ú
to_parquet)rC   r[  ra   s      rD   Úsink_parquetzIbisLazyFrame.sink_parquetº  sC   € Ý�d�GÑ$Ô$ð 	+ØIˆCÝ% cÑ*Ô*Ð*ØŒ×Ò˜tÑ$Ô$Ð$Ð$Ð$rF   )r6   r7   r8   r   r5   r9   r:   r;   )rG   rH   r:   rI   )rO   r7   rP   r)   r:   r   )r:   rV   )r:   r   )r:   r   )r:   r%   )rm   rn   r:   r'   )r:   rt   )rx   ry   rz   r   r:   r!   )rŒ   r�   r:   r   )r‘   rn   r:   r   )r”   r	   r:   r   )rv   r    r¡   r9   r:   r   r=   )rx   r;   r©   r;   r:   r   )r°   r±   r:   r   )r¹   r	   r:   r   )r:   r½   )r:   rÂ   )r:   rÅ   )r:   rÇ   )r8   r   r:   r   )r6   r7   r:   r   )rÎ   rÏ   rÐ   r9   r:   r#   )rÔ   rÕ   r:   r   )r6   r7   rv   rÛ   r:   r7   )rá   r   râ   r0   rã   rä   rå   rä   ræ   rn   r:   r   )rá   r   rã   rn   rå   rn   r   rä   r  rä   r  r.   ræ   rn   r:   r   )rá   r   rã   r    rå   r    r:   r2   )r  rä   r  r1   r  rä   r:   r   )r-  rn   r  r.  r  r9   r:   r   )r3  r�   r-  rÛ   r4  r.  r:   r   )r  rä   r:   r   )rv   r    r:   r   )
r  rä   rC  rä   rD  rn   rE  rn   r:   r   )rm   rn   r  r    r:   r   )r[  r\  r:   r;   )5Ú__name__Ú
__module__Ú__qualname__r   ÚIBISÚ_implementationrE   ÚstaticmethodrN   ÚclassmethodrU   r^   rb   rf   ri   rl   rs   rw   r‹   r�   r“   r›   rr   r¨   rZ   r¯   r   r»   ÚpropertyrÀ   rv   r†   rÉ   rÌ   r�   rÓ   rÚ   rà   rõ   r  rö   r  r,  r2  r9  r<  rB  rT  rZ  r_  r   Ú_evaluate_window_exprÚ_filterrd   rF   rD   r4   r4   ;   sí  € € € € € ð %Ô)€Oð SXð-ð -ð -ð -ð -ð -ð ð)ð )ð )ñ „\ð)ð ð3ð 3ð 3ñ „[ð3ð;ð ;ð ;ð ;ðð ð ð ðð ð ð ðð ð ð ð4ð 4ð 4ð 4ð
Vð Vð Vð Vð
$ð $ð $ð $ð"ð "ð "ð "ðH6ð 6ð 6ð 6ðDð Dð Dð DðCð Cð Cð Cð$ð $ð $ð $ðAð Að Að Að
ð ð ð ð ðHð Hð Hð HðBð Bð Bð Bð;ð ;ð ;ð ;ð
 ð#ð #ð #ñ „Xð#ð ð$ð $ð $ñ „Xð$ð'ð 'ð 'ð 'ð(ð (ð (ð (ð<ð <ð <ð <ð9ð 9ð 9ð 9ðFð Fð Fð Fð>ð >ð >ð >ð ð:ð :ð :ñ „\ð:ð
")ð ")ð ")ð ")ðH)ð )ð )ð )ð8
ð 
ð 
ð 
ðð ð ð ð%ð %ð %ð %ð:>ð >ð >ð >ðFð Fð Fð FðAð Að Að AðRð Rð Rð Rð,Cð Cð Cð Cð,Að Að Að Að%ð %ð %ð %ð ,˜OÑ-Ô-ÐØˆoÑÔ€G€G€GrF   r4   )r	   r7   rV   )MÚ
__future__r   r  Úior   Útypingr   r   r   rh   Úibis.expr.typesr+  ÚtypesrL   r0  r	   Únarwhals._ibis.utilsr
   r   r   r   Únarwhals._sql.dataframer   Únarwhals._utilsr   r   r   r   r   r   r   Únarwhals.exceptionsr   Úcollections.abcr   r   r   r   Úpathlibr   r   r   ÚpandasÚpdÚpyarrowÚpaÚibis.expr.operationsr   Útyping_extensionsr   r    Únarwhals._compliant.typingr!   rÒ   r#   rk   r%   rp   r'   Únarwhals._typingr(   r)   Únarwhals.dataframer*   Únarwhals.dtypesr+   r\   r-   ÚDataFrameV1Únarwhals.typingr.   r/   r0   r1   r2   Ú__annotations__r4   rd   rF   rD   ú<module>r‚     s&  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 6Ð 5Ð 5Ð 5Ð 5Ð 5àð MØEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEØÐÐÐÐÐØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àÐÐÐØÐÐÐØ+Ð+Ð+Ð+Ð+Ð+Ø.Ð.Ð.Ð.Ð.Ð.Ð.Ð.à@Ð@Ð@Ð@Ð@Ð@Ø3Ð3Ð3Ð3Ð3Ð3Ø6Ð6Ð6Ð6Ð6Ð6Ø;Ð;Ð;Ð;Ð;Ð;Ø2Ð2Ð2Ð2Ð2Ð2Ø/Ð/Ð/Ð/Ð/Ð/Ø,Ð,Ð,Ð,Ð,Ð,Ø%Ð%Ð%Ð%Ð%Ð%Ø;Ð;Ð;Ð;Ð;Ð;ðð ð ð ð ð ð ð ð ð ð ð ð !M€NÐLÐLÐLÑLðG ð G ð G ð G ð G ØÐVÔWØñG ô G ð G ð G ð G rF   