o
    ci                     @   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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S )(r   NFdeployment_configreplica_configstart_time_msdeployer_job_id
actor_nameversionend_time_msroute_prefix	docs_pathingresstarget_capacitytarget_capacity_directionc                 C   sR   || _ || _|| _|| _|| _|| _|| _d | _|| _|	| _	|
| _
|| _|| _d S N)r	   r
   r   r   r   r   r   _cached_actor_defr   r   r   r   r   )selfr	   r
   r   r   r   r   r   r   r   r   r   r    r   V/home/ubuntu/.local/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__0   s   
zDeploymentInfo.__getstate__dc                 C   s   || _ d | _d S r   )r   r   )r   r    r   r   r   __setstate__5   s   
zDeploymentInfo.__setstate__c                 C   sH   t |p| j|p	| j| j| j| j|p| j| j|p| j| 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   r   r   update9   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_capacityO   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_changedW   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)clsr0   r	   r   r   datar   r   r   r4   t   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
   r1   r   r   r   )r   r   r   r   r	   to_protor
   r   r   r5   r2   nameDeploymentInfoProto)r   r;   r   r   r   r<      s    



zDeploymentInfo.to_proto)NNNNNFNN)NNNN)__name__
__module____qualname__r   r   intstrr   boolfloatr   r   r   r   r   r!   r"   r%   r(   propertyr/   classmethodr>   r4   r<   r   r   r   r   r      s|    	

#

	
$r   )typingr   r   r   r+   ray.serve._private.commonr   ray.serve._private.configr   r   ray.serve.generated.serve_pb2r   r>   r5   r   r   r   r   <module>   s    