§
    {Øj§2  ã                  óÀ  — U d Z ddlmZ ddl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 ddlmZmZmZmZ erPd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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+m,Z, ddl-m.Z. ddl/m0Z0 g d¢Z1 edd¬¦  «        Z2 edd¬¦  «        Z3 edd¬¦  «        Z4 edd¬¦  «        Z5 edd¬¦  «        Z6 edd¬¦  «        Z7dZ8d e9d!<    G d"„ d#ee5e2f         ¦  «        Z: G d$„ d%e:e6e3f         ee6e3f         ¦  «        Z; G d&„ d'e:e7e4f         ee7e4f         ¦  «        Z< G d(„ d)ee5e2f         ee5e2f         ¦  «        Z=d5d.„Z>d6d4„Z?dS )7z=Almost entirely complete, generic `selectors` implementation.é    )ÚannotationsN)Úpartial)ÚTYPE_CHECKINGÚAnyÚClassVarÚLiteralÚProtocolÚTypeVarÚoverload)ÚCompliantExpr)Ú_parse_time_unit_and_time_zoneÚ%dtype_matches_time_unit_and_time_zoneÚget_column_namesÚis_compliant_dataframe)Ú
CollectionÚIterableÚIteratorÚSequence)Útimezone)Ú	TypeAlias)ÚSelfÚTypeIs)Ú
NativeExpr)ÚCompliantDataFrameAnyÚCompliantExprAnyÚCompliantFrameAnyÚCompliantLazyFrameAnyÚCompliantSeriesAnyÚCompliantSeriesOrNativeExprAnyÚ	EvalNamesÚ
EvalSeries)ÚImplementationÚVersionÚ_LimitedContext)ÚDType)ÚTimeUnit)ÚCompliantSelectorÚCompliantSelectorNamespaceÚEagerSelectorNamespaceÚLazySelectorNamespaceÚis_compliant_selectorÚSeriesOrExprTr   )ÚboundÚSeriesTr   ÚExprTr   ÚFrameTr   Ú
DataFrameTr   Ú
LazyFrameTr   zOCompliantSelector[FrameT, SeriesOrExprT] | CompliantExpr[FrameT, SeriesOrExprT]r   ÚSelectorOrExprc                  óÄ   — e Zd ZU ded<   ded<   ed.d„¦   «         Zed/d„¦   «         Zd0d„Zd1d„Z	d2d„Z
d3d„Zd4d„Zd5d„Zd6d!„Zd7d"„Zd7d#„Zd7d$„Zd7d%„Zd7d&„Zd7d'„Zd8d,„Zd-S )9r(   r"   Ú_implementationr#   Ú_versionÚreturnú.type[CompliantSelector[FrameT, SeriesOrExprT]]c                ó   — d S ©N© ©Úselfs    ú’/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/narwhals/_compliant/selectors.pyÚ	_selectorz$CompliantSelectorNamespace._selector@   s   € ØKNÈ3ó    Úcontextr$   r   c               ó`   — |                       | ¦  «        }|j        |_        |j        |_        |S r:   )Ú__new__r5   r6   )ÚclsrA   Úobjs      r>   Úfrom_namespacez)CompliantSelectorNamespace.from_namespaceB   s-   € à�kŠk˜#ÑÔˆØ%Ô5ˆÔØÔ'ˆŒØˆ
r@   Údfr0   úIterator[SeriesOrExprT]c               ó   — d S r:   r;   ©r=   rG   s     r>   Ú_iter_columnsz(CompliantSelectorNamespace._iter_columnsI   ó   € € € r@   úIterator[tuple[str, DType]]c               ó   — d S r:   r;   rJ   s     r>   Ú_iter_schemaz'CompliantSelectorNamespace._iter_schemaJ   rL   r@   ú%Iterator[tuple[SeriesOrExprT, DType]]c               ó   — d S r:   r;   rJ   s     r>   Ú_iter_columns_dtypesz/CompliantSelectorNamespace._iter_columns_dtypesK   s   € à03°r@   ú#Iterator[tuple[SeriesOrExprT, str]]c             #  ój   K  — t          |                      |¦  «        |j        d¬¦  «        E d {V —† d S ©NT©Ústrict)ÚziprK   ÚcolumnsrJ   s     r>   Ú_iter_columns_namesz.CompliantSelectorNamespace._iter_columns_namesN   sC   è è € Ý�t×)Ò)¨"Ñ-Ô-¨r¬zÀ$ÐGÑGÔGÐGÐGÐGÐGÐGÐGÐGÐGÐGr@   r=   ú1CompliantSelectorNamespace[FrameT, SeriesOrExprT]Údtypeútype[DType]ú(CompliantSelector[FrameT, SeriesOrExprT]c               ó\   ‡ ‡— d	ˆˆ fd„}d
ˆˆ fd„}‰ j                              ||‰ ¬¦  «        S )NrG   r0   r7   úSequence[SeriesOrExprT]c                óF   •— ˆfd„‰                      | ¦  «        D ¦   «         S )Nc                ó:   •— g | ]\  }}t          |‰¦  «        ¯|‘ŒS r;   ©Ú
isinstance)Ú.0ÚserÚtpr\   s      €r>   ú
<listcomp>zHCompliantSelectorNamespace._is_dtype.<locals>.series.<locals>.<listcomp>U   s=   ø€ ð ð ð Ù˜˜RÅJÈrÐSXÑDYÔDYðØðð ð r@   ©rR   ©rG   r\   r=   s    €€r>   Úseriesz4CompliantSelectorNamespace._is_dtype.<locals>.seriesT   s<   ø€ ðð ð ð Ø#'×#<Ò#<¸RÑ#@Ô#@ðñ ô ð r@   úSequence[str]c                óF   •— ˆfd„‰                      | ¦  «        D ¦   «         S )Nc                ó:   •— g | ]\  }}t          |‰¦  «        ¯|‘ŒS r;   rc   )re   Únamerg   r\   s      €r>   rh   zGCompliantSelectorNamespace._is_dtype.<locals>.names.<locals>.<listcomp>Z   s-   ø€ ÐXÐXÐX™X˜T 2Å*ÈRÐQVÑBWÔBWÐX�DÐXÐXÐXr@   ©rO   rj   s    €€r>   Únamesz3CompliantSelectorNamespace._is_dtype.<locals>.namesY   s+   ø€ ØXÐXÐXÐX¨×):Ò):¸2Ñ)>Ô)>ÐXÑXÔXÐXr@   ©rA   ©rG   r0   r7   r`   ©rG   r0   r7   rl   ©r?   Úfrom_callables)r=   r\   rk   rq   s   ``  r>   Ú	_is_dtypez$CompliantSelectorNamespace._is_dtypeQ   sp   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð
	Yð 	Yð 	Yð 	Yð 	Yð 	Yð 	Yð Œ~×,Ò,¨V°UÀDÐ,ÑIÔIÐIr@   ÚdtypesúCollection[DType | type[DType]]c                ó\   ‡ ‡— d	ˆˆ fd„}d
