Ë
    òmxiRc  ã                   óÞ  — d Z ddlZddl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mZmZmZmZ ddlZddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ) ejT                  e+«      Z, G d„ dejZ                  «      Z.dedej^                  de.fd „Z0 G d!„ d"«      Z1 G d#„ d$ejd                  «      Z3 G d%„ d&e1ee    «      Z4 G d'„ d(e1«      Z5 G d)„ d*e1«      Z6 G d+„ d,e4e1ejn                  «      Z7 G d-„ d.e5e1ejp                  «      Z8 G d/„ d0e6e4e1ejr                  «      Z9 G d1„ d2e6e5e1ejt                  «      Z:y)3z6Invocation-side implementation of gRPC Asyncio Python.é    N)Úpartial)ÚAnyÚAsyncIteratorÚ	GeneratorÚGenericÚOptionalÚTupleÚUnion)Ú_common)Úcygrpcé   )Ú
_base_call)ÚMetadata)ÚDeserializingFunction)ÚDoneCallbackType)ÚEOFType)ÚMetadataType)ÚMetadatumType)ÚRequestIterableType)ÚRequestType)ÚResponseType)ÚSerializingFunction)ÚAioRpcErrorÚCallÚUnaryUnaryCallÚUnaryStreamCallz!Locally cancelled by application!z"Cancelled upon garbage collection!zRPC already finished.z0RPC is half closed after calling "done_writing".zBThe iterator and read/write APIs may not be mixed on a single RPC.z?<{} of RPC that terminated with:
	status = {}
	details = "{}"
>zZ<{} of RPC that terminated with:
	status = {}
	details = "{}"
	debug_error_string = "{}"
>c                   óB  ‡ — e Zd ZU dZej
                  ed<   ee   ed<   ee	   ed<   ee	   ed<   ee   ed<   	 	 ddej
                  d	e	d
e	dee   dee   ddfˆ fd„Z
dej
                  fd„Zdee   fd„Zde	fd„Zde	fd„Zdefd„Zdefd„Zdefd„Zdefd„Zd„ Zˆ xZS )r   zÙAn implementation of RpcError to be used by the asynchronous API.

    Raised RpcError is a snapshot of the final status of the RPC, values are
    determined. Hence, its methods no longer needs to be coroutines.
    Ú_codeÚ_detailsÚ_initial_metadataÚ_trailing_metadataÚ_debug_error_stringNÚcodeÚinitial_metadataÚtrailing_metadataÚdetailsÚdebug_error_stringÚreturnc                 óh   •— t         ‰| �  «        || _        || _        || _        || _        || _        y)a–  Constructor.

        Args:
          code: The status code with which the RPC has been finalized.
          initial_metadata: Optional initial metadata that could be sent by the
            Server.
          trailing_metadata: Optional metadata that could be sent by the Server.
          details: Optional details explaining the reason of the error.
          debug_error_string: Optional string
        N)ÚsuperÚ__init__r   r   r    r!   r"   )Úselfr#   r$   r%   r&   r'   Ú	__class__s         €úE/home/htdocs/ttos/venv/lib/python3.12/site-packages/grpc/aio/_call.pyr+   zAioRpcError.__init__V   s6   ø€ ô$ 	‰ÑÔØˆŒ
ØˆŒØ!1ˆÔØ"3ˆÔØ#5ˆÕ ó    c                 ó   — | j                   S )ztAccesses the status code sent by the server.

        Returns:
          The `grpc.StatusCode` status code.
        )r   ©r,   s    r.   r#   zAioRpcError.codeo   s   € ð �z‰zÐr/   c                 ó   — | j                   S )zkAccesses the details sent by the server.

        Returns:
          The description of the error.
        )r   r1   s    r.   r&   zAioRpcError.detailsw   s   € ð �}‰}Ðr/   c                 ó   — | j                   S )zuAccesses the initial metadata sent by the server.

        Returns:
          The initial metadata received.
        )r    r1   s    r.   r$   zAioRpcError.initial_metadata   s   € ð ×%Ñ%Ð%r/   c                 ó   — | j                   S )zwAccesses the trailing metadata sent by the server.

        Returns:
          The trailing metadata received.
        )r!   r1   s    r.   r%   zAioRpcError.trailing_metadata‡   s   € ð ×&Ñ&Ð&r/   c                 ó   — | j                   S )zyAccesses the debug error string sent by the server.

        Returns:
          The debug error string received.
        )r"   r1   s    r.   r'   zAioRpcError.debug_error_string�   s   € ð ×'Ñ'Ð'r/   c                 ó–   — t         j                  | j                  j                  | j                  | j
                  | j                  «      S )z-Assembles the error string for the RPC error.)Ú_NON_OK_CALL_REPRESENTATIONÚformatr-   Ú__name__r   r   r"   r1   s    r.   Ú_reprzAioRpcError._repr—   s9   € ä*×1Ñ1Ø�N‰N×#Ñ#Ø�J‰JØ�M‰MØ×$Ñ$ó	
ð 	
r/   c                 ó"   — | j                  «       S ©N©r:   r1   s    r.   Ú__repr__zAioRpcError.__repr__    ó   € Ø�z‰z‹|Ðr/   c                 ó"   — | j                  «       S r<   r=   r1   s    r.   Ú__str__zAioRpcError.__str__£   r?   r/   c                 óŠ   — t        | «      | j                  | j                  | j                  | j                  | j
                  ffS r<   )Útyper   r    r!   r   r"   r1   s    r.   Ú
