
    O3j                       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	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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)CompliantNamespace)TypeVar)Iterator)EntryPoints)	TypeAlias)LiteralString)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} | |      S )Nr   )entry_pointsznarwhals.plugins)group)importlib.metadatar   )epsr   s     =/DATA/.local/lib/python3.12/site-packages/narwhals/plugins.py_discover_entrypointsr!   +   s    6EU    c                      e Zd ZddZy)PluginNamespacec                    y N )selfdatas     r    r   zPluginNamespace.from_native4       3r"   N)r)   r   returnr   )__name__
__module____qualname__r   r'   r"   r    r$   r$   3   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_PACKAGE8   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>   r*   r"   N)r+   r   )r3   r   r+   z'PluginNamespace[FrameT, FromNativeR_co])r6   objectr+   bool)r,   r-   r.   propertyr1   r4   r7   r'   r"   r    r   r   7   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)r-   split).0otype_s     r    	<genexpr>z_might_be.<locals>.<genexpr>D   s&     GY5ALL..s33Ys   '*F)anymro	TypeError)clsrA   s    `r    	_might_berG   A   s1    GSWWYGGG s   !% 	11c                    |j                   }t        j                  j                  |      d uxr( t	        t        |       |      xr |j                  |       S r&   )r1   sysmodulesgetrG   typer7   )r6   pluginpkgs      r    _is_native_pluginrO   I   sN    


CD( 	,d=)3/	,]+r"   c              #     K   t               D ]D  }|j                         }t        | |      s |j                  |      }|j	                  |        F y w)N)r3   )r!   loadrO   r4   r   )r6   r3   entry_pointrM   compliant_namespaces        r    _iter_from_nativerT   R   sP     ,.$))+]F3"("?"?"?"P%11-@@	 /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)nextrT   )r6   r3   s     r    r   r   Z   s    ( !-94@@r"   c                     t        | d      r	 yy )NdaftzHint: 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.)rG   )native_object_types    r    _show_suggestionsrZ   q   s    #V,k	
 r"   )r+   r   )rF   rL   rA   strr+   r9   )r6   r   rM   r   r+   r9   )r6   r   r3   r   r+   zIterator[CompliantAny])r6   r   r3   r   r+   zCompliantAny | None)rY   rL   r+   z
str | None)(
__future__r   rI   	functoolsr   typingr   r   r   narwhals._compliantr   narwhals._typing_compatr	   collections.abcr
   r   r   r   typing_extensionsr   narwhals._compliant.typingr   r   r   r   narwhals.utilsr   __all__r   __annotations__r   r   r!   r$   r   rG   rO   rT   r   rZ   r'   r"   r    <module>rg      s    " 
  / / 2 +(. /  ' ]
# I i  H	
;

 LD,
  ?(5x@V7W ??Xfn,- ?  AA.r"   