o
    `۷if                     @   sZ   d dl mZ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mZ G dd dZdS )    )AnyDictOptionalN)TargetCapacityDirection)DeploymentConfigReplicaConfig)DeploymentInfor   c                   @   s  e Zd Z							d'dededededee dee d	ee d
ededee	 dee
 fddZdeeef fddZdeeef ddfddZ				d(dededed
edd f
ddZdee	 dee
 fddZdefddZedd Zed efd!d"Zd#d$ Zd%d& ZdS ))r   NFdeployment_configreplica_configstart_time_msdeployer_job_id
actor_nameversionend_time_msroute_prefixingresstarget_capacitytarget_capacity_directionc                 C   sL   || _ || _|| _|| _|| _|| _|| _d | _|| _|	| _	|
| _
|| _d S N)r	   r
   r   r   r   r   r   _cached_actor_defr   r   r   r   )selfr	   r
   r   r   r   r   r   r   r   r   r    r   X/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/serve/_private/deployment_info.py__init__   s   
zDeploymentInfo.__init__returnc                 C   s   | j  }|d= |S )Nr   )__dict__copy)r   
clean_dictr   r   r   __getstate__.   s   
zDeploymentInfo.__getstate__dc                 C   s   || _ d | _d S r   )r   r   )r   r   r   r   r   __setstate__3   s   
zDeploymentInfo.__setstate__c                 C   sD   t |p| j|p	| j| j| j| j|p| j| j|p| j| j	| j
| jdS )N)r	   r
   r   r   r   r   r   r   r   r   r   )r   r	   r
   r   r   r   r   r   r   r   r   r   )r   r	   r
   r   r   r   r   r   update7   s   zDeploymentInfo.updatenew_target_capacitynew_target_capacity_directionc                 C   s   || _ || _d S r   )r   r   )r   r"   r#   r   r   r   set_target_capacityL   s   
z"DeploymentInfo.set_target_capacityc                 C   s2   | j |j kp| jj|jjkp|jd u p| j|jkS r   )r	   r
   ray_actor_optionsr   )r   otherr   r   r   config_changedT   s   
zDeploymentInfo.config_changedc                 C   sH   | j d u r!| jd usJ ddlm} tt| j|ft|j| _ | j S )Nr   )ReplicaActor)	r   r   ray.serve._private.replicar(   rayremotetypedictr   )r   r(   r   r   r   	actor_def]   s   
zDeploymentInfo.actor_defprotoc              
   C   s   |j r	t|j nd }|jdkr|jnd }t|j}|dkr"d }nt|}|t|j	|r1|
 nd|j|jdkr=|jnd |jdkrF|jnd |jdkrO|jnd t  ||d	}| di |S )NUNSETT r   )	r	   r
   r   r   r   r   r   r   r   r   )r	   r   
from_protor   TargetCapacityDirectionProtoNamer   r   r   r
   needs_pickler   r   r   r   r*   get_runtime_context
get_job_id)clsr/   r	   r   r   datar   r   r   r3   q   s6   
zDeploymentInfo.from_protoc                 C   s   | j | j| j| jd}| jr| j |d< | jr| j |d< | jd u r)d|d< n| j|d< | jd u r9t	j
|d< n| jj|d< tdi |S )N)r   r   r   r   r	   r
   r0   r   r   r   )r   r   r   r   r	   to_protor
   r   r   r4   r1   nameDeploymentInfoProto)r   r:   r   r   r   r;      s    



zDeploymentInfo.to_protoc                 C   s:   | j r| j  nd | jr| j nd | j| j| j| jdS )N)r	   r
   r   r   r   r   )r	   to_dictr
   r   r   r   r   )r   r   r   r   r>      s   zDeploymentInfo.to_dict)NNNNFNN)NNNN)__name__
__module____qualname__r   r   intstrr   boolfloatr   r   r   r   r   r    r!   r$   r'   propertyr.   classmethodr=   r3   r;   r>   r   r   r   r   r      sx    	

!

	
$r   )typingr   r   r   r*   ray.serve._private.commonr   ray.serve._private.configr   r   ray.serve.generated.serve_pb2r   r=   r4   r   r   r   r   <module>   s    