
    Ag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j0                        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jH                        Z% G d" d#ejL                        Z'd$ Z(y)%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y)_ServerProtocolContextc                     || _         y N_servicer_contextselfservicer_contexts     R/var/www/openai/venv/lib/python3.12/site-packages/grpc/beta/_server_adaptations.py__init__z_ServerProtocolContext.__init__$   
    !1    c                 6    | j                   j                         S r   )r   peerr   s    r   r   z_ServerProtocolContext.peer'   s    %%**,,r   c                      y 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   #   s    2-r   r   c                   N    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y)_FaceServicerContextc                     || _         y r   r   r   s     r   r   z_FaceServicerContext.__init__/   r   r   c                 6    | j                   j                         S r   )r   	is_activer   s    r   r'   z_FaceServicerContext.is_active2   s    %%//11r   c                 6    | j                   j                         S r   )r   time_remainingr   s    r   r)   z#_FaceServicerContext.time_remaining5   s    %%44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                   j                          y 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                 \    t        j                  | j                  j                               S r   )r   betar   invocation_metadatar   s    r   r4   z(_FaceServicerContext.invocation_metadataC   s     ~~d44HHJKKr   c                 `    | j                   j                  t        j                  |             y r   )r   send_initial_metadatar   unbeta)r   initial_metadatas     r   r8   z%_FaceServicerContext.initial_metadataF   s%    44-.	
r   c                 `    | j                   j                  t        j                  |             y r   )r   set_terminal_metadatar   r7   )r   terminal_metadatas     r   r;   z&_FaceServicerContext.terminal_metadataK   s%    44./	
r   c                 :    | j                   j                  |       y r   )r   set_code)r   codes     r   r>   z_FaceServicerContext.codeP   s    ''-r   c                 :    | j                   j                  |       y r   )r   set_details)r   detailss     r   rA   z_FaceServicerContext.detailsS   s    **73r   N)r    r!   r"   r   r'   r)   r-   r/   r1   r4   r8   r;   r>   rA   r   r   r   r$   r$   .   s:    227

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



.4r   r$   c                       fd}|S )Nc                 (     | 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                 (     | t        |            S r   rD   )request_iteratorr   stream_request_inlines     r   rG   z0_adapt_stream_request_inline.<locals>.adaptationa   s    $23CD
 	
r   r   )rM   rG   s   ` r   _adapt_stream_request_inlinerN   `   rI   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)		_Callbackc                 `    t        j                         | _        g | _        d| _        d| _        y NF)	threading	Condition
_condition_values_terminated
_cancelledr   s    r   r   z_Callback.__init__j   s(    #--/ r   c                     | j                   5  | j                  j                  |       | j                   j                          d d d        y # 1 sw Y   y xY wr   )rU   rV   append
notify_allr   values     r   consumez_Callback.consumep   s5    __LL&OO&&( __s   6AAc                     | j                   5  d| _        | j                   j                          d d d        y # 1 sw Y   y xY wNT)rU   rW   r[   r   s    r   	terminatez_Callback.terminateu   s+    __#DOO&&( __	   "8Ac                     | j                   5  | j                  j                  |       d| _        | j                   j	                          d d d        y # 1 sw Y   y xY wr`   )rU   rV   rZ   rW   r[   r\   s     r   consume_and_terminatez_Callback.consume_and_terminatez   s=    __LL&#DOO&&( __s   =AAc                     | j                   5  d| _        | j                   j                          d d d        y # 1 sw Y   y xY wr`   )rU   rX   r[   r   s    r   r/   z_Callback.cancel   s*    __"DOOO&&( __rb   c                 8   | j                   5  	 | j                  rt        j                         | j                  r$| j                  j                  d      cd d d        S | j                  r
	 d d d        y | j                   j                          # 1 sw Y   y xY wNr   )rU   rX   r   	AbandonedrV   poprW   waitr   s    r   draw_one_valuez_Callback.draw_one_value   sv    __??%//11\\<<++A. _ %% _ OO((*  _s   ABB5BBc                    | j                   5  	 | j                  rt        j                         | j                  r't        | j                        }d | _        |cd d d        S | j                   j                          n# 1 sw Y   y xY wr   )rU   rX   r   rh   rW   tuplerV   rj   )r   
all_valuess     r   draw_all_valuesz_Callback.draw_all_values   si    __??%//11%%!&t||!4J#'DL% _ OO((*  _s   AA="A==BN)
r    r!   r"   r   r^   ra   rd   r/   rk   ro   r   r   r   rP   rP   i   s%     )
)
))

