
    (ph                     f   S r SSKrSSKrSSKrSSKrSSKJrJrJrJ	r	  SSK
r
SSK
Jr  SSKJr  \R                  " \5      rSr " S S\R$                  " S	S
5      \
R&                  5      r " S S\
R(                  5      r " S S\
R,                  5      rS\
R0                  S\4S jrS\S\S\4S jrg)z#Internal utilities for gRPC Python.    N)CallableDictOptionalSequence)_common)DoneCallbackTypez6Exception calling connectivity future "done" callback!c                       \ rS rSrSrg)RpcMethodHandler!    N)__name__
__module____qualname____firstlineno____static_attributes__r       B/var/www/html/venv/lib/python3.13/site-packages/grpc/_utilities.pyr
   r
   !   s      	r   r
   _RpcMethodHandler)request_streamingresponse_streamingrequest_deserializerresponse_serializerunary_unaryunary_streamstream_unarystream_streamc                       \ rS rSr% \\S'   \\\R                  4   \S'   S\S\\\R                  4   4S jr	S\4S jr
S	\R                  S\\R                     4S
 jrSrg)DictionaryGenericHandler4   _name_method_handlersservicemethod_handlersc                     Xl         UR                  5        VVs0 s H  u  p4[        R                  " X5      U_M     snnU l        g s  snnf N)r    itemsr   fully_qualified_methodr!   )selfr"   r#   methodmethod_handlers        r   __init__!DictionaryGenericHandler.__init__8   sL     
 +:*?*?*A!
*A& **7;^K*A!
 !
s   #Areturnc                     U R                   $ r%   )r    r(   s    r   service_name%DictionaryGenericHandler.service_nameA   s    zzr   handler_call_detailsc                 P    UR                   nU R                  R                  U5      $ r%   )r)   r!   get)r(   r2   details_methods      r   r"    DictionaryGenericHandler.serviceD   s+     .44$$((
 	
r   )r!   r    N)r   r   r   r   str__annotations__r   grpcr
   r+   r0   HandlerCallDetailsr   r"   r   r   r   r   r   r   4   st    J3 5 5566