__reduce__zAioRpcError.__reduce__¦   sA   € ä�‹Jà—
‘
Ø×&Ñ&Ø×'Ñ'Ø—‘Ø×(Ñ(ðð	
ð 		
r/   )NN)r9   Ú
__module__Ú__qualname__Ú__doc__ÚgrpcÚ
StatusCodeÚ__annotations__r   Ústrr   r+   r#   r&   r$   r%   r'   r:   r>   rA   rD   Ú__classcell__©r-   s   @r.   r   r   I   sþ   ø… ñð �?‰?ÓØ�s‰mÓØ Ñ)Ó)Ø  Ñ*Ó*Ø! #™Ó&ð "&Ø,0ñ6à�o‰oð6ð #ð6ð $ð	6ð
 ˜#‘ð6ð % S™Mð6ð 
õ6ð2�d—o‘oó ð˜ #™ó ð& (ó &ð' 8ó 'ð( Có (ð
�só 
ð˜#ó ð˜ó ö

r/   r   r$   Ústatusr(   c                 ó   — t        t        j                  |j                  «          t	        j
                  | «      t	        j
                  |j                  «       «      |j                  «       |j                  «       ¬«      S )N)r&   r'   )	r   r   Ú!CYGRPC_STATUS_CODE_TO_STATUS_CODEr#   r   Ú
from_tupler%   r&   r'   )r$   rN   s     r.   Ú_create_rpc_errorrR   ³   sa   € ô Ü×1Ñ1°&·+±+³-Ñ@Ü×ÑÐ,Ó-Ü×Ñ˜F×4Ñ4Ó6Ó7Ø—‘Ó Ø!×4Ñ4Ó6ôð r/   c                   óÎ  — e Zd ZU dZej
                  ed<   ej                  ed<   e	j                  ed<   eedf   ed<   ee   ed<   ee   ed<   d	e	j                  d
edee   dee   dej
                  ddfd„Zd#d„Zdefd„Zdedefd„Zdefd„Zdefd„Zdeddfd„Zdee   fd„Zdefd„Zdefd„Zdej                  fd„Zdefd„Z defd„Z!d#d„Z"defd „Z#defd!„Z$defd"„Z%y)$r   zyBase implementation of client RPC Call object.

    Implements logic around final status, metadata and cancellation.
    Ú_loopr   Ú_cython_call.Ú	_metadataÚ_request_serializerÚ_response_deserializerÚcython_callÚmetadataÚrequest_serializerÚresponse_deserializerÚloopr(   Nc                 ó\   — || _         || _        t        |«      | _        || _        || _        y r<   )rT   rU   ÚtuplerV   rW   rX   )r,   rY   rZ   r[   r\   r]   s         r.   r+   zCall.__init__Í   s.   € ð ˆŒ
