pytorch-lightning
44 строки · 1.4 Кб
1# Copyright The Lightning AI team.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15from datetime import datetime16from typing import Any, Dict, Optional17
18from pydantic import BaseModel19
20
21class WorkStatus(BaseModel):22"""The ``WorkStatus`` captures the status of a work according to the app."""23
24stage: str25timestamp: float26reason: Optional[str] = None27message: Optional[str] = None28count: int = 129
30def __init__(self, *args: Any, **kwargs: Any) -> None:31super().__init__(*args, **kwargs)32
33assert self.timestamp > 034assert self.timestamp < (int(datetime.now().timestamp()) + 10)35
36
37class AppStatus(BaseModel):38"""The ``AppStatus`` captures the current status of the app and its components."""39
40# ``True`` when the app UI is ready to be viewed41is_ui_ready: bool42
43# The statuses of ``LightningWork`` objects currently associated with this app44work_statuses: Dict[str, WorkStatus]45