|
11 | 11 | import time |
12 | 12 | from dataclasses import asdict, dataclass |
13 | 13 | from enum import Enum |
| 14 | +from importlib.metadata import PackageNotFoundError, version |
14 | 15 | from threading import Event, Thread |
15 | 16 | from typing import Any, Optional |
16 | 17 |
|
@@ -41,13 +42,22 @@ def __init__(self, log_level: str = "INFO", wireless_version: bool = False) -> N |
41 | 42 | self.wireless_version = wireless_version |
42 | 43 |
|
43 | 44 | self.backend: "RobotBackend | MujocoBackend | None" = None |
| 45 | + # Get package version |
| 46 | + try: |
| 47 | + package_version = version("reachy_mini") |
| 48 | + self.logger.info(f"Daemon version: {package_version}") |
| 49 | + except PackageNotFoundError: |
| 50 | + package_version = None |
| 51 | + self.logger.warning("Could not determine daemon version") |
| 52 | + |
44 | 53 | self._status = DaemonStatus( |
45 | 54 | state=DaemonState.NOT_INITIALIZED, |
46 | 55 | wireless_version=wireless_version, |
47 | 56 | simulation_enabled=None, |
48 | 57 | backend_status=None, |
49 | 58 | error=None, |
50 | 59 | wlan_ip=None, |
| 60 | + version=package_version, |
51 | 61 | ) |
52 | 62 | self._thread_event_publish_status = Event() |
53 | 63 |
|
@@ -463,3 +473,4 @@ class DaemonStatus: |
463 | 473 | backend_status: Optional[RobotBackendStatus | MujocoBackendStatus] |
464 | 474 | error: Optional[str] = None |
465 | 475 | wlan_ip: Optional[str] = None |
| 476 | + version: Optional[str] = None |
0 commit comments