pai/api/tensorboard.py (94 lines of code) (raw):

# Copyright 2023 Alibaba, Inc. or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from typing import Optional from ..common.logging import get_logger from ..libs.alibabacloud_pai_dlc20201203.models import ( CreateTensorboardRequest, CreateTensorboardResponseBody, DeleteTensorboardRequest, GetTensorboardRequest, ListTensorboardsRequest, StartTensorboardRequest, StopTensorboardRequest, Tensorboard, ) from .base import PaginatedResult, ServiceName, WorkspaceScopedResourceAPI logger = get_logger(__name__) class TensorBoardAPI(WorkspaceScopedResourceAPI): BACKEND_SERVICE_NAME = ServiceName.PAI_DLC _get_method = "get_tensorboard_with_options" _list_method = "list_tensorboards_with_options" _create_method = "create_tensorboard_with_options" _delete_method = "delete_tensorboard_with_options" _start_method = "start_tensorboard_with_options" _stop_method = "stop_tensorboard_with_options" def get(self, tensorboard_id: str): request = GetTensorboardRequest() resp: Tensorboard = self._do_request( method_=self._get_method, tensorboard_id=tensorboard_id, request=request ) return resp.to_map() def create( self, uri: str, display_name: str, source_id: Optional[str] = None, source_type: Optional[str] = None, summary_relative_path: Optional[str] = None, data_source_type: Optional[str] = None, dataset_id: Optional[str] = None, max_running_time_minutes: Optional[int] = None, **kwargs, ): request = CreateTensorboardRequest( data_source_type=data_source_type, uri=uri, display_name=display_name, summary_relative_path=summary_relative_path, source_id=source_id, source_type=source_type, data_source_id=dataset_id, max_running_time_minutes=max_running_time_minutes, **kwargs, ) resp: CreateTensorboardResponseBody = self._do_request( method_=self._create_method, request=request ) return resp.tensorboard_id def delete(self, tensorboard_id: str): request = DeleteTensorboardRequest() self._do_request( self._delete_method, tensorboard_id=tensorboard_id, request=request ) def start(self, tensorboard_id: str): request = StartTensorboardRequest() self._do_request( self._start_method, tensorboard_id=tensorboard_id, request=request, ) def list( self, source_type: Optional[str] = None, source_id: Optional[str] = None, page_number: int = 1, page_size: int = 50, **kwargs, ) -> PaginatedResult: request = ListTensorboardsRequest( page_size=page_size, page_number=page_number, source_id=source_id, source_type=source_type, **kwargs, ) resp = self._do_request( self._list_method, request=request, ) return self.make_paginated_result(resp) def stop(self, tensorboard_id: str): """Stop the TensorBoard application.""" request = StopTensorboardRequest() self._do_request( self._stop_method, tensorboard_id=tensorboard_id, request=request, )