
    ei&                    |   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     R/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/narwhals/plugins.py_discover_entrypointsr(   *   s=    6E
'!M3599UB#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5ALL..s33Gs   '*F)anymro	TypeError)clsrG   s    `r'   	_might_berM   B   s1    GSWWY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    ( !-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.)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	
;

 LD,
  ?(5x@V7W ??Xfn,- ?  AA.r)   