
    ki8                        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     m/var/www/html/Pagina-Ingenieria-Requisitos/venv/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                 $    d}t          |          )Nz6add_abortion_callback no longer supported server-side!)NotImplementedError)r   abortion_callback	error_msgs      r   add_abortion_callbackz*_FaceServicerContext.add_abortion_callback8   s    L	!),,,r   c                 8    | j                                          d S r   )r   cancelr   s    r   r0   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   r5   z(_FaceServicerContext.invocation_metadataB   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   r9   z%_FaceServicerContext.initial_metadataE   s6    44-..	
 	
 	
 	
 	
r   c                 ^    | j                             t          j        |                     d S r   )r   set_terminal_metadatar   r8   )r   terminal_metadatas     r   r<   z&_FaceServicerContext.terminal_metadataJ   s6    44.//	
 	
 	
 	
 	
r   c                 :    | j                             |           d S r   )r   set_code)r   codes     r   r?   z_FaceServicerContext.codeO   s    ''-----r   c                 :    | j                             |           d S r   )r   set_details)r   detailss     r   rB   z_FaceServicerContext.detailsR   s    **733333r   N)r    r!   r"   r   r'   r)   r.   r0   r2   r5   r9   r<   r?   rB   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>.adaptationW   s'    ##)*:;;
 
 	
r   r   )rG   rH   s   ` r   _adapt_unary_request_inlinerI   V   $    
 
 
 
 

 r   c                       fd}|S )Nc                 6     | t          |                    S r   rE   )request_iteratorr   stream_request_inlines     r   rH   z0_adapt_stream_request_inline.<locals>.adaptation`   s'    $$23CDD
 
 	
r   r   )rN   rH   s   ` r   _adapt_stream_request_inlinerO   _   rJ   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__i   s,    #-// r   c                     | j         5  | j                            |           | j                                          d d d            d S # 1 swxY w Y   d S r   )rV   rW   append
notify_allr   values     r   consumez_Callback.consumeo   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)rV   rX   r\   r   s    r   	terminatez_Callback.terminatet   s    _ 	) 	)#DO&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   !6::c                     | j         5  | j                            |           d| _        | j                                          d d d            d S # 1 swxY w Y   d S ra   )rV   rW   r[   rX   r\   r]   s     r   consume_and_terminatez_Callback.consume_and_terminatey   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 ra   )rV   rY   r\   r   s    r   r0   z_Callback.cancel   s    _ 	) 	)"DOO&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)rc   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   )rV   rY   r   	AbandonedrW   poprX   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   )rV   rY   r   rh   rX   tuplerW   rj   )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_   rb   re   r0   rk   ro   r   r   r   rQ   rQ   h   s}             ) ) )
) ) )
) ) )) ) )

+ 
+ 
+
+ 
+ 
+ 
+ 
+r   rQ   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_   rb   )rF   request_consumerrM   r   thread_joineds    r   pipe_requestsz/_run_request_pipe_thread.<locals>.pipe_requests   s    ' 	 	G#--// =3G3G3I3I $$W---#--// =3G3G3I3I ""$$$$$r   )targetT)rT   EventThreaddaemonstart)rM   rs   r   ru   request_pipe_threadrt   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   )rQ   add_callbackr0   r   rh   re   r$   ro   )rF   r   callbackunary_unary_events      r   rH   z,_adapt_unary_unary_event.<locals>.adaptation   sv    ;;,,X_== 	*')))* !122	
 	
 	

 ''))!,,r   r   )r   rH   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   )rQ   r   r0   r   rh   r$   rk   )rF   r   r   responseunary_stream_events       r   rH   z-_adapt_unary_stream_event.<locals>.adaptation   s      ;;,,X_== 	*')))X34DEE	
 	
 	
	..00H	r   r   )r   rH   s   ` r   _adapt_unary_stream_eventr      s$         r   c                       fd}|S )Nc                    t                      }|                    |j                  st          j                     |j        t          |                    }t          | ||           |                                d         S r   )	rQ   r   r0   r   rh   re   r$   r|   ro   )rM   r   r   rs   stream_unary_events       r   rH   z-_adapt_stream_unary_event.<locals>.adaptation   s    ;;,,X_== 	*')))--* !122
 
 	!.0@	
 	
 	
 ''))!,,r   r   )r   rH   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   )rQ   r   r0   r   rh   r$   r|   rk   )rM   r   r   rs   r   stream_stream_events        r   rH   z._adapt_stream_stream_event.<locals>.adaptation   s      ;;,,X_== 	*')))..*+;<<
 
 	!.0@	
 	
 	
	..00H	r   r   )r   rH   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   rI   unary_unary_inlineUNARY_STREAMunary_stream_inlineSTREAM_UNARYrO   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	 	 	 %)@)MMM'$#+N,NOO	 	 	 %)@)MMM'$#,"6     %)@)NNN'$#,"7    O 
	!4	4	4%)@)LLL'$#()IJJ	 	 	 %)@)MMM'$#).*KLL	 	 	 %)@)MMM'$#).*KLL	 	 	 %)@)NNN'$#*>+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   n  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__x  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  
 ,44	4% 	 	 	44	s   9BBN)r    r!   r"   r   r   r   r   r   r   r   w  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   rz   r   s    r   rz   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 rS   r   )r   exc_typeexc_valexc_tbs       r   __exit__z_Server.__exit__  s    t$$$ur   N)
r    r!   r"   r   r   r   rz   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__collectionsrT   r   r   	grpc.betar   r   grpc.framework.commonr   r   grpc.framework.foundationr   r	   r
   grpc.framework.interfaces.facer   r   GRPCServicerContextr   ServicerContextr$   rI   rO   ConsumerrQ   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 %4P    2+ 2+ 2+ 2+ 2+ 2+ 2+ 2+j     &    $  "  *	 	 	 	 	K		
  		 	 	&a a aH  " " " " "/ " " "J    j   2    r   