U
    ËZj  ã                   @   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rêd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 )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	   ú]/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/grpc/experimental/__init__.pyr      s   r   c                   @   s   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   *   s   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                   @   s   e Zd ZdZdS )ÚExperimentalApiWarningz&A warning that an API is experimental.Nr   r	   r	   r	   r
   r   =   s   r   c                 C   s8   | t kr4t  | ¡ d | ¡d }tj|td| d� 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   )Zapi_nameZstack_offsetÚmsgr	   r	   r
   Ú_warn_experimentalA   s    
ÿýÿr   c                    s   t  ˆ ¡‡ fdd„ƒ}|S )Nc                     s   t ˆ jdƒ ˆ | |Ž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   sh   |sdS |j s:|js&|j| |jƒd�S |j| |jƒd�S n*|jsR|j| |jƒd�S |j| |jƒd�S 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)Zrequest_streamingZresponse_streamingÚ_replacer#   r%   r'   r)   )ÚwrapperÚhandlerr	   r	   r
   Úwrap_server_method_handlerV   s    ÿr-   )r   r   r   r   r-   )é   é   r(   r&   r$   r"   )r   Úcopyr   Úsysr   ZgrpcZgrpc._cythonr   Z_cygrpcÚsetr   Úobjectr   Ú	Exceptionr   ZChannelCredentialsZchannel_credentials_insecurer   r   ÚWarningr   r   r!   r-   Ú__all__Úversion_infoZgrpc._simple_stubsr)   r'   r%   r#   r	   r	   r	   r
   Ú<module>   s0   ÿ	"
