Spaces:
Sleeping
Sleeping
| """ | |
| ServerStatus related data transfer objects | |
| """ | |
| from dataclasses import dataclass | |
| from typing import Optional, List | |
| class ProcessInfo: | |
| """Process Information""" | |
| pid: int # process ID | |
| cpu_percent: float # CPU usage percentage | |
| memory_percent: float # memory usage percentage | |
| create_time: float | |
| cmdline: List[str] | |
| class ServerStatus: | |
| """server status""" | |
| is_running: bool # if service is running | |
| process_info: Optional[ProcessInfo] = None # process info | |
| def not_running(cls) -> "ServerStatus": | |
| """create a ServerStatus object representing a not running server""" | |
| return cls(is_running=False) | |
| def running(cls, process_info: ProcessInfo) -> "ServerStatus": | |
| """create a ServerStatus object representing a running server""" | |
| return cls(is_running=True, process_info=process_info) | |