ˆˆ fd„}‰ j                              ||‰ ¬¦  «        S )NrG   r0   r7   r`   c                óF   •— ˆfd„‰                      | ¦  «        D ¦   «         S )Nc                ó"   •— g | ]\  }}|‰v ¯	|‘ŒS r;   r;   )re   rf   rg   rx   s      €r>   rh   zGCompliantSelectorNamespace.by_dtype.<locals>.series.<locals>.<listcomp>c   s"   ø€ ÐUÐUÐU™G˜C ÈÈfÈÈ�CÈÈÈr@   ri   ©rG   rx   r=   s    €€r>   rk   z3CompliantSelectorNamespace.by_dtype.<locals>.seriesb   s+   ø€ ØUÐUÐUÐU t×'@Ò'@ÀÑ'DÔ'DÐUÑUÔUÐUr@   rl   c                óF   •— ˆfd„‰                      | ¦  «        D ¦   «         S )Nc                ó"   •— g | ]\  }}|‰v ¯	|‘ŒS r;   r;   )re   ro   rg   rx   s      €r>   rh   zFCompliantSelectorNamespace.by_dtype.<locals>.names.<locals>.<listcomp>f   s"   ø€ ÐOÐOÐO™X˜T 2À"ÈÀ,À,�DÀ,À,À,r@   rp   r}   s    €€r>   rq   z2CompliantSelectorNamespace.by_dtype.<locals>.namese   s+   ø€ ØOÐOÐOÐO¨×):Ò):¸2Ñ)>Ô)>ÐOÑOÔOÐOr@   rr   rs   rt   ru   )r=   rx   rk   rq   s   ``  r>   Úby_dtypez#CompliantSelectorNamespace.by_dtype_   sw   øø€ ð	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vð	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð Œ~×,Ò,¨V°UÀDÐ,ÑIÔIÐIr@   ÚpatternÚstrc                ó‚   ‡ ‡— t          j        |¦  «        Šd	ˆˆ fd„}d
ˆfd„}‰ j                             ||‰ ¬¦  «        S )NrG   r0   r7   r`   c                óò   •‡ — t          ‰ ¦  «        rF‰j                             ¦   «         s-‰j                             ¦   «         sˆ ˆfd„‰ j        D ¦   «         S ˆfd„‰                     ‰ ¦  «        D ¦   «         S )Nc                ód   •— g | ],}‰                      |¦  «        ¯‰                     |¦  «        ‘Œ-S r;   )ÚsearchÚ
get_column)re   ÚcolrG   Úps     €€r>   rh   zFCompliantSelectorNamespace.matches.<locals>.series.<locals>.<listcomp>s   s4   ø€ ÐRÐRÐR¨sÀAÇHÂHÈSÁMÄMÐR˜Ÿš cÑ*Ô*ÐRÐRÐRr@   c                óD   •— g | ]\  }}‰                      |¦  «        ¯|‘ŒS r;   ©r†   )re   rf   ro   r‰   s      €r>   rh   zFCompliantSelectorNamespace.matches.<locals>.series.<locals>.<listcomp>u   s-   ø€ ÐXÐXÐX™I˜C ÈÏÊÐRVÉÌÐX�CÐXÐXÐXr@   )r   r5   Ú	is_duckdbÚis_ibisrY   rZ   )rG   r‰   r=   s   `€€r>   rk   z2CompliantSelectorNamespace.matches.<locals>.seriesm   s‘   øø€ å& rÑ*Ô*ðSàÔ,×6Ò6Ñ8Ô8ðSð Ô,×4Ò4Ñ6Ô6ðSð
 SÐRÐRÐRÐR°b´jÐRÑRÔRÐRàXÐXÐXÐX¨×)AÒ)AÀ"Ñ)EÔ)EÐXÑXÔXÐXr@   rl   c                ó*   •— ˆfd„| j         D ¦   «         S )Nc                ó>   •— g | ]}‰                      |¦  «        ¯|‘ŒS r;   r‹   )re   rˆ   r‰   s     €r>   rh   zECompliantSelectorNamespace.matches.<locals>.names.<locals>.<listcomp>x   s(   ø€ Ð?Ð?Ð?˜C°·²¸#±´Ð?�CÐ?Ð?Ð?r@   )rY   )rG   r‰   s    €r>   rq   z1CompliantSelectorNamespace.matches.<locals>.namesw   s   ø€ Ø?Ð?Ð?Ð? 2¤:Ð?Ñ?Ô?Ð?r@   rr   rs   rt   )ÚreÚcompiler?   rv   )r=   r�   rk   rq   r‰   s   `   @r>   Úmatchesz"CompliantSelectorNamespace.matchesj   s€   øø€ ÝŒJ�wÑÔˆð	Yð 	Yð 	Yð 	Yð 	Yð 	Yð 	Yð	@ð 	@ð 	@ð 	@ð 	@ð 	@ð Œ~×,Ò,¨V°UÀDÐ,ÑIÔIÐIr@   c                óV   ‡ — d	ˆ fd„}d
