Ë
    ðmxi&  ã                  ó|  — U 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	 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mZ d d
lmZmZmZmZ d dlmZ ddgZdZded<   	  eddd¬«      Z edede¬«      Z ed!d„«       Z! G d„ deeef   eee f   «      Z" G d„ deee f   «      Z#ed"d„«       Z$d#d„Z%d$d„Z&d%d„Z'd&d „Z(y)'é    )ÚannotationsN)Úcache)ÚTYPE_CHECKINGÚAnyÚProtocolÚcast)ÚCompliantNamespace)ÚTypeVar)ÚIterator)ÚEntryPoints)ÚLiteralStringÚ	TypeAlias)ÚCompliantDataFrameAnyÚCompliantFrameAnyÚCompliantLazyFrameAnyÚCompliantSeriesAny)ÚVersionÚPluginÚfrom_nativezBCompliantDataFrameAny | CompliantLazyFrameAny | CompliantSeriesAnyr   ÚCompliantAnyÚFrameTr   z-CompliantDataFrameAny | CompliantLazyFrameAny)ÚboundÚdefaultÚFromNativeR_coT)r   Ú	covariantr   c                 óŒ   — ddl m}  d}t        j                  dk  r!t	        d | «       j                  |d«      «      S  | |¬«      S )Nr   )Úentry_pointsznarwhals.plugins)é   é
   r   © )Úgroup)Úimportlib.metadatar   ÚsysÚversion_infor   Úget)Úepsr!   s     úG/home/htdocs/ttos/venv/lib/python3.12/site-packages/narwhals/plugins.pyÚ_discover_entrypointsr(   *   s=   € å6à€EÜ
×Ñ˜'Ò!Ü�M¡3£5§9¡9¨U°BÓ#7Ó8Ð8Ù�UÔÐó    c                  ó   — e Zd Zdd„Zy)ÚPluginNamespacec                ó   — y ©Nr    )ÚselfÚdatas     r'   r   zPluginNamespace.from_native5   ó   � r)   N)r/   r   Úreturnr   )Ú__name__Ú
__module__Ú__qualname__r   r    r)   r'   r+   r+   4   s   „ Ü>r)   r+   c                  ó6   — e Zd Zedd„«       Z	 	 	 	 dd„Zdd„Zy)r   c                 ó   — y r-   r    )r.   s    r'   ÚNATIVE_PACKAGEzPlugin.NATIVE_PACKAGE9   s   € Ø/2r)   c                 ó   — y r-   r    )r.   Úversions     r'   Ú__narwhals_namespace__zPlugin.__narwhals_namespace__<   s   € à25r)   c                ó   — y r-   r    )r.   Únative_objects     r'   Ú	is_nativezPlugin.is_native?   r0   r)   N)r1   r   )r9   r   r1   z'PluginNamespace[FrameT, FromNativeR_co])r<   Úobjectr1   Úbool)r2   r3   r4   Úpropertyr7   r:   r=   r    r)   r'   r   r   8   s*   „ ØÚ2ó Ø2ð6Øð6à	0ó6ô ?r)   c                óh   ‡— 	 t        ˆfd„| j                  «       D «       «      S # t        $ r Y yw xY w)Nc              3  óX   •K  — | ]!  }‰|j                   j                  d «      v –— Œ# y­w)ú.N)r3   Úsplit)Ú.0ÚoÚtype_s     €r'   ú	<genexpr>z_might_be.<locals>.<genexpr>E   s%   øè ø€ ÒG¸�5˜AŸL™L×.Ñ.¨sÓ3Ô3ÑGùs   ƒ'*F)ÚanyÚmroÚ	TypeError)ÚclsrG   s    `r'   Ú	_might_berM   B   s1   ø€ ðÜÓG¸S¿W¹W»YÔGÓGÐGøÜò Ùðús   ƒ!% ¥	1°1c                ó°   — |j                   }t        j                  j                  |«      d uxr( t	        t        | «      |«      xr |j                  | «      S r-   )r7   r#   Úmodulesr%   rM   Útyper=   )r<   ÚpluginÚpkgs      r'   Ú_is_native_pluginrS   J   sN   € Ø
×
Ñ
€Cä�‰�‰˜Ó DÐ(ò 	,Ü”d˜=Ó)¨3Ó/ò	,à×Ñ˜]Ó+ðr)   c              #  ó®   K  — t        «       D ]D  }|j                  «       }t        | |«      sŒ |j                  |¬«      }|j	                  | «      –— ŒF y ­w)N)r9   )r(   ÚloadrS   r:   r   )r<   r9   Úentry_pointrQ   Úcompliant_namespaces        r'   Ú_iter_from_nativerX   S   sW   è ø€ Ü,Ó.ò AˆØ$×)Ñ)Ó+ˆÜ˜]¨FÕ3Ø"(×"?Ñ"?ÈÐ"?Ó"PÐØ%×1Ñ1°-Ó@Ó@ñ	Aùs
   ‚*A­(Ac                ó.   — t        t        | |«      d«      S )a¾  Attempt to convert `native_object` to a Compliant object, using any available plugin(s).

    Arguments:
        native_object: Raw object from user.
        version: Narwhals API version.

    Returns:
        If the following conditions are met
            - at least 1 plugin is installed
            - at least 1 installed plugin supports `type(native_object)`

        Then for the **first matching plugin**, the result of the call below.
        This *should* be an object accepted by a Narwhals Dataframe, Lazyframe, or Series:

            plugin: Plugin
            plugin.__narwhals_namespace__(version).from_native(native_object)

        In all other cases, `None` is returned instead.
    N)ÚnextrX   )r<   r9   s     r'   r   r   [   s   € ô( Ô! -°Ó9¸4Ó@Ð@r)   c                ó    — t        | d«      r	 yy )NÚdaftz¸Hint: it looks like you passed a `daft.DataFrame` but don't have `narwhals-daft` installed.
Please refer to https://github.com/narwhals-dev/narwhals-daft for installation instructions.)rM   )Únative_object_types    r'   Ú_show_suggestionsr^   r   s   € ÜÐ# VÔ,ðkð	
ð r)   )r1   r   )rL   rP   rG   Ústrr1   r?   )r<   r   rQ   r   r1   r?   )r<   r   r9   r   r1   zIterator[CompliantAny])r<   r   r9   r   r1   zCompliantAny | None)r]   rP   r1   z
str | None))Ú
__future__r   r#   Ú	functoolsr   Útypingr   r   r   r   Únarwhals._compliantr	   Únarwhals._typing_compatr
   Úcollections.abcr   r"   r   Útyping_extensionsr   r   Únarwhals._compliant.typingr   r   r   r   Únarwhals.utilsr   Ú__all__r   Ú__annotations__r   r   r(   r+   r   rM   rS   rX   r   r^   r    r)   r'   ú<module>rk      s÷   ðÞ "ã 
Ý ß 5Ó 5å 2Ý +áÝ(Ý.ç:÷ó õ 'ð �]Ð
#€ð Ið ˆió ð Há	ØØ
Ø;ô
€ñ
 Ø˜L°DÀ,ô€ð
 òó ðô?Ð(¨°¨Ñ5°xÀÈÐ@VÑ7Wô ?ô?ˆX�f˜nÐ,Ñ-ô ?ð òó ðóóAóAô.r)   