o
    `۷i	                     @   s   d dl mZmZ d dlmZmZ d dlZd dlmZ d dl	m
Z
mZ d dlmZ eddG d	d
 d
eZeddG dd deZeddG dd deZeddG dd deZdS )    )ABCabstractmethod)	dataclassfieldsN)DeploymentHandleSource)%RAY_SERVE_RUN_ROUTER_IN_SEPARATE_LOOPRAY_SERVE_USE_GRPC_BY_DEFAULT)DEFAULTT)frozenc                   @   sJ   e Zd ZU dZdZeed< ejZ	eed< e
Zeed< eed
ddZd	S )InitHandleOptionsBasezInit options for each ServeHandle instance.

    These fields can be set by calling `.init()` on a handle before
    sending the first request.
    F_prefer_local_routing_source_run_router_in_separate_loopreturnc                 K   s   t N)NotImplementedError)clskwargs r   W/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/serve/_private/handle_options.pycreate   s   zInitHandleOptionsBase.createN)r   r   )__name__
__module____qualname____doc__r   bool__annotations__r   UNKNOWNr   r   r   classmethodr   r   r   r   r   r   r      s   
 r   c                   @   s   e Zd ZedddZdS )InitHandleOptionsr   c                 K   sV   t | D ]}|| tjkr||= qd|vr$tjj d ur$tj	|d< | di |S )Nr   r   )
listkeysr	   VALUErayservecontext_get_internal_replica_contextr   REPLICA)r   r   kr   r   r   r   !   s   
zInitHandleOptions.createN)r   r   )r   r   r   r   r   r   r   r   r   r      s    r   c                   @   sD   e Zd ZU dZdZeed< dZeed< dZe	ed< e
dd	d
ZdS )DynamicHandleOptionsBasezyDynamic options for each ServeHandle instance.

    These fields can be changed by calling `.options()` on a handle.
    __call__method_name multiplexed_model_idFstreamr   c                 K   s   d S r   r   )selfr   r   r   r   copy_and_update=   s   z(DynamicHandleOptionsBase.copy_and_updateN)r   r)   )r   r   r   r   r+   strr   r-   r.   r   r   r0   r   r   r   r   r)   2   s   
 r)   c                   @   s>   e Zd ZU e Zeed< dZeed< dZ	eed< d	ddZ
dS )
DynamicHandleOptions_by_referencecloudpicklerequest_serializationresponse_serializationr   c                 K   s^   i }t | D ]!}|j|vs||j tjkrt| |j||j< q||j ||j< qtdi |S )Nr   )r   namer	   r"   getattrr2   )r/   r   
new_kwargsfr   r   r   r0   H   s   z$DynamicHandleOptions.copy_and_updateN)r   r2   )r   r   r   r   r3   r   r   r5   r1   r6   r0   r   r   r   r   r2   B   s
   
 r2   )abcr   r   dataclassesr   r   r#   ray.serve._private.commonr   ray.serve._private.constantsr   r   ray.serve._private.utilsr	   r   r   r)   r2   r   r   r   r   <module>   s    