
    Ag                     L   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e      Z G d de      Z ej                   ej                                Zd Z G d	 d
e      Zd Zd Zd ZdZej2                  dkD  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   Zyy)zbgRPC's experimental APIs.

These APIs are subject to be removed during any minor version release.
    N)cygrpcc                       e Zd ZdZdZy)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        O/var/www/openai/venv/lib/python3.12/site-packages/grpc/experimental/__init__.pyr   r      s     !<r   r   c                       e Zd ZdZy)
UsageErrorzDRaised by the gRPC library to indicate usage not allowed by the API.Nr   r   r	   r
   r   r   r   r   r   *   s    Nr   r   c                      t         S )zeCreates a ChannelCredentials for use with an insecure channel.

    THIS IS AN EXPERIMENTAL API.
    )_insecure_channel_credentialsr   r   r   insecure_channel_credentialsr   5   s
    
 )(r   c                       e Zd ZdZy)ExperimentalApiWarningz&A warning that an API is experimental.Nr   r   r   r   r   r   =   s    0r   r   c                     | t         vrIt         j                  |        dj                  |       dz   }t        j                  |t
        d|z          y y )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msgs      r   _warn_experimentalr!   A   sX    ..##H-FMM FF 	 	c1a,>NO /r   c                 B     t        j                          fd       }|S )Nc                  @    t        j                  d        | i |S )N   )r!   r   )argskwargsfs     r   _wrapperz"experimental_api.<locals>._wrapperN   s!    1::q)$!&!!r   )	functoolswraps)r'   r(   s   ` r   experimental_apir+   M   s%    __Q" " Or   c                 `   |sy|j                   sP|j                  s"|j                   | |j                              S |j                   | |j                              S |j                  s"|j                   | |j
                              S |j                   | |j                              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.   r0   r2   r4   )wrapperhandlers     r   wrap_server_method_handlerr:   V   s     $$)) ##8K8K0L#MM##9M9M1N#OO))##9M9M1N#OO##%g&;&;< $  r   )r   r   r   r   r:   )      r3   r1   r/   r-   )r
   copyr)   sysr   grpcgrpc._cythonr   _cygrpcsetr   objectr   	Exceptionr   ChannelCredentialschannel_credentials_insecurer   r   Warningr   r!   r+   r:   __all__version_infogrpc._simple_stubsr4   r2   r0   r.   r   r   r   <module>rK      s   
   
   *% 	<V 	<O O !8 7 7(G((*! 
)1W 1	PD f0//.lL-PPG r   