Ø'ˆÔÜ˜x›ˆŒØ#5ˆÔ Ø&;ˆÕ#r/   c                 ó~   — t        | d«      r1| j                  j                  «       s| j                  t        «       y y y )NrU   )ÚhasattrrU   ÚdoneÚ_cancelÚ_GC_CANCELLATION_DETAILSr1   s    r.   Ú__del__zCall.__del__Û   s5   € ä�4˜Ô(Ø×$Ñ$×)Ñ)Ô+Ø—‘Ô5Õ6ð ,ð )r/   c                 ó6   — | j                   j                  «       S r<   )rU   Ú	cancelledr1   s    r.   rg   zCall.cancelledá   s   € Ø× Ñ ×*Ñ*Ó,Ð,r/   r&   c                 óp   — | j                   j                  «       s| j                   j                  |«       yy)z0Forwards the application cancellation reasoning.TF)rU   rb   Úcancel)r,   r&   s     r.   rc   zCall._cancelä   s.   € à× Ñ ×%Ñ%Ô'Ø×Ñ×$Ñ$ WÔ-ØØr/   c                 ó,   — | j                  t        «      S r<   )rc   Ú_LOCAL_CANCELLATION_DETAILSr1   s    r.   ri   zCall.cancelë   s   € Ø�|‰|Ô7Ó8Ð8r/   c                 ó6   — | j                   j                  «       S r<   )rU   rb   r1   s    r.   rb   z	Call.doneî   s   € Ø× Ñ ×%Ñ%Ó'Ð'r/   Úcallbackc                 óR   — t        || «      }| j                  j                  |«       y r<   )r   rU   Úadd_done_callback)r,   rm   Úcbs      r.   ro   zCall.add_done_callbackñ   s"   € Ü�X˜tÓ$ˆØ×Ñ×+Ñ+¨BÕ/r/   c                 ó6   — | j                   j                  «       S r<   )rU   Útime_remainingr1   s    r.   rr   zCall.time_remainingõ   s   € Ø× Ñ ×/Ñ/Ó1Ð1r/   c              ƒ   ó|   K  — | j                   j                  «       ƒ d {  –—† }t        j                  |«      S 7 Œ­wr<   )rU   r$   r   rQ   ©r,   Úraw_metadata_tuples     r.   r$   zCall.initial_metadataø   s6   è ø€ Ø#'×#4Ñ#4×#EÑ#EÓ#G×GÐÜ×"Ñ"Ð#5Ó6Ð6ð Hús   ‚< :¡<c              ƒ   ó˜   K  — | j                   j                  «       ƒ d {  –—† j                  «       }t        j                  |«      S 7 Œ'­wr<   )rU   rN   r%   r   rQ   rt   s     r.   r%   zCall.trailing_metadataü   sB   è ø€ à×#Ñ#×*Ñ*Ó,×,ß
Ñ
Ó
ð 	ô ×"Ñ"Ð#5Ó6Ð6ð -ús   ‚A
 A¡(A
c              ƒ   ó”   K  — | j                   j                  «       ƒ d {  –—† j                  «       }t        j                  |   S 7 Œ%­wr<   )rU   rN   r#   r   rP   )r,   Úcygrpc_codes     r.   r#   z	Call.code  s<   è ø€ Ø!×.Ñ.×5Ñ5Ó7×7×=Ñ=Ó?ˆÜ×8Ñ8¸ÑEÐEð 8ús   ‚A A¡&Ac              ƒ   ón   K  — | j                   j                  «       ƒ d {  –—† j                  «       S 7 Œ­wr<   )rU   rN   r&   r1   s    r.   r&   zCall.details  s*   è ø€ Ø×'Ñ'×.Ñ.Ó0×0×9Ñ9Ó;Ð;Ð0úó   ‚5 3¡5c              ƒ   ón   K  — | j                   j                  «       ƒ d {  –—† j                  «       S 7 Œ­wr<   )rU   rN   r'   r1   s    r.   r'   zCall.debug_error_string	  s*   è ø€ Ø×'Ñ'×.Ñ.Ó0×0×DÑDÓFÐFÐ0úrz   c              ƒ   ób  K  — | j                   j                  «       rt        j                  «       ‚| j	                  «       ƒ d {  –—† }|t
        j                  j                  k7  rBt        | j                  «       ƒ d {  –—† | j                   j                  «       ƒ d {  –—† «      ‚y 7 Œd7 Œ,7 Œ­wr<   )rU   Úis_locally_cancelledÚasyncioÚCancelledErrorr#   rH   rI   ÚOKrR   r$   rN   )r,   r#   s     r.   Ú_raise_for_statuszCall._raise_for_status  sŒ   è ø€ Ø×Ñ×1Ñ1Ô3Ü×(Ñ(Ó*Ð*Ø—Y‘Y“[× ˆØ”4—?‘?×%Ñ%Ò%Ü#Ø×+Ñ+Ó-×-Ø×'Ñ'×.Ñ.Ó0×0óð ð &ð !øð .øØ0ús6   ‚AB/ÁB)Á9B/Á>B+Á? B/ÂB-
Â 
B/Â+B/Â-B/c                 ó,   — t        | j                  «      S r<   )ÚreprrU   r1   s    r.   r:   z
Call._repr  s   € Ü�D×%Ñ%Ó&Ð&r/   c                 ó"   — | j                  «       S r<   r=   r1   s    r.   r>   zCall.__repr__  r?   r/   c                 ó"   — | j                  «       S r<   r=   r1   s    r.   rA   zCall.__str__  r?   r/   ©r(   N)&r9   rE   rF   rG   r~   ÚAbstractEventLooprJ   rH   rI   r   Ú_AioCallr	   r   r   r   r   r   r+   re   Úboolrg   rK   rc   ri   rb   r   ro   Úfloatrr   r$   r%   r#   r&   r'   r�   r:   r>   rA   © r/   r.   r   r   À   ss  … ñð
 ×$Ñ$Ó$Ø�?‰?ÓØ—/‘/Ó!Ø�] CÐ'Ñ(Ó(Ø!Ð"5Ñ6Ó6Ø$Ð%:Ñ;Ó;ð<à—_‘_ð<ð ð<ð %Ð%8Ñ9ð	<ð
  (Ð(=Ñ>ð<ð ×'Ñ'ð<ð 
ó<ó7ð-˜4ó -ð˜sð  tó ð9˜ó 9ð(�dó (ð0Ð*:ð 0¸tó 0ð2 ¨¡ó 2ð7¨ó 7ð7¨ó 7ðF˜DŸO™Oó Fð<˜só <ðG¨#ó Góð'�só 'ð˜#ó ð˜ô r/   r   c                   ó   — e Zd ZdZdZdZy)Ú	_APIStyler   r   é   N)r9   rE   rF   ÚUNKNOWNÚASYNC_GENERATORÚREADER_WRITERr‹   r/   r.   r�   r�      s   „ Ø€GØ€OØ�Mr/   r�   c                   ó|   ‡ — e Zd ZU ej                  ed<   dej                  fd„Zdefˆ fd„Zde	e
def   fd„Zˆ xZS )Ú_UnaryResponseMixinÚ_call_responseÚresponse_taskc                 ó   — || _         y r<   )r”   )r,   r•   s     r.   Ú_init_unary_response_mixinz._UnaryResponseMixin._init_unary_response_mixin)  s
   € Ø+ˆÕr/   r(   c                 óX   •— t         ‰| �  «       r| j                  j                  «        yy©NTF)r*   ri   r”   ©r,   r-   s    €r.   ri   z_UnaryResponseMixin.cancel,  s%   ø€ Ü‰7‰>ÔØ×Ñ×&Ñ&Ô(ØØr/   Nc              #   ó”  K  — 	 | j                   E d{  –—† }|t
        j                  u rb| j                  j                  «       rt        j                  «       ‚t        | j                  j                  | j                  j                  «      ‚|S 7 Œz# t        j                  $ r" | j                  «       s| j	                  «        ‚ w xY w­w)z+Wait till the ongoing RPC request finishes.N)r”   r~   r   rg   ri   r   ÚEOFrU   r}   rR   r    Ú_status)r,   Úresponses     r.   Ú	__await__z_UnaryResponseMixin.__await__2  s«   è ø€ ð		Ø"&×"5Ñ"5×5ˆHð ”v—z‘zÑ!Ø× Ñ ×5Ñ5Ô7Ü×,Ñ,Ó.Ð.ä'Ø×%Ñ%×7Ñ7Ø×%Ñ%×-Ñ-óð ð
 ˆOð1 6ùÜ×%Ñ%ò 	ð
 —>‘>Ô#Ø—‘”Øð	üs,   ‚C„B “B”B ˜A6CÂB Â5CÃC)r9   rE   rF   r~   ÚTaskrJ   r—   r‰   ri   r   r   r   rŸ   rL   rM   s   @r.   r“   r“   &  sA   ø… Ø—L‘LÓ ð,¸¿¹ó ,ð˜õ ð˜9 S¨$°Ð%<Ñ=÷ r/   r“   c                   óÊ   ‡ — e Zd ZU ee   ed<   ej                  ed<   eed<   dej                  fd„Z	defd„Z
defˆ fd	„Zdefd
„Zdee   fd„Zdefd„Zdeeef   fd„Zˆ xZS )Ú_StreamResponseMixinÚ_message_aiterÚ_preparationÚ_response_styleÚpreparationc                 óJ   — d | _         || _        t        j                  | _        y r<   )r£   r¤   r�   r�   r¥   )r,   r¦   s     r.   Ú_init_stream_response_mixinz0_StreamResponseMixin._init_stream_response_mixinU  s    € Ø"ˆÔØ'ˆÔÜ(×0Ñ0ˆÕr/   Ústylec                 óš   — | j                   t        j                  u r|| _         y | j                   |urt        j                  t
        «      ‚y r<   )r¥   r�   r�   r   Ú