ˆ fd„}‰ j                              ||‰ ¬¦  «        S )NrG   r0   r7   r`   c                óB   •— d„ ‰                      | ¦  «        D ¦   «         S )Nc                ó@   — g | ]\  }}|                      ¦   «         ¯|‘ŒS r;   ©Ú
is_numeric)re   rf   rg   s      r>   rh   zFCompliantSelectorNamespace.numeric.<locals>.series.<locals>.<listcomp>~   s)   € ÐXÐXÐX™G˜C ÈÏÊÉÌÐX�CÐXÐXÐXr@   ri   ©rG   r=   s    €r>   rk   z2CompliantSelectorNamespace.numeric.<locals>.series}   s%   ø€ ØXÐX t×'@Ò'@ÀÑ'DÔ'DÐXÑXÔXÐXr@   rl   c                óB   •— d„ ‰                      | ¦  «        D ¦   «         S )Nc                ó@   — g | ]\  }}|                      ¦   «         ¯|‘ŒS r;   r–   )re   ro   rg   s      r>   rh   zECompliantSelectorNamespace.numeric.<locals>.names.<locals>.<listcomp>�   s)   € ÐRÐRÐR™X˜T 2À"Ç-Â-Á/Ä/ÐR�DÐRÐRÐRr@   rp   r˜   s    €r>   rq   z1CompliantSelectorNamespace.numeric.<locals>.names€   s%   ø€ ØRÐR¨×):Ò):¸2Ñ)>Ô)>ÐRÑRÔRÐRr@   rr   rs   rt   ru   )r=   rk   rq   s   `  r>   Únumericz"CompliantSelectorNamespace.numeric|   sj   ø€ ð	Yð 	Yð 	Yð 	Yð 	Yð 	Yð	Sð 	Sð 	Sð 	Sð 	Sð 	Sð Œ~×,Ò,¨V°UÀDÐ,ÑIÔIÐIr@   c                óJ   — |                       | j        j        j        ¦  «        S r:   )rw   r6   rx   ÚCategoricalr<   s    r>   Úcategoricalz&CompliantSelectorNamespace.categorical…   s   € Ø�~Š~˜dœmÔ2Ô>Ñ?Ô?Ð?r@   c                óJ   — |                       | j        j        j        ¦  «        S r:   )rw   r6   rx   ÚEnumr<   s    r>   ÚenumzCompliantSelectorNamespace.enumˆ   s   € Ø�~Š~˜dœmÔ2Ô7Ñ8Ô8Ð8r@   c                óJ   — |                       | j        j        j        ¦  «        S r:   )rw   r6   rx   ÚStringr<   s    r>   Ústringz!CompliantSelectorNamespace.string‹   s   € Ø�~Š~˜dœmÔ2Ô9Ñ:Ô:Ð:r@   c                óJ   — |                       | j        j        j        ¦  «        S r:   )rw   r6   rx   ÚBooleanr<   s    r>   Úbooleanz"CompliantSelectorNamespace.booleanŽ   s   € Ø�~Š~˜dœmÔ2Ô:Ñ;Ô;Ð;r@   c                óT   ‡ — dˆ fd„}‰ j                              |t          ‰ ¬¦  «        S )NrG   r0   r7   r`   c                óH   •— t          ‰                     | ¦  «        ¦  «        S r:   )ÚlistrK   r˜   s    €r>   rk   z.CompliantSelectorNamespace.all.<locals>.series’   s   ø€ Ý˜×*Ò*¨2Ñ.Ô.Ñ/Ô/Ð/r@   rr   rs   )r?   rv   r   )r=   rk   s   ` r>   ÚallzCompliantSelectorNamespace.all‘   sA   ø€ ð	0ð 	0ð 	0ð 	0ð 	0ð 	0ð Œ~×,Ò,¨VÕ5EÈtÐ,ÑTÔTÐTr@   Ú	time_unitú$TimeUnit | Iterable[TimeUnit] | NoneÚ	time_zoneú7str | timezone | Iterable[str | timezone | None] | Nonec                óÆ   ‡ ‡— t          ||¦  «        \  }}t          t          ‰ j        j        ||¬¦  «        Šd
ˆˆ fd„}dˆˆ fd„}‰ j                             ||‰ ¬	¦  «        S )N)rx   Ú
time_unitsÚ
time_zonesrG   r0   r7   r`   c                óF   •— ˆfd„‰                      | ¦  «        D ¦   «         S )Nc                ó0   •— g | ]\  }} ‰|¦  «        ¯|‘ŒS r;   r;   )re   rf   rg   r’   s      €r>   rh   zGCompliantSelectorNamespace.datetime.<locals>.series.<locals>.<listcomp>¥   s+   ø€ ÐTÐTÐT™G˜C ÈÈÐPRÉÌÐT�CÐTÐTÐTr@   ri   ©rG   r’   r=   s    €€r>   rk   z3CompliantSelectorNamespace.datetime.<locals>.series¤   s+   ø€ ØTÐTÐTÐT t×'@Ò'@ÀÑ'DÔ'DÐTÑTÔTÐTr@   rl   c                óF   •— ˆfd„‰                      | ¦  «        D ¦   «         S )Nc                ó0   •— g | ]\  }} ‰|¦  «        ¯|‘ŒS r;   r;   )re   ro   rg   r’   s      €r>   rh   zFCompliantSelectorNamespace.datetime.<locals>.names.<locals>.<listcomp>¨   s*   ø€ ÐNÐNÐN™X˜T 2À'À'È"Á+Ä+ÐN�DÐNÐNÐNr@   rp   rµ   s    €€r>   rq   z2CompliantSelectorNamespace.datetime.<locals>.names§   s+   ø€ ØNÐNÐNÐN¨×):Ò):¸2Ñ)>Ô)>ÐNÑNÔNÐNr@   rr   rs   rt   )r   r   r   r6   rx   r?   rv   )r=   r¬   r®   r±   r²   rk   rq   r’   s   `      @r>   Údatetimez#CompliantSelectorNamespace.datetime—   s³   øø€ õ
 "@À	È9Ñ!UÔ!UÑˆ
