o
    1 id                     @   s|   d dl mZmZmZ d dlmZ d dlmZ z
d dlZd dl	Z	W n e
y-   dZdZ	Y nw dZdZdZG dd deZdS )    )AnyDictOptional)split_address)SubmissionClientNz/api/serve/applications/c                       s   e Zd Z				ddedeeeef  deeeef  deeeef  f fddZd	efd
dZdefddZ	dd Z
  ZS )ServeSubmissionClientFNdashboard_head_addresscookiesmetadataheadersc           	         sr   t d u rtdd| d}d|vrt|t|\}}|dvr$t|t j|||||d | jddd	d
 d S )NzRThe Serve CLI requires the ray[default] installation: `pip install "ray[default]"`zGot an unexpected address"a  " while trying to connect to the Ray dashboard. The Serve SDK/CLI requires the Ray dashboard's HTTP(S) address (which should start with "http://" or "https://". If this address wasn't passed explicitly, it may be set in the RAY_DASHBOARD_ADDRESS environment variable.z://)httphttps)addresscreate_cluster_if_neededr	   r
   r   z1.12zgServe CLI is not supported on the Ray cluster. Please ensure the cluster is running Ray 1.12 or higher.z/api/ray/version)min_versionZversion_error_messageurl)requestsRuntimeError
ValueErrorr   super__init__Z&_check_connection_and_version_with_url)	selfr   r   r	   r
   r   Zinvalid_address_messageZmodule_string_	__class__ k/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/ray/dashboard/modules/serve/sdk.pyr      s2   

zServeSubmissionClient.__init__returnc                 C   s(   |  dt}|jdkr| | | S )NGET   )_do_requestSTATUS_PATHstatus_code_raise_errorjsonr   responser   r   r   get_serve_detailsE   s   

z'ServeSubmissionClient.get_serve_detailsconfigc                 C   s,   | j dt|d}|jdkr| | dS dS )zDeploy multiple applications.PUT)Z	json_datar   N)r    DEPLOY_PATHr"   r#   )r   r(   r&   r   r   r   deploy_applicationsL   s   
z)ServeSubmissionClient.deploy_applicationsc                 C   s(   |  dt}|jdkr| | d S d S )NDELETEr   )r    DELETE_PATHr"   r#   r%   r   r   r   delete_applicationsR   s   
z)ServeSubmissionClient.delete_applications)FNNN)__name__
__module____qualname__strr   r   r   r   r'   r+   r.   __classcell__r   r   r   r   r      s"    1r   )typingr   r   r   Zray._private.utilsr   Z#ray.dashboard.modules.dashboard_sdkr   Zaiohttpr   ImportErrorr*   r-   r!   r   r   r   r   r   <module>   s    