+
+r   rP   c                      t        j                          fd}t        j                  |      }d|_        |j	                          y )Nc                      D ]W  } j                         rj                         r y j                  |        j                         rj                         sW y  j                          y r   )r'   is_setr^   ra   )rE   request_consumerrL   r   thread_joineds    r   pipe_requestsz/_run_request_pipe_thread.<locals>.pipe_requests   s]    'G#--/=3G3G3I$$W-#--/=3G3G3I ( 	""$r   )targetT)rS   EventThreaddaemonstart)rL   rs   r   ru   request_pipe_threadrt   s   ```  @r   _run_request_pipe_threadr|      s>     OO%M% $**-@!%r   c                       fd}|S )Nc                     t               }|j                  |j                        st        j                          | |j
                  t        |             |j                         d   S rg   )rP   add_callbackr/   r   rh   rd   r$   ro   )rE   r   callbackunary_unary_events      r   rG   z,_adapt_unary_unary_event.<locals>.adaptation   s^    ;,,X__=''))** !12	

 '')!,,r   r   )r   rG   s   ` r   _adapt_unary_unary_eventr      s    	- r   c                       fd}|S )Nc              3      K   t               }|j                  |j                        st        j                          | |t        |             	 |j                         }|y | wr   )rP   r   r/   r   rh   r$   rk   )rE   r   r   responseunary_stream_events       r   rG   z-_adapt_unary_stream_event.<locals>.adaptation   sk     ;,,X__=''))X34DE	
 ..0H s   A&A)r   )r   rG   s   ` r   _adapt_unary_stream_eventr      s     r   c                       fd}|S )Nc                     t               }|j                  |j                        st        j                          |j
                  t        |            }t        | ||       |j                         d   S rg   )	rP   r   r/   r   rh   rd   r$   r|   ro   )rL   r   r   rs   stream_unary_events       r   rG   z-_adapt_stream_unary_event.<locals>.adaptation   sq    ;,,X__=''))-** !12
 	!.0@	
 '')!,,r   r   )r   rG   s   ` r   _adapt_stream_unary_eventr      s    - r   c                       fd}|S )Nc              3      K   t               }|j                  |j                        st        j                          |t        |            }t        | ||       	 |j                         }|y | wr   )rP   r   r/   r   rh   r$   r|   rk   )rL   r   r   rs   r   stream_stream_events        r   rG   z._adapt_stream_stream_event.<locals>.adaptation   s     ;,,X__='')).*+;<
 	!.0@	
 ..0H s   A2A5r   )r   rG   s   ` r   _adapt_stream_stream_eventr      s    " r   c                       e Zd Zy)_SimpleMethodHandlerN)r    r!   r"   r   r   r   r   r      s      	r   r   _MethodHandler)request_streamingresponse_streamingrequest_deserializerresponse_serializerunary_unaryunary_streamstream_unarystream_streamc                 v   | j                   t         j                  j                  u r6| 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               | 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/        | j0                              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,MN	 	 '';+B+B+O+OO'$#+N,N,NO	 	 '';+B+B+O+OO'$#,"66   &&+*A*A*O*OO'$#,"77 v ,_ 
		!4!4	4%%)@)@)L)LL'$#()I)IJ	 	 '';+B+B+O+OO'$#).*K*KL	 	 '';+B+B+O+OO'$#).*K*KL	 	 &&+*A*A*O*OO'$#*>+M+MN	 	 ,r   c                 l    | xs 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  sK    %+OH&//AAO*;7 ' Or   c                       e Zd Zd Zd Zy)_GenericRpcHandlerc                 r    t        |      | _        t        |      | _        t        |      | _        || _        y 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__}  sD     (@"(
$ '?!'
# &> &
" -H)r   c                 F   | j                   j                  |j                        }|St        || j                  j                  |j                        | j
                  j                  |j                              S | j                  y 	 y # t        j                  $ r Y y w xY wr   )	r   getr   r   r   r   r   r   NoSuchMethodError)r   handler_call_detailsmethod_implementations      r   servicez_GenericRpcHandler.service  s     $ < < @ @ ''!
 !,)%++//0D0K0KL**../C/J/JK 
 ..6)) s   
B B N)r    r!   r"   r   r   r   r   r   r   r   |  s    H$r   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	_Serverc                     || _         y r   )_grpc_server)r   grpc_servers     r   r   z_Server.__init__  s
    'r   c                 8    | j                   j                  |      S r   )r   add_insecure_port)r   addresss     r   r   z_Server.add_insecure_port  s      227;;r   c                 :    | j                   j                  ||      S r   )r   add_secure_port)r   r   server_credentialss      r   r   z_Server.add_secure_port  s      00:LMMr   c                 8    | j                   j                          y r   r   rz   r   s    r   rz   z_Server.start  s    !r   c                 8    | j                   j                  |      S r   r   stop)r   graces     r   r   z_Server.stop  s      %%e,,r   c                 :    | j                   j                          | S r   r   r   s    r   	__enter__z_Server.__enter__  s    !r   c                 :    | j                   j                  d        yrR   r   )r   exc_typeexc_valexc_tbs       r   __exit__z_Server.__exit__  s    t$r   N)
r    r!   r"   r   r   r   rz   r   r   r   r   r   r   r   r     s&    (<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     sh     -#	  , 1 1"2":@P!
 !,)5H4J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        - ' 1 2 , /  Z;; &44// &4R2+ 2+j &$"*	K		
 		&eP#// #Lj 2r   