�JÝÝ1Ø”=Ô'Ø!Ø!ð	
ñ 
ô 
ˆð	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð Œ~×,Ò,¨V°UÀDÐ,ÑIÔIÐIr@   N)r7   r8   )rA   r$   r7   r   )rG   r0   r7   rH   )rG   r0   r7   rM   )rG   r0   r7   rP   )rG   r0   r7   rS   )r=   r[   r\   r]   r7   r^   )rx   ry   r7   r^   )r�   r‚   r7   r^   ©r7   r^   )r¬   r­   r®   r¯   r7   r^   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__Úpropertyr?   ÚclassmethodrF   rK   rO   rR   rZ   rw   r€   r’   r›   rž   r¡   r¤   r§   r«   r¸   r;   r@   r>   r(   r(   ;   s�  € € € € € € à#Ð#Ð#Ñ#ØÐÐÑàØNÐNÐNñ „XØNØðð ð ñ „[ðð KÐJÐJÐJØMÐMÐMÐMð4ð 4ð 4ð 4ðHð Hð Hð HðJð Jð Jð Jð	Jð 	Jð 	Jð 	JðJð Jð Jð Jð$Jð Jð Jð Jð@ð @ð @ð @ð9ð 9ð 9ð 9ð;ð ;ð ;ð ;ð<ð <ð <ð <ðUð Uð Uð UðJð Jð Jð Jð Jð Jr@   r(   c                  ó&   — e Zd Zdd„Zdd„Zdd	„Zd
S )r)   rG   r1   r7   rM   c             #  óH   K  — |j                              ¦   «         E d {V —† d S r:   ©ÚschemaÚitemsrJ   s     r>   rO   z#EagerSelectorNamespace._iter_schema°   ó0   è è € Ø”9—?’?Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$r@   úIterator[SeriesT]c             #  ó>   K  — |                      ¦   «         E d {V —† d S r:   )Úiter_columnsrJ   s     r>   rK   z$EagerSelectorNamespace._iter_columns³   s.   è è € Ø—?’?Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$r@   úIterator[tuple[SeriesT, DType]]c             #  óP   K  — |                       |¦  «        D ]}||j        fV — Œd S r:   )rK   r\   )r=   rG   rf   s      r>   rR   z+EagerSelectorNamespace._iter_columns_dtypes¶   sB   è è € Ø×%Ò% bÑ)Ô)ð 	!ð 	!ˆCØ�s”y�.Ð Ð Ð Ð ð	!ð 	!r@   N)rG   r1   r7   rM   )rG   r1   r7   rÆ   )rG   r1   r7   rÉ   ©rº   r»   r¼   rO   rK   rR   r;   r@   r>   r)   r)   ­   sP   € € € € € ð%ð %ð %ð %ð%ð %ð %ð %ð!ð !ð !ð !ð !ð !r@   r)   c                  ó&   — e Zd Zdd„Zdd„Zdd	„Zd
S )r*   rG   r2   r7   rM   c              #  óH   K  — |j                              ¦   «         E d {V —† d S r:   rÂ   rJ   s     r>   rO   z"LazySelectorNamespace._iter_schema¾   rÅ   r@   úIterator[ExprT]c              #  ó>   K  — |                      ¦   «         E d {V —† d S r:   )rK   rJ   s     r>   rK   z#LazySelectorNamespace._iter_columnsÁ   s0   è è € Ø×#Ò#Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%r@   úIterator[tuple[ExprT, DType]]c             #  óŽ   K  — t          |                      |¦  «        |j                             ¦   «         d¬¦  «        E d {V —† d S rU   )rX   rK   rÃ   ÚvaluesrJ   s     r>   rR   z*LazySelectorNamespace._iter_columns_dtypesÄ   sO   è è € Ý�t×)Ò)¨"Ñ-Ô-¨r¬y×/?Ò/?Ñ/AÔ/AÈ$ÐOÑOÔOÐOÐOÐOÐOÐOÐOÐOÐOÐOr@   N)rG   r2   r7   rM   )rG   r2   r7   rÎ   )rG   r2   r7   rÐ   rË   r;   r@   r>   r*   r*   »   sV   € € € € € ð%ð %ð %ð %ð&ð &ð &ð &ðPð Pð Pð Pð Pð Pr@   r*   c                  ó6  — e Zd ZU ded<   ded<   ded<   ded<   d	Zd
ed<   ed)d„¦   «         Zed*d„¦   «         Zd+d„Z	d,d„Z
ed-d„¦   «         Zed.d„¦   «         Zd/d„Zed-d „¦   «         Zed.d!„¦   «         Zd/d"„Zed-d#„¦   «         Zed.d$„¦   «         Zd/d%„Zd0d'„Zd(S )1r'   ú!EvalSeries[FrameT, SeriesOrExprT]Ú_callr‚   Ú_function_namer"   r5   r#   r6   TzClassVar[Literal[True]]Ú_is_compliant_selectorÚcallÚevaluate_output_namesúEvalNames[FrameT]rA   r$   r7   r   c               óŠ   — |                       | ¦  «        }||_        ||_        d |_        |j        |_        |j        |_        |S r:   )rC   rÕ   Ú_evaluate_output_namesÚ_alias_output_namesr5   r6   )rD   rØ   rÙ   rA   rE   s        r>   rv   z CompliantSelector.from_callablesÖ   sF   € ð �kŠk˜#ÑÔˆØˆŒ	Ø%:ˆÔ"Ø"&ˆÔØ%Ô5ˆÔØÔ'ˆŒØˆ
r@   r[   c                ó4   — |                       ¦   «         j        S r:   )Ú__narwhals_namespace__Ú	selectorsr<   s    r>   rà   zCompliantSelector.selectorsæ   s   € à×*Ò*Ñ,Ô,Ô6Ð6r@   ú$CompliantExpr[FrameT, SeriesOrExprT]c                ó   — d S r:   r;   r<   s    r>   Ú_to_exprzCompliantSelector._to_exprê   rL   r@   Úotherú+Self | CompliantExpr[FrameT, SeriesOrExprT]ú0TypeIs[CompliantSelector[FrameT, SeriesOrExprT]]c                ó<   — t          |t          | ¦  «        ¦  «        S r:   )rd   Útype©r=   rä   s     r>   Ú_is_selectorzCompliantSelector._is_selectorì   s   € õ ˜%¥ d¡¤Ñ,Ô,Ð,r@   c                ó   — d S r:   r;   ré   s     r>   Ú__sub__zCompliantSelector.__sub__ñ   ó   € Ø,/¨Cr@   c                ó   — d S r:   r;   ré   s     r>   rì   zCompliantSelector.__sub__ó   ó	   € ð 03¨sr@   ú%SelectorOrExpr[FrameT, SeriesOrExprT]c                ó¾   ‡ ‡— ‰                       ‰¦  «        r0d	ˆˆ fd„}d
ˆˆ fd„}‰ j        j                             ||‰ ¬¦  «        S ‰                      ¦   «         ‰z
  S )NrG   r0   r7   r`   c                óš   •‡— t          | ‰‰¦  «        \  }}t          |¦  «        Šˆfd„t           ‰| ¦  «        |d¬¦  «        D ¦   «         S )Nc                ó"   •— g | ]\  }}|‰v¯	|‘ŒS r;   r;   ©re   Úxro   Úrhs_sets      €r>   rh   z=CompliantSelector.__sub__.<locals>.series.<locals>.<listcomp>ÿ   s2   ø€ ð ð ð á˜˜4Ø 7Ð*Ð*ð à*Ð*Ð*r@   TrV   ©Ú_eval_lhs_rhsÚ	frozensetrX   ©rG   Ú	lhs_namesÚ	rhs_namesrö   rä   r=   s      @€€r>   rk   z)CompliantSelector.__sub__.<locals>.seriesü   ói   øø€ Ý'4°R¸¸uÑ'EÔ'EÑ$�	˜9Ý# IÑ.Ô.�ðð ð ð å#& t t¨B¡x¤x°À4Ð#HÑ#HÔ#Hðñ ô ð r@   rl   c                óh   •‡— t          | ‰‰¦  «        \  }}t          |¦  «        Šˆfd„|D ¦   «         S )Nc                ó   •— g | ]}|‰v¯|‘Œ	S r;   r;   ©re   rõ   rö   s     €r>   rh   z<CompliantSelector.__sub__.<locals>.names.<locals>.<listcomp>  s#   ø€ ÐAÐAÐA˜a°¸Ð0@Ð0@˜Ð0@Ð0@Ð0@r@   ©rø   rù   rú   s      @€€r>   rq   z(CompliantSelector.__sub__.<locals>.names  sA   øø€ Ý'4°R¸¸uÑ'EÔ'EÑ$�	˜9Ý# IÑ.Ô.�ØAÐAÐAÐA 9ÐAÑAÔAÐAr@   rr   rs   rt   ©rê   rà   r?   rv   rã   ©r=   rä   rk   rq   s   ``  r>   rì   zCompliantSelector.__sub__÷   s    øø€ ð ×Ò˜UÑ#Ô#ð 	Xðð ð ð ð ð ð ðBð Bð Bð Bð Bð Bð Bð
 ”>Ô+×:Ò:¸6À5ÐRVÐ:ÑWÔWÐWØ�}Š}‰Œ Ñ&Ð&r@   c                ó   — d S r:   r;   ré   s     r>   Ú__or__zCompliantSelector.__or__  s   € Ø+.¨3r@   c                ó   — d S r:   r;   ré   s     r>   r  zCompliantSelector.__or__  rï   r@   c                ó¾   ‡ ‡— ‰                       ‰¦  «        r0d	ˆˆ fd„}d
ˆˆ fd„}‰ j        j                             ||‰ ¬¦  «        S ‰                      ¦   «         ‰z  S )NrG   r0   r7   r`   c                ó´   •‡— t          | ‰‰¦  «        \  }}t          |¦  «        Šg ˆfd„t           ‰| ¦  «        |d¬¦  «        D ¦   «         ¢ ‰| ¦  «        ¢S )Nc              3  ó*   •K  — | ]\  }}|‰v¯	|V — Œd S r:   r;   rô   s      €r>   ú	<genexpr>z;CompliantSelector.__or__.<locals>.series.<locals>.<genexpr>  s>   øè è € ð ð á#˜A˜tØ wÐ.Ð.ð à.Ð.Ð.Ð.ðð r@   TrV   r÷   rú   s      @€€r>   rk   z(CompliantSelector.__or__.<locals>.series  s…   øø€ Ý'4°R¸¸uÑ'EÔ'EÑ$�	˜9Ý# IÑ.Ô.�ððð ð ð å'*¨4¨4°©8¬8°YÀtÐ'LÑ'LÔ'Lðñ ô ðð �U˜2‘Y”Yðð r@   rl   c                óp   •‡— t          | ‰‰¦  «        \  }}t          |¦  «        Šg ˆfd„|D ¦   «         ¢|¢S )Nc              3  ó$   •K  — | ]
}|‰v¯|V — Œd S r:   r;   r   s     €r>   r
  z:CompliantSelector.__or__.<locals>.names.<locals>.<genexpr>'  s-   øè è € ÐCÐC °!¸7Ð2BÐ2B˜!Ð2BÐ2BÐ2BÐ2BÐCÐCr@   r  rú   s      @€€r>   rq   z'CompliantSelector.__or__.<locals>.names$  sL   øø€ Ý'4°R¸¸uÑ'EÔ'EÑ$�	˜9Ý# IÑ.Ô.�ØPÐCÐCÐCÐC YÐCÑCÔCÐPÀiÐPÐPr@   rr   rs   rt   r  r  s   ``  r>   r  zCompliantSelector.__or__  s    øø€ ð ×Ò˜UÑ#Ô#ð 	Xð
