§
    dŠtj  ã                  óþ  — d Z ddlmZ ddlZddlZddlZddlmZmZm	Z	 ddl
Z
ddlZddlmZ  e¦   «         Z G d„ d¦  «        Z G d„ d	e¦  «        Z ej         ej        ¦   «         ¦  «        Zd
„ Z G d„ de¦  «        Zd„ Zd„ Zd„ Zeg df         Zej        Zee	eef         gdf         Z eeedge	edf         f         Z!eddœ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#d"z  Z#dS dS )$zbgRPC's experimental APIs.

These APIs are subject to be removed during any minor version release.
é    )ÚannotationsN)ÚCallableÚOptionalÚUnion)Úcygrpcc                  ó   — 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
   © ó    úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/grpc/experimental/__init__.pyr	   r	       s"   € € € € € ðð ð !<ÐÐÐr   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   ,   s   € € € € € ØNÐNÐNÐ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   7   s
   € õ
 )Ð(r   c                  ó   — e Zd ZdZdS )ÚExperimentalApiWarningz&A warning that an API is experimental.Nr   r   r   r   r   r   ?   s   € € € € € Ø0Ð0Ð0Ð0r   r   c                ó¾   — | t           vrSt                                | ¦  «         d                     | ¦  «        dz   }t          j        |t
          d|z   ¬¦  «         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Úmsgs      r   Ú_warn_experimentalr%   C   sv   € ØÕ.Ð.Ð.Ý×#Ò# HÑ-Ô-Ð-àF×MÒMØñô ð FñFð 	õ 	Œ�cÕ1¸aÀ,Ñ>NÐOÑOÔOÐOÐOÐOð /Ð.r   c                óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                 ó>   •— t          ‰j        d¦  «          ‰| i |¤ŽS )Né   )r%   r   )ÚargsÚkwargsÚfs     €r   Ú_wrapperz"experimental_api.<locals>._wrapperP   s*   ø€ å˜1œ: qÑ)Ô)Ð)Øˆq�$Ð!˜&Ð!Ð!Ð!r   )Ú	functoolsÚwraps)r+   r,   s   ` r   Úexperimental_apir/   O   s8   ø€ Ý„_�QÑÔð"ð "ð "ð "ñ Ôð"ð €Or   c                óT  — |sdS |j         sO|j        s$|                      | |j        ¦  «        ¬¦  «        S |                      | |j        ¦  «        ¬¦  «        S |j        s$|                      | |j        ¦  «        ¬¦  «        S |                      | |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Ú_replacer2   r4   r6   r8   )ÚwrapperÚhandlers     r   Úwrap_server_method_handlerr>   X   sÇ   € ð ð ØˆtàÔ$ð LØÔ)ð 	Nð ×#Ò#°°¸Ô8KÑ0LÔ0LÐ#ÑMÔMÐMØ×Ò¨W¨W°WÔ5IÑ-JÔ-JÐÑKÔKÐKØÔ%ð LØ×Ò¨W¨W°WÔ5IÑ-JÔ-JÐÑKÔKÐKØ×Ò¨'¨'°'Ô2GÑ*HÔ*HÐÑIÔIÐIr   ÚPrivateKeySignOnCompleteÚPrivateKeySignCancel)Úroot_certificatesÚprivate_key_sign_fnú'CustomPrivateKeySign'rA   úOptional[bytes]Úcertificate_chainÚbytesÚreturnúgrpc.ChannelCredentialsc                óT   — t          j        t          j        |d|| ¦  «        ¦  «        S )a�  Creates a ChannelCredentials for use with an SSL-enabled Channel with a custom signer.

    THIS IS AN EXPERIMENTAL API.
    This API will be removed in a future version and combined with `grpc.ssl_channel_credentials`.

    Args:
      private_key_sign_fn: a function with the signature of
        `CustomPrivateKeySign`. This function can return synchronously or
        asynchronously.  To return synchronously, return the signed bytes.  To
        return asynchronously, return a callable matching the
        `PrivateKeySignCancel` signature.This can be a no-op if no cancellation is
        needed. In the async case, this function must return this callable
        quickly, then call the passed in `PrivateKeySignOnComplete` when the async
        signing operation is complete to trigger gRPC to continue the handshake.
      root_certificates: The PEM-encoded root certificates as a byte string,
        or None to retrieve them from a default location chosen by gRPC
        runtime.
      certificate_chain: The PEM-encoded certificate chain as a byte string
        to use

    Returns:
      A ChannelCredentials for use with an SSL-enabled Channel.
    N)ÚgrpcÚChannelCredentialsÚ_cygrpcÚSSLChannelCredentials)rB   rA   rE   s      r   Ú*ssl_channel_credentials_with_custom_signerrN   ‡   s4   € õ< Ô"ÝÔ%Ø˜tÐ%6Ð8Kñ	
ô 	
ñô ð r   )r	   r   r   r   rN   r>   )é   é   r7   r5   r3   r1   )r8   r6   r4   r2   )rB   rC   rA   rD   rE   rF   rG   rH   )*r   Ú
__future__r   Úcopyr-   ÚsysÚtypingr   r   r   r    rJ   Úgrpc._cythonr   rL   Úsetr   r	   Ú	Exceptionr   rK   Úchannel_credentials_insecurer   r   ÚWarningr   r%   r/   r>   r@   ÚPrivateKeySignatureAlgorithmrF   r?   ÚCustomPrivateKeySignrN   Ú__all__Úversion_infoÚgrpc._simple_stubsr8   r6   r4   r2   r   r   r   ú<module>r_      sŒ  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø 
€
€
€
Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø €€€à €€€Ø *Ð *Ð *Ð *Ð *Ð *à˜#™%œ%Ð ð	<ð 	<ð 	<ð 	<ð 	<ñ 	<ô 	<ð 	<ðOð Oð Oð Oð O�ñ Oô Oð Oð !8 Ô 7Ø(€GÔ(Ñ*Ô*ñ!ô !Ð ð
)ð )ð )ð1ð 1ð 1ð 1ð 1˜Wñ 1ô 1ð 1ð	Pð 	Pð 	Pðð ð ðJð Jð Jð>    D Ô)Ð Ø&ÔCÐ Ø# U¨5°)Ð+;Ô%<Ð$=¸tÐ$CÔDÐ ð  àØ$Ø"ðð
 
ˆ%Ð'Ð
'Ô(ð*ôÐ ð ð *.ð!ð !ð !ð !ð !ñ Ôð!ðH€ð Ô�fÒÐØ0Ð0Ð0Ð0Ð0Ð0Ø/Ð/Ð/Ð/Ð/Ð/Ø/Ð/Ð/Ð/Ð/Ð/Ø.Ð.Ð.Ð.Ð.Ð.àð ñ €G€G€Gð Ðr   