UsageErrorÚ_API_STYLE_ERROR©r,   r©   s     r.   Ú_update_response_stylez+_StreamResponseMixin._update_response_styleZ  sC   € Ø×Ñ¤9×#4Ñ#4Ñ4Ø#(ˆDÕ Ø×!Ñ!¨Ñ.Ü×#Ñ#Ô$4Ó5Ð5ð /r/   r(   c                 óX   •— t         ‰| �  «       r| j                  j                  «        yyr™   )r*   ri   r¤   rš   s    €r.   ri   z_StreamResponseMixin.cancel`  s%   ø€ Ü‰7‰>ÔØ×Ñ×$Ñ$Ô&ØØr/   c                óü   K  — | j                  «       ƒ d {  –—† }|t        j                  ur0|­–— | j                  «       ƒ d {  –—† }|t        j                  urŒ0| j                  «       ƒ d {  –—†  y 7 Œ_7 Œ27 Œ	­wr<   )Ú_readr   rœ   r�   )r,   Úmessages     r.   Ú_fetch_stream_responsesz,_StreamResponseMixin._fetch_stream_responsesf  sf   è ø€ ØŸ
™
›×$ˆØœVŸZ™ZÑ'Ø‹MØ ŸJ™J›L×(ˆGð œVŸZ™ZÒ'ð
 ×$Ñ$Ó&×&Ñ&ð %øð )øð 	'ús9   ‚A<–A6—.A<ÁA8ÁA<ÁA<Á0A:Á1A<Á8A<Á:A<c                 óš   — | j                  t        j                  «       | j                  €| j	                  «       | _        | j                  S r<   )r®   r�   r�   r£   r³   r1   s    r.   Ú	__aiter__z_StreamResponseMixin.__aiter__o  s?   € Ø×#Ñ#¤I×$=Ñ$=Ô>Ø×ÑÐ&Ø"&×">Ñ">Ó"@ˆDÔØ×"Ñ"Ð"r/   c              ƒ   ót  K  — | j                   ƒ d {  –—†  	 | j                  j                  «       ƒ d {  –—† }|t        j                  u rt        j                  S t        j                  || j                  «      S 7 Œi7 ŒH# t        j                  $ r" | j                  «       s| j                  «        ‚ w xY w­wr<   )r¤   rU   Úreceive_serialized_messager~   r   rg   ri   r   rœ   r   ÚdeserializerX   )r,   Úraw_responses     r.   r±   z_StreamResponseMixin._readu  s˜   è ø€ à×Ñ×Ðð	Ø!%×!2Ñ!2×!MÑ!MÓ!O×OˆLð œ6Ÿ:™:Ñ%Ü—:‘:ÐÜ×"Ñ" <°×1LÑ1LÓMÐMð 	 øð PùÜ×%Ñ%ò 	Ø—>‘>Ô#Ø—‘”Øð	üs6   ‚B8’A<“B8˜B  µA>¶B  ºAB8Á>B  Â 5B5Â5B8c              ƒ   óL  K  — | j                  «       r(| j                  «       ƒ d {  –—†  t        j                  S | j	                  t
        j                  «       | j                  «       ƒ d {  –—† }|t        j                  u r| j                  «       ƒ d {  –—†  |S 7 Œw7 Œ27 Œ
­wr<   )rb   r�   r   rœ   r®   r�   r‘   r±   )r,   Úresponse_messages     r.   Úreadz_StreamResponseMixin.read…  sƒ   è ø€ Ø�9‰9Œ;Ø×(Ñ(Ó*×*Ð*Ü—:‘:ÐØ×#Ñ#¤I×$;Ñ$;Ô<à!%§¡£×-ÐàœvŸz™zÑ)à×(Ñ(Ó*×*Ð*ØÐð +øð .øð +ús4   ‚$B$¦B§AB$Á-B Á.)B$ÂB"ÂB$Â B$Â"B$)r9   rE   rF   r   r   rJ   r~   r    r�   r¨   r®   r‰   ri   r³   rµ   r±   r
   r   r¼   rL   rM   s   @r.   r¢   r¢   P  s‡   ø… Ø! ,Ñ/Ó/Ø—,‘,ÓØÓð1°w·|±|ó 1ð
6¨Ió 6ð˜õ ð'¨|ó 'ð#˜=¨Ñ6ó #ðN˜\ó Nð  ˜E '¨<Ð"7Ñ8÷  r/   r¢   c                   óè   ‡ — e Zd ZU ej                  ed<   eed<   eej                     ed<   e	ed<   dee
   fd„Zde	fd„Zd	efˆ fd
„Zd„ Zde
d	dfd„Zded	dfd„Zdd„Zded	dfd„Zdd„Zdd„Zˆ xZS )Ú_StreamRequestMixinÚ_metadata_sentÚ_done_writing_flagÚ_async_request_pollerÚ_request_styleÚrequest_iteratorc                 ó
  — t        j                  «       | _        d| _        |�E| j                  j                  | j                  |«      «      | _        t        j                  | _
        y d | _        t        j                  | _
        y )NF)r~   ÚEventr¿   rÀ   rT   Úcreate_taskÚ_consume_request_iteratorrÁ   r�   r�   rÂ   r‘   )r,   rÃ   s     r.   Ú_init_stream_request_mixinz._StreamRequestMixin._init_stream_request_mixin™  sn   € ô &Ÿm™m›oˆÔØ"'ˆÔð Ð'Ø)-¯©×)?Ñ)?Ø×.Ñ.Ð/?Ó@ó*ˆDÔ&ô #,×";Ñ";ˆDÕà)-ˆDÔ&Ü"+×"9Ñ"9ˆDÕr/   r©   c                 óR   — | j                   |urt        j                  t        «      ‚y r<   )rÂ   r   r«   r¬   r­   s     r.   Ú_raise_for_different_stylez._StreamRequestMixin._raise_for_different_style©  s'   € Ø×Ñ eÑ+Ü×#Ñ#Ô$4Ó5Ð5ð ,r/   r(   c                 óp   •— t         ‰| �  «       r'| j                  �| j                  j                  «        yyr™   )r*   ri   rÁ   rš   s    €r.   ri   z_StreamRequestMixin.cancel­  s1   ø€ Ü‰7‰>ÔØ×)Ñ)Ð5Ø×*Ñ*×1Ñ1Ô3ØØr/   c                 ó8   — | j                   j                  «        y r<   )r¿   Úsetr1   s    r.   Ú_metadata_sent_observerz+_StreamRequestMixin._metadata_sent_observer´  s   € Ø×Ñ×ÑÕ!r/   Nc              ƒ   óT  K  — 	 t        j                  |«      st        |d«      r&|2 3 d {  –—† }	 | j                  |«      ƒ d {  –—†  Œ$|D ]  }	 | j                  |«      ƒ d {  –—†  Œ | j                  «       ƒ d {  –—†  y 7 ŒY7 ŒA# t        $ r!}t
        j                  d|«       Y d }~ y d }~ww xY w6 ŒL7 ŒR# t        $ r!}t
        j                  d|«       Y d }~ y d }~ww xY w7 Œg#  t
        j                  dt        j                  «       «       | j                  «        Y y xY w­w)Nrµ   z2Exception while consuming the request_iterator: %sz,Client request_iterator raised exception:
%s)ÚinspectÚ
isasyncgenra   Ú_writer   Ú_LOGGERÚdebugÚ_done_writingÚ	tracebackÚ
format_excri   )r,   rÃ   ÚrequestÚ	rpc_errors       r.   rÇ   z-_StreamRequestMixin._consume_request_iterator·  s&  è ø€ ð'	Ü×!Ñ!Ð"2Ô3´wØ  +ô8ð &6÷ ð ˜'ð
Ø"Ÿk™k¨'Ó2×2Ñ2ð  0ò �Gð
Ø"Ÿk™k¨'Ó2×2Ñ2ðð ×$Ñ$Ó&×&Ñ&ð5øà2ùÜ&ò ÜŸ™ð!8ð &ôõ ûðúñ &6ð 3ùÜ&ò ÜŸ™ð!8ð &ôõ ûðúð 'ùð	ô �M‰MØ?Ü×$Ñ$Ó&ôð �K‰KŽMüsÅ   ‚D(„#C) §B6«B¬B6¯C) ±B	ÁBÁB	Á
C) ÁB:Á%B8Á&B:Á*C) Á?C'Â C) ÂD(ÂB6ÂB	Â		B3ÂB.Â(C) Â-D(Â.B3Â3C) Â8B:Â:	C$ÃCÃC) ÃD(ÃC$Ã$C) Ã):D%Ä#D(rØ   c              ƒ   ó$  K  — | j                  «       rt        j                  t        «      ‚| j                  rt        j                  t
        «      ‚| j                  j                  «       sJ| j                  j                  «       ƒ d {  –—†  | j                  «       r| j                  «       ƒ d {  –—†  t        j                  || j                  «      }	 | j                  j                  |«      ƒ d {  –—†  y 7 Œq7 ŒK7 Œ	# t        j                   $ rG}| j                  j#                  t%        |«      «       | j                  «       ƒ d {  –—†7   Y d }~y d }~wt        j&                  $ r" | j)                  «       s| j+                  «        ‚ w xY w­wr<   )rb   r~   ÚInvalidStateErrorÚ_RPC_ALREADY_FINISHED_DETAILSrÀ   Ú_RPC_HALF_CLOSED_DETAILSr¿   Úis_setÚwaitr�   r   Ú	serializerW   rU   Úsend_serialized_messager   ÚInternalErrorÚset_internal_errorrK   r   rg   ri   )r,   rØ   Úserialized_requestÚerrs       r.   rÒ   z_StreamRequestMixin._writeã  s0  è ø€ Ø�9‰9Œ;Ü×+Ñ+Ô,IÓJÐJØ×"Ò"Ü×+Ñ+Ô,DÓEÐEØ×"Ñ"×)Ñ)Ô+Ø×%Ñ%×*Ñ*Ó,×,Ð,Ø�y‰yŒ{Ø×,Ñ,Ó.×.Ð.ä$×.Ñ.Ø�T×-Ñ-ó
Ðð	Ø×#Ñ#×;Ñ;Ð<NÓO×OÑOð -øà.øð PùÜ×#Ñ#ò 	+Ø×Ñ×0Ñ0´°S³Ô:Ø×(Ñ(Ó*×*Ö*ûÜ×%Ñ%ò 	Ø—>‘>Ô#Ø—‘”Øð	üsl   ‚BFÂC:Â	'FÂ0C<Â1$FÃD  Ã4C>Ã5D  Ã9FÃ<FÃ>D  Ä FÄ7EÅ
EÅEÅFÅ8FÆFc              ƒ   ó  K  — | j                  «       ry | j                  s+d| _        	 | j                  j                  «       ƒ d {  –—†  y y 7 Œ# t        j
                  $ r" | j                  «       s| j                  «        ‚ w xY w­w)NT)rb   rÀ   rU   Úsend_receive_closer~   r   rg   ri   r1   s    r.   rÕ   z!_StreamRequestMixin._done_writingú  st   è ø€ Ø�9‰9Œ;àØ×&Ò&à&*ˆDÔ#ðØ×'Ñ'×:Ñ:Ó<×<Ñ<ð	 'ð =ùÜ×)Ñ)ò Ø—~‘~Ô'Ø—K‘K”MØðüs.   ‚%B¨A ÁAÁA Á
BÁA Á5BÂBc              ƒ   ó€   K  — | j                  t        j                  «       | j                  |«      ƒ d {  –—†  y 7 Œ­wr<   )rÊ   r�   r‘   rÒ   )r,   rØ   s     r.   Úwritez_StreamRequestMixin.write  s,   è ø€ Ø×'Ñ'¬	×(?Ñ(?Ô@Ø�k‰k˜'Ó"×"Ò"ús   ‚4>¶<·>c              ƒ   ó~   K  — | j                  t        j                  «       | j                  «       ƒ d{  –—†  y7 Œ­w)zUSignal peer that client is done writing.

        This method is idempotent.
        N)rÊ   r�   r‘   rÕ   r1   s    r.   Údone_writingz _StreamRequestMixin.done_writing  s.   è ø€ ð
 	×'Ñ'¬	×(?Ñ(?Ô@Ø× Ñ Ó"×"Ò"ús   ‚3=µ;¶=c              ƒ   óª   K  — | j                   j                  «       ƒ d {  –—†  | j                  «       r| j                  «       ƒ d {  –—†  y y 7 Œ.7 Œ­wr<   )r¿   rß   rb   r�   r1   s    r.   Úwait_for_connectionz'_StreamRequestMixin.wait_for_connection  sG   è ø€ Ø×!Ñ!×&Ñ&Ó(×(Ð(Ø�9‰9Œ;Ø×(Ñ(Ó*×*Ñ*ð ð 	)øà*ús!   ‚A A¡'AÁAÁ	AÁAr†   )r9   rE   rF   r~   rÅ   rJ   r‰   r   r    r�   r   rÈ   rÊ   ri   rÎ   rÇ   r   rÒ   rÕ   ré   rë   rí   rL   rM   s   @r.   r¾   r¾   “  s£   ø… Ø—M‘MÓ!ØÓØ# G§L¡LÑ1Ó1ØÓð:Ø (Ð)<Ñ =ó:ð 6°	ó 6ð˜õ ò"ð*Ø 3ð*à	ó*ðX Kð °Dó ó.ð# ;ð #°4ó #ó#÷+r/   r¾   c                   óè   ‡ — e Zd ZU dZeed<   ej                  ed<   dedee	   de
deej                     dee   d	ej                  d
edee   dee   dej&                  ddfˆ fd„Zdefd„Zdd„Zˆ xZS )r   z}Object for managing unary-unary RPC calls.

    Returned when an instance of `UnaryUnaryMultiCallable` object is called.
    Ú_requestÚ_invocation_taskrØ   ÚdeadlinerZ   ÚcredentialsÚwait_for_readyÚchannelÚmethodr[   r\   r]   r(   Nc                 ó  •— t         ‰| �  |j                  ||||«      |||	|
«       || _        t	        j
                  «       | _        |
j                  | j                  «       «      | _	        | j                  | j                  «       y r<   )r*   r+   Úcallrï   r   Úbuild_census_contextÚ_contextrÆ   Ú_invokerð   r—   ©r,   rØ   rñ   rZ   rò   ró   rô   rõ   r[   r\   r]   r-   s              €r.   r+   zUnaryUnaryCall.__init__$  sv   ø€ ô 	‰ÑØ�L‰L˜ ¨;¸ÓGØØØ!Øô	
ð  ˆŒÜ×3Ñ3Ó5ˆŒØ $× 0Ñ 0°·±³Ó @ˆÔØ×'Ñ'¨×(=Ñ(=Õ>r/   c              ƒ   óÜ  K  — t        j                  | j                  | j                  «      }	 | j                  j                  || j                  | j                  «      ƒ d {  –—† }| j                  j                  «       r t        j                  | j                  «      S t        j                   S 7 ŒN# t        j                  $ r# | j                  «       s| j                  «        Y Œ�w xY w­wr<   )r   rà   rï   rW   rU   Úunary_unaryrV   rù   r~   r   rg   ri   Úis_okr¸   rX   r   rœ   )r,   rä   Úserialized_responses      r.   rú   zUnaryUnaryCall._invoke=  sÃ   è ø€ Ü$×.Ñ.Ø�M‰M˜4×3Ñ3ó
Ðð	Ø(,×(9Ñ(9×(EÑ(EØ" D§N¡N°D·M±Mó)÷ #Ðð ×Ñ×"Ñ"Ô$Ü×&Ñ&Ø# T×%@Ñ%@óð ô �z‰zÐð#ùô ×%Ñ%ò 	Ø—>‘>Ô#Ø—‘”ùð	üs;   ‚+C,®4B3 Á"B1Á#B3 Á'A
C,Â1B3 Â33C)Ã&C,Ã(C)Ã)C,c              ƒ   óŽ   K  — | j                   ƒ d {  –—†  | j                  «       r| j                  «       ƒ d {  –—†  y y 7 Œ.7 Œ­wr<   )rð   rb   r�   r1   s    r.   rí   z"UnaryUnaryCall.wait_for_connectionS  s>   è ø€ Ø×#Ñ#×#Ð#Ø�9‰9Œ;Ø×(Ñ(Ó*×*Ñ*ð ð 	$øà*úó   ‚A’A“'AºA»AÁAr†   )r9   rE   rF   rG   r   rJ   r~   r    r   rŠ   r   rH   ÚCallCredentialsr‰   r   Ú
AioChannelÚbytesr   r   r‡   r+   r   rú   rí   rL   rM   s   @r.   r   r     sÇ   ø… ñð
 ÓØ—l‘lÓ"ð?àð?ð ˜5‘/ð?ð ð	?ð
 ˜d×2Ñ2Ñ3ð?ð ! ™ð?ð ×"Ñ"ð?ð ð?ð %Ð%8Ñ9ð?ð  (Ð(=Ñ>ð?ð ×'Ñ'ð?ð 
õ?ð2˜|ó ÷,+r/   r   c                   óè   ‡ — e Zd ZU dZeed<   ej                  ed<   dedee	   de
deej                     dee   d	ej                  d
edee   dee   dej&                  ddfˆ fd„Zdefd„Zdd„Zˆ xZS )r   zObject for managing unary-stream RPC calls.

    Returned when an instance of `UnaryStreamMultiCallable` object is called.
    rï   Ú_send_unary_request_taskrØ   rñ   rZ   rò   ró   rô   rõ   r[   r\   r]   r(   Nc                 ó  •— t         ‰| �  |j                  ||||«      |||	|
«       || _        t	        j
                  «       | _        |
j                  | j                  «       «      | _	        | j                  | j                  «       y r<   )r*   r+   r÷   rï   r   rø   rù   rÆ   Ú_send_unary_requestr  r¨   rû   s              €r.   r+   zUnaryStreamCall.__init__c  s~   ø€ ô 	‰ÑØ�L‰L˜ ¨;¸ÓGØØØ!Øô	
ð  ˆŒÜ×3Ñ3Ó5ˆŒØ(,×(8Ñ(8Ø×$Ñ$Ó&ó)
ˆÔ%ð 	×(Ñ(¨×)FÑ)FÕGr/   c              ƒ   óH  K  — t        j                  | j                  | j                  «      }	 | j                  j                  || j                  | j                  «      ƒ d {  –—†  y 7 Œ# t        j                  $ r" | j                  «       s| j                  «        ‚ w xY w­wr<   )r   rà   rï   rW   rU   Úinitiate_unary_streamrV   rù   r~   r   rg   ri   )r,   rä   s     r.   r  z#UnaryStreamCall._send_unary_request~  s„   è ø€ Ü$×.Ñ.Ø�M‰M˜4×3Ñ3ó
Ðð	Ø×#Ñ#×9Ñ9Ø" D§N¡N°D·M±Mó÷ ò ùô ×%Ñ%ò 	Ø—>‘>Ô#Ø—‘”Øð	üs.   ‚+B"®4A* Á"A(Á#A* Á'B"Á(A* Á*5BÂB"c              ƒ   óŽ   K  — | j                   ƒ d {  –—†  | j                  «       r| j                  «       ƒ d {  –—†  y y 7 Œ.7 Œ­wr<   )r  rb   r�   r1   s    r.   rí   z#UnaryStreamCall.wait_for_connection‹  s>   è ø€ Ø×+Ñ+×+Ð+Ø�9‰9Œ;Ø×(Ñ(Ó*×*Ñ*ð ð 	,øà*úr  r†   )r9   rE   rF   rG   r   rJ   r~   r    r   rŠ   r   rH   r  r‰   r   r  r  r   r   r‡   r+   r   r  rí   rL   rM   s   @r.   r   r   Y  sÓ   ø… ñð
 ÓØ%Ÿl™lÓ*ðHàðHð ˜5‘/ðHð ð	Hð
 ˜d×2Ñ2Ñ3ðHð ! ™ðHð ×"Ñ"ðHð ðHð %Ð%8Ñ9ðHð  (Ð(=Ñ>ðHð ×'Ñ'ðHð 
õHð6¨<ó ÷+r/   r   c                   ó¼   ‡ — e Zd ZdZdee   dee   dedeej                     dee
   dej                  ded	ee   d
ee   dej"                  ddfˆ fd„Zdefd„Zˆ xZS )ÚStreamUnaryCallzObject for managing stream-unary RPC calls.

    Returned when an instance of `StreamUnaryMultiCallable` object is called.
    rÃ   rñ   rZ   rò   ró   rô   rõ   r[   r\   r]   r(   Nc                 ó   •— t         ‰| �  |j                  ||||«      |||	|
«       t        j                  «       | _        | j                  |«       | j                  |
j                  | j                  «       «      «       y r<   )
r*   r+   r÷   r   rø   rù   rÈ   r—   rÆ   Ú_conduct_rpc©r,   rÃ   rñ   rZ   rò   ró   rô   rõ   r[   r\   r]   r-   s              €r.   r+   zStreamUnaryCall.__init__›  ss   ø€ ô 	‰ÑØ�L‰L˜ ¨;¸ÓGØØØ!Øô	
ô ×3Ñ3Ó5ˆŒØ×'Ñ'Ð(8Ô9Ø×'Ñ'¨×(8Ñ(8¸×9JÑ9JÓ9LÓ(MÕNr/   c              ƒ   óš  K  — 	 | j                   j                  | j                  | j                  | j                  «      ƒ d {  –—† }| j                   j                  «       r t        j                  || j                  «      S t        j                  S 7 ŒN# t
        j                  $ r" | j                  «       s| j                  «        ‚ w xY w­wr<   )rU   Ústream_unaryrV   rÎ   rù   r~   r   rg   ri   rþ   r   r¸   rX   r   rœ   )r,   rÿ   s     r.   r  zStreamUnaryCall._conduct_rpc´  s«   è ø€ ð	Ø(,×(9Ñ(9×(FÑ(FØ—‘ × <Ñ <¸d¿m¹mó)÷ #Ðð ×Ñ×"Ñ"Ô$Ü×&Ñ&Ø# T×%@Ñ%@óð ô �z‰zÐð#ùô ×%Ñ%ò 	Ø—>‘>Ô#Ø—‘”Øð	üs/   ‚C„>B ÁBÁB ÁA
CÂB Â5CÃC)r9   rE   rF   rG   r   r   rŠ   r   rH   r  r‰   r   r  r  r   r   r~   r‡   r+   r   r  rL   rM   s   @r.   r  r  ’  sÂ   ø„ ñðOà"Ð#6Ñ7ðOð ˜5‘/ðOð ð	Oð
 ˜d×2Ñ2Ñ3ðOð ! ™ðOð ×"Ñ"ðOð ðOð %Ð%8Ñ9ðOð  (Ð(=Ñ>ðOð ×'Ñ'ðOð 
õOð2 L÷ r/   r  c                   óÖ   ‡ — e Zd ZU dZej
                  ed<   dee   dee	   de
deej                     dee   dej                  d	ed
ee   dee   dej&                  ddfˆ fd„Zd„ Zˆ xZS )ÚStreamStreamCallz�Object for managing stream-stream RPC calls.

    Returned when an instance of `StreamStreamMultiCallable` object is called.
    Ú_initializerrÃ   rñ   rZ   rò   ró   rô   rõ   r[   r\   r]   r(   Nc                 ó6  •— t         ‰| �  |j                  ||||«      |||	|
«       t        j                  «       | _        | j                  j                  | j                  «       «      | _	        | j                  |«       | j                  | j                  «       y r<   )r*   r+   r÷   r   rø   rù   rT   rÆ   Ú_prepare_rpcr  rÈ   r¨   r  s              €r.   r+   zStreamStreamCall.__init__Ð  s…   ø€ ô 	‰ÑØ�L‰L˜ ¨;¸ÓGØØØ!Øô	
ô ×3Ñ3Ó5ˆŒØ ŸJ™J×2Ñ2°4×3DÑ3DÓ3FÓGˆÔØ×'Ñ'Ð(8Ô9Ø×(Ñ(¨×):Ñ):Õ;r/   c              ƒ   ó  K  — 	 | j                   j                  | j                  | j                  | j                  «      ƒ d{  –—†  y7 Œ# t
        j                  $ r% | j                  «       s| j                  «        Y yY yw xY w­w)z©Prepares the RPC for receiving/sending messages.

        All other operations around the stream should only happen after the
        completion of this method.
        N)	rU   Úinitiate_stream_streamrV   rÎ   rù   r~   r   rg   ri   r1   s    r.   r  zStreamStreamCall._prepare_rpcé  sl   è ø€ ð	Ø×#Ñ#×:Ñ:Ø—‘ × <Ñ <¸d¿m¹mó÷ ò ùô ×%Ñ%ò 	Ø—>‘>Ô#Ø—‘–ñ $ð	üs:   ‚B„>A
 ÁAÁA
 ÁBÁA
 Á
3BÁ=BÂBÂB)r9   rE   rF   rG   r~   r    rJ   r   r   rŠ   r   rH   r  r‰   r   r  r  r   r   r‡   r+   r  rL   rM   s   @r.   r  r  Å  s»   ø… ñð
 —,‘,Óð<à"Ð#6Ñ7ð<ð ˜5‘/ð<ð ð	<ð
 ˜d×2Ñ2Ñ3ð<ð ! ™ð<ð ×"Ñ"ð<ð ð<ð %Ð%8Ñ9ð<ð  (Ð(=Ñ>ð<ð ×'Ñ'ð<ð 
õ<ö2r/   r  );rG   r~   ÚenumÚ	functoolsr   rÐ   ÚloggingrÖ   Útypingr   r   r   r   r   r	   r
   rH   r   Úgrpc._cythonr   Ú r   rV   r   Ú_typingr   r   r   r   r   r   r   r   r   Ú__all__rk   rd   rÜ   rÝ   r¬   Ú_OK_CALL_REPRESENTATIONr7   Ú	getLoggerr9   rÓ   ÚRpcErrorr   ÚAioRpcStatusrR   r   ÚIntEnumr�   r“   r¢   r¾   r   r   r  r  r‹   r/   r.   ú<module>r'     s‘  ðñ =ã Û Ý Û Û Û ÷÷ ñ ó Ý Ý å Ý Ý *Ý %Ý Ý !Ý "Ý (Ý  Ý !Ý (à
D€àAÐ Ø?Ð Ø 7Ð ØMÐ àHð ð
 Kð ð
ð ð ˆ'×
Ñ
˜HÓ
%€ôg
�$—-‘-ô g
ðT
Ø"ð
à×Ñð
ð ó
÷]ñ ]ô@�—‘ô ô'˜$ ¨Ñ 5ô 'ôT@ ˜4ô @ ôFD+˜$ô D+ôN<+Ð(¨$°
×0IÑ0Iô <+ô~5+Ð*¨D°*×2LÑ2Lô 5+ôr0ØÐ,¨d°J×4NÑ4Nô0ôf0ØÐ-¨t°Z×5PÑ5Põ0r/   