ð 
ð 
ð 
ð 
ð 
ð 
ðQð Qð Qð Qð Qð Qð Qð
 ”>Ô+×:Ò:¸6À5ÐRVÐ:ÑWÔWÐWØ�}Š}‰Œ Ñ&Ð&r@   c                ó   — d S r:   r;   ré   s     r>   Ú__and__zCompliantSelector.__and__,  rí   r@   c                ó   — d S r:   r;   ré   s     r>   r  zCompliantSelector.__and__.  rï   r@   c                ó¾   ‡ ‡— ‰                       ‰¦  «        r0d	ˆˆ fd„}d
ˆˆ fd„}‰ j        j                             ||‰ ¬¦  «        S ‰                      ¦   «         ‰z  S )NrG   r0   r7   r`   c                óš   •‡— t          | ‰‰¦  «        \  }}t          |¦  «        Šˆfd„t           ‰| ¦  «        |d¬¦  «        D ¦   «         S )Nc                ó"   •— g | ]\  }}|‰v ¯	|‘ŒS r;   r;   rô   s      €r>   rh   z=CompliantSelector.__and__.<locals>.series.<locals>.<listcomp>:  s.   ø€ ð ð ð á˜˜4Ø˜w��ð à&��r@   TrV   r÷   rú   s      @€€r>   rk   z)CompliantSelector.__and__.<locals>.series7  rý   r@   rl   c                óh   •‡— t          | ‰‰¦  «        \  }}t          |¦  «        Šˆfd„|D ¦   «         S )Nc                ó   •— g | ]}|‰v ¯|‘Œ	S r;   r;   r   s     €r>   rh   z<CompliantSelector.__and__.<locals>.names.<locals>.<listcomp>C  s   ø€ Ð=Ð=Ð=˜a°°W°°˜°°°r@   r  rú   s      @€€r>   rq   z(CompliantSelector.__and__.<locals>.names@  sA   øø€ Ý'4°R¸¸uÑ'EÔ'EÑ$�	˜9Ý# IÑ.Ô.�Ø=Ð=Ð=Ð= 9Ð=Ñ=Ô=Ð=r@   rr   rs   rt   r  r  s   ``  r>   r  zCompliantSelector.__and__2  s™   øø€ ð ×Ò˜UÑ#Ô#ð 	Xðð ð ð ð ð ð ð>ð >ð >ð >ð >ð >ð >ð
 ”>Ô+×:Ò:¸6À5ÐRVÐ:ÑWÔWÐWØ�}Š}‰Œ Ñ&Ð&r@   r^   c                ó:   — | j                              ¦   «         | z
  S r:   )rà   r«   r<   s    r>   Ú
__invert__zCompliantSelector.__invert__H  s   € ØŒ~×!Ò!Ñ#Ô# dÑ*Ð*r@   N)rØ   rÔ   rÙ   rÚ   rA   r$   r7   r   )r7   r[   )r7   rá   )rä   rå   r7   ræ   )rä   r   r7   r   )rä   rá   r7   rá   )rä   rð   r7   rð   r¹   )rº   r»   r¼   r½   r×   r¿   rv   r¾   rà   rã   rê   r   rì   r  r  r  r;   r@   r>   r'   r'   È   s¯  € € € € € € ð -Ð,Ð,Ñ,ØÐÐÑØ#Ð#Ð#Ñ#ØÐÐÑð 7;ÐÐ:Ð:Ð:Ñ:àðð ð ñ „[ðð ð7ð 7ð 7ñ „Xð7ð DÐCÐCÐCð-ð -ð -ð -ð
 Ø/Ð/Ð/ñ „XØ/Øð3ð 3ð 3ñ „Xð3ð'ð 'ð 'ð 'ð, Ø.Ð.Ð.ñ „XØ.Øð3ð 3ð 3ñ „Xð3ð'ð 'ð 'ð 'ð2 Ø/Ð/Ð/ñ „XØ/Øð3ð 3ð 3ñ „Xð3ð'ð 'ð 'ð 'ð,+ð +ð +ð +ð +ð +r@   r'   rE   r   r7   ú#TypeIs[CompliantSelector[Any, Any]]c               ó>   — t          t          | ¦  «        dd¦  «        S )z-Check whether `obj` is a `CompliantSelector`.r×   F)Úgetattrrè   )rE   s    r>   r+   r+   L  s   € å•4˜‘9”9Ð6¸Ñ>Ô>Ð>r@   rG   Úlhsr   Úrhsú#tuple[Sequence[str], Sequence[str]]c                óV   — |                      | ¦  «        |                      | ¦  «        fS r:   )rÜ   )rG   r  r  s      r>   rø   rø   Q  s+   € ð ×%Ò% bÑ)Ô)¨3×+EÒ+EÀbÑ+IÔ+IÐIÐIr@   )rE   r   r7   r  )rG   r   r  r   r  r   r7   r  )@Ú__doc__Ú
__future__r   r�   Ú	functoolsr   Útypingr   r   r   r   r	   r
   r   Únarwhals._compliant.exprr   Únarwhals._utilsr   r   r   r   Úcollections.abcr   r   r   r   r¸   r   r   Útyping_extensionsr   r   r   Únarwhals._compliant.typingr   r   r   r   r   r   r    r!   r"   r#   r$   Únarwhals.dtypesr%   Únarwhals.typingr&   Ú__all__r,   r.   r/   r0   r1   r2   r3   r½   r(   r)   r*   r'   r+   rø   r;   r@   r>   ú<module>r*     sá  ðØ CÐ CÐ Cà "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ Uà 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð ð ð ð ð ð ð ð )ØHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHØ!Ð!Ð!Ð!Ð!Ð!Ø Ð Ð Ð Ð Ð à.Ð.Ð.Ð.Ð.Ð.Ð.Ð.à3Ð3Ð3Ð3Ð3Ð3ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð IÐHÐHÐHÐHÐHÐHÐHÐHÐHØ%Ð%Ð%Ð%Ð%Ð%Ø(Ð(Ð(Ð(Ð(Ð(ðð ð €ð �˜Ð/OÐPÑPÔP€Ø
ˆ'�)Ð#7Ð
8Ñ
8Ô
8€Øˆ�˜|Ð,Ñ,Ô,€Ø	ˆ�Ð!4Ð	5Ñ	5Ô	5€ØˆW�\Ð)@ÐAÑAÔA€
ØˆW�\Ð)@ÐAÑAÔA€
àUð ð ð ð ñ ð
oJð oJð oJð oJð oJ ¨&°-Ð*?Ô!@ñ oJô oJð oJðd!ð !ð !ð !ð !Ø˜z¨7Ð2Ô3°X¸jÈ'Ð>QÔ5Rñ!ô !ð !ð
Pð 
Pð 
Pð 
Pð 
PØ˜z¨5Ð0Ô1°8¸JÈÐ<MÔ3Nñ
Pô 
Pð 
PðA+ð A+ð A+ð A+ð A+Ø�&˜-Ð'Ô(¨(°6¸=Ð3HÔ*IñA+ô A+ð A+ðH?ð ?ð ?ð ?ð
Jð Jð Jð Jð Jð Jr@   