o
    |j6h                     @   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 )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	   i/var/www/html/chefvision.cloud.itp360.com/venv/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   	"
