a
    v=ic                     @   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rd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 )ChannelOptionszIndicates 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	   k/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/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_credentials3   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 v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_experimental?   s    
r   c                    s   t   fdd}|S )Nc                     s   t  jd  | i |S )N   )r   r   )argskwargsfr	   r
   _wrapperJ   s    z"experimental_api.<locals>._wrapper)	functoolswraps)r   r   r	   r   r
   experimental_apiH   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_handlerR   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   	
!
