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
 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)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   ^/home/ubuntu/veenaModal/venv/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   r/   r   r   r   r   r(   /   s   
 r(   c                   @   s$   e Zd ZU dZeed< dddZdS )DynamicHandleOptionsT_by_referencer   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!   getattrr1   )r.   r   
new_kwargsfr   r   r   r/   C   s   z$DynamicHandleOptions.copy_and_updateN)r   r1   )r   r   r   r2   r   r   r/   r   r   r   r   r1   ?   s   
 r1   )abcr   r   dataclassesr   r   r"   ray.serve._private.commonr   ray.serve._private.constantsr   ray.serve._private.utilsr   r
   r   r(   r1   r   r   r   r   <module>   s    