-1#t7L7L2L-M
c 
$($;$;
	$''	(
r   r   c                      \ rS rSr% \R
                  \S'   \R                  \S'   \	\S'   \	\S'   \
\   \S'   S\R                  4S jrS	\\   S
S4S jrS\\R                      S
S4S jrS
\	4S jrS
\	4S jrS
\	4S jrS
\	4S jrSS	\\   S
S4S jjrSS	\\   S
S4S jjrSS	\\   S
S4S jjrS\4S jrS rS rSrg)_ChannelReadyFutureM   
_condition_channel_matured
_cancelled_done_callbackschannelc                 n    [         R                  " 5       U l        Xl        SU l        SU l        / U l        g )NF)	threading	Conditionr>   r?   r@   rA   rB   )r(   rC   s     r   r+   _ChannelReadyFuture.__init__T   s-    #--/!r   timeoutr-   Nc                    Uc  S O[         R                   " 5       U-   nU R                      U R                  (       a  [        R                  " 5       eU R
                  (       a
   S S S 5        g Uc  U R                  R                  5         OLU[         R                   " 5       -
  nUS:  a  [        R                  " 5       eU R                  R                  US9  M  ! , (       d  f       g = f)Nr   )rH   )timer>   rA   r9   FutureCancelledErrorr@   waitFutureTimeoutError)r(   rH   until	remainings       r   _block_ChannelReadyFuture._block\   s    TYY[7-B__??3355]] _ },,.$)DIIK$7	$q="&"9"9";; OO000C  _s   :C-A,C
C'connectivityc                     U R                      U R                  (       d  U[        R                  R                  L ac  SU l        U R                  R                  U R                  5        U R                   R                  5         [        U R                  5      nS U l        O
 S S S 5        g  S S S 5        W H  n U" U 5        M     g ! , (       d  f       N!= f! [         a    [        R                  [        5         MH  f = f)NT)r>   rA   r9   ChannelConnectivityREADYr@   r?   unsubscribe_update
notify_alltuplerB   	Exception_LOGGER	exception$_DONE_CALLBACK_EXCEPTION_LOG_MESSAGE)r(   rR   done_callbacksdone_callbacks       r   rW   _ChannelReadyFuture._updaten   s    __OO D$<$<$B$BB $))$,,7**,!&t';';!<'+$ _ %  ,MHd# , _   H!!"FGHs   BC8C
C#C=<C=c                    U R                      U R                  (       dc  SU l        U R                  R	                  U R
                  5        U R                   R                  5         [        U R                  5      nS U l        O
 S S S 5        g S S S 5        W H  n U" U 5        M     g! , (       d  f       N!= f! [         a    [        R                  [        5         MH  f = f)NTF)r>   r@   rA   r?   rV   rW   rX   rY   rB   rZ   r[   r\   r]   )r(   r^   r_   s      r   cancel_ChannelReadyFuture.cancel   s    __=="&))$,,7**,!&t';';!<'+$ _ %  ,MHd# , ! _  H!!"FGHs   A6B(B9(
B69#C C c                 h    U R                      U R                  sS S S 5        $ ! , (       d  f       g = fr%   )r>   rA   r/   s    r   	cancelled_ChannelReadyFuture.cancelled   s    __?? __s   #
1c                     U R                      U R                  (       + =(       a    U R                  (       + sS S S 5        $ ! , (       d  f       g = fr%   r>   rA   r@   r/   s    r   running_ChannelReadyFuture.running   s)    __&<t}}+< __s   )A  
Ac                     U R                      U R                  =(       d    U R                  sS S S 5        $ ! , (       d  f       g = fr%   rh   r/   s    r   done_ChannelReadyFuture.done   s#    __??3dmm __s	   6
Ac                 &    U R                  U5        g r%   rP   r(   rH   s     r   result_ChannelReadyFuture.result       Gr   c                 &    U R                  U5        g r%   ro   rp   s     r   r\   _ChannelReadyFuture.exception   rs   r   c                 &    U R                  U5        g r%   ro   rp   s     r   	traceback_ChannelReadyFuture.traceback   rs   r   fnc                     U R                      U R                  (       d6  U R                  (       d%  U R                  R	                  U5         S S S 5        g S S S 5        U" U 5        g ! , (       d  f       N= fr%   )r>   rA   r@   rB   append)r(   ry   s     r   add_done_callback%_ChannelReadyFuture.add_done_callback   sG    __??4==$$++B/ __
 	4 _s   ?A&&
A4c                     U R                      U R                  R                  U R                  SS9  S S S 5        g ! , (       d  f       g = f)NT)try_to_connect)r>   r?   	subscriberW   r/   s    r   start_ChannelReadyFuture.start   s.    __MM##DLL#F __s	   %;
A	c                     U R                      U R                  (       d6  U R                  (       d%  U R                  R	                  U R
                  5        S S S 5        g ! , (       d  f       g = fr%   )r>   rA   r@   r?   rV   rW   r/   s    r   __del___ChannelReadyFuture.__del__   s6    __??4==))$,,7 __s   AA
A,)rA   r?   r>   rB   r@   r%   )r   r   r   r   rE   rF   r8   r9   Channelboolr   r   r+   r   floatrP   rT   rW   rb   re   ri   rl   rq   r\   rw   r   r|   r   r   r   r   r   r   r<   r<   M   s   ###llNh''" "Dhuo D$ D$HHT-E-E$F H4 H( &#4 #= =4d 4huo  % D % D $4 G8r   r<   rC   r-   c                 <    [        U 5      nUR                  5         U$ r%   )r<   r   )rC   ready_futures     r   channel_ready_futurer      s    &w/Lr   version1version2c                 2   U R                  S5      nUR                  S5      n [        S5       H?  n[        X$   5      [        X4   5      :  a    g[        X$   5      [        X4   5      :  d  M?    g   [	        U5      [	        U5      :  $ ! [         a     gf = f)a\  
Compares two versions in the format '1.60.1' or '1.60.1.dev0'.

This method will be used in all stubs generated by grpcio-tools to check whether
the stub version is compatible with the runtime grpcio.

Args:
    version1: The first version string.
    version2: The second version string.

Returns:
    True if version1 is lower, False otherwise.
.   TF)splitrangeint
ValueErrorlen)r   r   version1_listversion2_listis        r   first_version_is_lowerr      s     NN3'MNN3'MqA=#$s=+;'<<]%&]-=)>>	  }M 222  s#   +B	 B	 .B	 0B	 	
BB)__doc__collectionsloggingrE   rJ   typingr   r   r   r   r9   r   grpc._typingr   	getLoggerr   r[   r]   
namedtupler
   ServiceRpcHandlerr   Futurer<   r   r   r7   r   r   r   r   r   <module>r      s    *     5 5   )


H
% = %
			
 		&
t55 
2l8$++ l8^$,, 3F 3S 3C 3D 3r   