o
    ÓèFh  ã                   @   sò   d Z ddlZddlZddlZddlZddlZddlmZ e	ƒ Z
G dd„ deƒZG dd„ deƒZe e ¡ ¡Zdd	„ ZG d
d„ deƒZdd„ Zdd„ Zdd„ ZdZejdkrwddlmZ ddlmZ ddlmZ ddlmZ eeeeef ZdS dS )zbgRPC's experimental APIs.

These APIs are subject to be removed during any minor version release.
é    N)Úcygrpcc                   @   s   e Zd ZdZdZdS )ÚChannelOptionszÌIndicates a channel option unique to gRPC Python.

    This enumeration is part of an EXPERIMENTAL API.

    Attributes:
      SingleThreadedUnaryStream: Perform unary-stream RPCs on a single thread.
    ÚSingleThreadedUnaryStreamN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r	   r	   úS/var/www/html/loop/nvenv/lib/python3.10/site-packages/grpc/experimental/__init__.pyr      s    r   c                   @   ó   e Zd ZdZdS )Ú
UsageErrorzDRaised by the gRPC library to indicate usage not allowed by the API.N©r   r   r   r   r	   r	   r	   r
   r   *   ó    r   c                   C   s   t S )zeCreates a ChannelCredentials for use with an insecure channel.

    THIS IS AN EXPERIMENTAL API.
    )Ú_insecure_channel_credentialsr	   r	   r	   r
   Úinsecure_channel_credentials5   s   r   c                   @   r   )ÚExperimentalApiWarningz&A warning that an API is experimental.Nr   r	   r	   r	   r
   r   =   r   r   c                 C   s<   | t vrt  | ¡ d | ¡d }tj|td| d� d S d S )Nz8'{}' is an experimental API. It is subject to change or z5removal between minor releases. Proceed with caution.é   )Ú
stacklevel)Ú_EXPERIMENTAL_APIS_USEDÚaddÚformatÚwarningsÚwarnr   )Úapi_nameÚstack_offsetÚmsgr	   r	   r
   Ú_warn_experimentalA   s   
ÿýÿør   c                    s   t  ˆ ¡‡ fdd„ƒ}|S )Nc                     s   t ˆ jdƒ ˆ | i |¤ŽS )Né   )r   r   )ÚargsÚkwargs©Úfr	   r
   Ú_wrapperN   s   z"experimental_api.<locals>._wrapper)Ú	functoolsÚwraps)r!   r"   r	   r    r
   Úexperimental_apiM   s   r%   c                 C   sb   |sdS |j s|js|j| |jƒd�S |j| |jƒd�S |js(|j| |jƒd�S |j| |jƒd�S )aí  Wraps the server method handler function.

    The server implementation requires all server handlers being wrapped as
    RpcMethodHandler objects. This helper function ease the pain of writing
    server handler wrappers.

    Args:
        wrapper: A wrapper function that takes in a method handler behavior
          (the actual function) and returns a wrapped function.
        handler: A RpcMethodHandler object to be wrapped.

    Returns:
        A newly created RpcMethodHandler.
    N©Úunary_unary©Úunary_stream©Ústream_unary©Ústream_stream)Úrequest_streamingÚresponse_streamingÚ_replacer'   r)   r+   r-   )ÚwrapperÚhandlerr	   r	   r
   Úwrap_server_method_handlerV   s   ÿr3   )r   r   r   r   r3   )é   é   r,   r*   r(   r&   )r   Úcopyr#   Úsysr   ÚgrpcÚgrpc._cythonr   Ú_cygrpcÚsetr   Úobjectr   Ú	Exceptionr   ÚChannelCredentialsÚchannel_credentials_insecurer   r   ÚWarningr   r   r%   r3   Ú__all__Úversion_infoÚgrpc._simple_stubsr-   r+   r)   r'   r	   r	   r	   r
   Ú<module>   s4   ÿ	"
ú