
    Ng9                        d Z ddlZddl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Z G d dej                  Z G d dej                  Zd Zd Z G d dej                  Zd Zd Zd Zd Zd Z G d d ej        dd          ej                   Z!d Z"d Z# G d  d!ej$                  Z% G d" d#ej&                  Z'd$ Z(dS )%zCTranslates gRPC's server-side API into gRPC's server-side Beta API.    N)_common)	_metadata)
interfaces)cardinality)style)abandonment)logging_pool)stream)face   c                        e Zd Zd Zd Zd ZdS )_ServerProtocolContextc                     || _         d S N_servicer_contextselfservicer_contexts     Y/var/www/html/ai-engine/env/lib/python3.11/site-packages/grpc/beta/_server_adaptations.py__init__z_ServerProtocolContext.__init__$       !1    c                 4    | j                                         S r   )r   peerr   s    r   r   z_ServerProtocolContext.peer'   s    %**,,,r   c                     d S r    r   s    r   !disable_next_response_compressionz8_ServerProtocolContext.disable_next_response_compression*   s    r   N)__name__
__module____qualname__r   r   r   r   r   r   r   r   #   sA        2 2 2- - -    r   r   c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )_FaceServicerContextc                     || _         d S r   r   r   s     r   r   z_FaceServicerContext.__init__/   r   r   c                 4    | j                                         S r   )r   	is_activer   s    r   r'   z_FaceServicerContext.is_active2   s    %//111r   c                 4    | j                                         S r   )r   time_remainingr   s    r   r)   z#_FaceServicerContext.time_remaining5   s    %44666r   c                      t          d          )Nz6add_abortion_callback no longer supported server-side!)NotImplementedError)r   abortion_callbacks     r   add_abortion_callbackz*_FaceServicerContext.add_abortion_callback8   s    !D
 
 	
r   c                 8    | j                                          d S r   )r   cancelr   s    r   r/   z_FaceServicerContext.cancel=   s    %%'''''r   c                 *    t          | j                  S r   )r   r   r   s    r   protocol_contextz%_FaceServicerContext.protocol_context@   s    %d&<===r   c                 X    t          j        | j                                                  S r   )r   betar   invocation_metadatar   s    r   r4   z(_FaceServicerContext.invocation_metadataC   s!    ~d4HHJJKKKr   c                 ^    | j                             t          j        |                     d S r   )r   send_initial_metadatar   unbeta)r   initial_metadatas     r   r8   z%_FaceServicerContext.initial_metadataF   s6    44-..	
 	
 	
 	
 	
r   c                 ^    | j                             t          j        |                     d S r   )r   set_terminal_metadatar   r7   )r   terminal_metadatas     r   r;   z&_FaceServicerContext.terminal_metadataK   s6    44.//	
 	
 	
 	
 	
r   c                 :    | j                             |           d S r   )r   set_code)r   codes     r   r>   z_FaceServicerContext.codeP   s    ''-----r   c                 :    | j                             |           d S r   )r   set_details)r   detailss     r   rA   z_FaceServicerContext.detailsS   s    **733333r   N)r    r!   r"   r   r'   r)   r-   r/   r1   r4   r8   r;   r>   rA   r   r   r   r$   r$   .   s        2 2 22 2 27 7 7
 
 

( ( (> > >L L L
 
 


 
 

. . .4 4 4 4 4r   r$   c                       fd}|S )Nc                 6     | t          |                    S r   r$   )requestr   unary_request_inlines     r   
adaptationz/_adapt_unary_request_inline.<locals>.adaptationX   s'    ##)*:;;
 
 	
r   r   )rF   rG   s   ` r   _adapt_unary_request_inlinerH   W   $    
 
 
 
 

 r   c                       fd}|S )Nc                 6     | t          |                    S r   rD   )request_iteratorr   stream_request_inlines     r   rG   z0_adapt_stream_request_inline.<locals>.adaptationa   s'    $$23CDD
 
 	
r   r   )rM   rG   s   ` r   _adapt_stream_request_inlinerN   `   rI   r   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )		_Callbackc                 `    t          j                    | _        g | _        d| _        d| _        d S NF)	threading	Condition
_condition_values_terminated
_cancelledr   s    r   r   z_Callback.__init__j   s,    #-// r   c                     | j         5  | j                            |           | j                                          d d d            d S # 1 swxY w Y   d S r   )rU   rV   append
notify_allr   values     r   consumez_Callback.consumep   s    _ 	) 	)L&&&O&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   4A		AAc                     | j         5  d| _        | j                                          d d d            d S # 1 swxY w Y   d S NT)rU   rW   r[   r   s    r   	terminatez_Callback.terminateu   s    _ 	) 	)#DO&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   !6::c                     | j         5  | j                            |           d| _        | j                                          d d d            d S # 1 swxY w Y   d S r`   )rU   rV   rZ   rW   r[   r\   s     r   consume_and_terminatez_Callback.consume_and_terminatez   s    _ 	) 	)L&&&#DO&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   ;AAAc                     | j         5  d| _        | j                                          d d d            d S # 1 swxY w Y   d S r`   )rU   rX   r[   r   s    r   r/   z_Callback.cancel   s    _ 	) 	)"DOO&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)rb   c                    | j         5  	 | j        rt          j                    | j        r&| j                            d          cd d d            S | j        r	 d d d            d S | j                                          v# 1 swxY w Y   d S )NTr   )rU   rX   r   	AbandonedrV   poprW   waitr   s    r   draw_one_valuez_Callback.draw_one_value   s    _ 		+ 		++? +%/111\ +<++A..		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ % +		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ O((***+		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+s   <B B &B  BBc                     | j         5  	 | j        rt          j                    | j        r)t          | j                  }d | _        |cd d d            S | j                                          d# 1 swxY w Y   d S r   )rU   rX   r   rg   rW   tuplerV   ri   )r   
all_valuess     r   draw_all_valuesz_Callback.draw_all_values   s    _ 		+ 		++? +%/111% +!&t|!4!4J#'DL%		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ O((***+		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+s   ?A.A..A25A2N)
r    r!   r"   r   r^   ra   rd   r/   rj   rn   r   r   r   rP   rP   i   s}             ) ) )
) ) )
) ) )) ) )

+ 
+ 
+
+ 
+ 
+ 
+ 
+r   rP   c                      t          j                     fd}t          j        |          }d|_        |                                 d S )Nc                     D ]m}                                  r                                r d S                     |                                             r                                r d S n                                 d S r   )r'   is_setr^   ra   )rE   request_consumerrL   r   thread_joineds    r   pipe_requestsz/_run_request_pipe_thread.<locals>.pipe_requests   s    ' 	 	G#--// =3G3G3I3I $$W---#--// =3G3G3I3I ""$$$$$r   )targetT)rS   EventThreaddaemonstart)rL   rr   r   rt   request_pipe_threadrs   s   ```  @r   _run_request_pipe_threadr{      st     O%%M% % % % % % % % $*-@@@!%r   c                       fd}|S )Nc                     t                      }|                    |j                  st          j                     | |j        t          |                     |                                d         S Nr   )rP   add_callbackr/   r   rg   rd   r$   rn   )rE   r   callbackunary_unary_events      r   rG   z,_adapt_unary_unary_event.<locals>.adaptation   sv    ;;,,X_== 	*')))* !122	
 	
 	

 ''))!,,r   r   )r   rG   s   ` r   _adapt_unary_unary_eventr      s$    	- 	- 	- 	- 	- r   c                       fd}|S )Nc              3      K   t                      }|                    |j                  st          j                     | |t          |                     	 |                                }|d S |V  r   )rP   r   r/   r   rg   r$   rj   )rE   r   r   responseunary_stream_events       r   rG   z-_adapt_unary_stream_event.<locals>.adaptation   s      ;;,,X_== 	*')))X34DEE	
 	
 	
	..00H	r   r   )r   rG   s   ` r   _adapt_unary_stream_eventr      s$         r   c                       fd}|S )Nc                    t                      }|                    |j                  st          j                     |j        t          |                    }t          | ||           |                                d         S r~   )	rP   r   r/   r   rg   rd   r$   r{   rn   )rL   r   r   rr   stream_unary_events       r   rG   z-_adapt_stream_unary_event.<locals>.adaptation   s    ;;,,X_== 	*')))--* !122
 
 	!.0@	
 	
 	
 ''))!,,r   r   )r   rG   s   ` r   _adapt_stream_unary_eventr      s$    - - - - - r   c                       fd}|S )Nc              3     K   t                      }|                    |j                  st          j                     |t          |                    }t          | ||           	 |                                }|d S |V  r   )rP   r   r/   r   rg   r$   r{   rj   )rL   r   r   rr   r   stream_stream_events        r   rG   z._adapt_stream_stream_event.<locals>.adaptation   s      ;;,,X_== 	*')))..*+;<<
 
 	!.0@	
 	
 	
	..00H	r   r   )r   rG   s   ` r   _adapt_stream_stream_eventr      s$        " r   c                       e Zd ZdS )_SimpleMethodHandlerN)r    r!   r"   r   r   r   r   r      s          	Dr   r   _MethodHandler)request_streamingresponse_streamingrequest_deserializerresponse_serializerunary_unaryunary_streamstream_unarystream_streamc                    | j         t           j        j        u r| j        t          j        j        u r(t          dd||t          | j                  d d d           S | j        t          j        j	        u r(t          dd||d t          | j
                  d d           S | j        t          j        j        u r(t          dd||d d t          | j                  d           S | j        t          j        j        u r(t          dd||d d d t          | j                            S n| j         t           j        j        u r | j        t          j        j        u r(t          dd||t#          | j                  d d d           S | j        t          j        j	        u r(t          dd||d t'          | j                  d d           S | j        t          j        j        u r(t          dd||d d t+          | j                  d           S | j        t          j        j        u r(t          dd||d d d t/          | j                            S t3                      )NFT)r   ServiceINLINEr   CardinalityUNARY_UNARYr   rH   unary_unary_inlineUNARY_STREAMunary_stream_inlineSTREAM_UNARYrN   stream_unary_inlineSTREAM_STREAMstream_stream_inlineEVENTr   r   r   r   r   r   r   r   
ValueError)implementationr   r   s      r   _simple_method_handlerr     s    u}333%)@)LLL'$#+N,MNN	 	 	 ';+B+OOO'$#+N,NOO	 	 	 ';+B+OOO'$#,"6     &+*A*OOO'$#,"7    P 
	!4	4	4%)@)LLL'$#()IJJ	 	 	 ';+B+OOO'$#).*KLL	 	 	 ';+B+OOO'$#).*KLL	 	 	 &+*A*OOO'$#*>+MNN	 	 	 ,,r   c                 t    | pi } i }| D ].}t          j        |d         |d                   }| |         ||<   /|S )Nr      )r   fully_qualified_method)method_pair_mapflat_mapmethod_pairmethods       r   _flatten_method_pair_mapr   s  sQ    %+OH& 8 8/AAOO*;7Or   c                       e Zd Zd Zd ZdS )_GenericRpcHandlerc                     t          |          | _        t          |          | _        t          |          | _        || _        d S r   )r   _method_implementations_request_deserializers_response_serializers_multi_method_implementation)r   method_implementationsmulti_method_implementationrequest_deserializersresponse_serializerss        r   r   z_GenericRpcHandler.__init__}  sY     (@"(
 (
$ '?!'
 '
# &> &
 &
" -H)))r   c                    | j                             |j                  }|Kt          || j                            |j                  | j                            |j                            S | j        d S 	 d S # t          j        $ r Y d S w xY wr   )	r   getr   r   r   r   r   r   NoSuchMethodError)r   handler_call_detailsmethod_implementations      r   servicez_GenericRpcHandler.service  s     $ < @ @ '!
 !
 !,)%+//0D0KLL*../C/JKK  
 .64t)   tts   9BBN)r    r!   r"   r   r   r   r   r   r   r   |  s5        H H H$    r   r   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	_Serverc                     || _         d S r   )_grpc_server)r   grpc_servers     r   r   z_Server.__init__  s    'r   c                 6    | j                             |          S r   )r   add_insecure_port)r   addresss     r   r   z_Server.add_insecure_port  s     227;;;r   c                 8    | j                             ||          S r   )r   add_secure_port)r   r   server_credentialss      r   r   z_Server.add_secure_port  s     00:LMMMr   c                 8    | j                                          d S r   r   ry   r   s    r   ry   z_Server.start  s    !!!!!r   c                 6    | j                             |          S r   r   stop)r   graces     r   r   z_Server.stop  s     %%e,,,r   c                 8    | j                                          | S r   r   r   s    r   	__enter__z_Server.__enter__  s    !!!r   c                 :    | j                             d            dS rR   r   )r   exc_typeexc_valexc_tbs       r   __exit__z_Server.__exit__  s    t$$$ur   N)
r    r!   r"   r   r   r   ry   r   r   r   r   r   r   r   r     s        ( ( (< < <N N N" " "- - -      r   r   c                     t          | |||          }|t          j        |t          n|          }n|}t	          t          j        ||f                    S )N)handlers)r   r	   pool_DEFAULT_POOL_SIZEr   grpcserver)service_implementationsr   r   r   thread_poolthread_pool_sizegeneric_rpc_handlereffective_thread_pools           r   r   r     s~     -#	   , 1"2":@P!
 !
 !,)5H4JKKK  r   ))__doc__collectionsrS   r   r   	grpc.betar   r   grpc.framework.commonr   r   grpc.framework.foundationr   r	   r
   grpc.framework.interfaces.facer   r   GRPCServicerContextr   ServicerContextr$   rH   rN   ConsumerrP   r{   r   r   r   r   
namedtupleRpcMethodHandlerr   r   r   GenericRpcHandlerr   Serverr   r   r   r   r   <module>r      s   J I                                  - - - - - - ' ' ' ' ' ' 1 1 1 1 1 1 2 2 2 2 2 2 , , , , , , / / / / / /      Z;   &4 &4 &4 &4 &44/ &4 &4 &4R    2+ 2+ 2+ 2+ 2+ 2+ 2+ 2+j     &    $  "  *	 	 	 	 	K		
  		 	 	&e e eP  # # # # #/ # # #L    j   2    r   