|
7 | 7 | import shutil
|
8 | 8 | import subprocess
|
9 | 9 | import time
|
| 10 | +from collections.abc import Generator |
10 | 11 | from datetime import datetime, timedelta
|
11 | 12 | from typing import Any, Dict, List
|
12 | 13 |
|
@@ -183,26 +184,27 @@ async def get_system_metrics() -> Dict[str, dict]:
|
183 | 184 |
|
184 | 185 |
|
185 | 186 | @cache.timed_cache(60)
|
186 |
| -def disk_utils_metrics() -> List[Dict[str, int | str | float | dict]]: |
187 |
| - """Placeholder for future metrics.""" |
188 |
| - from pyudisk.main import EnvConfig, smart_metrics |
189 |
| - from pyudisk.util import kelvin_to_fahrenheit |
| 187 | +def pyudisk_metrics() -> Generator[Dict[str, int | str | float | dict]]: |
| 188 | + """Retrieves metrics from PyUdisk library. |
190 | 189 |
|
191 |
| - return [ |
192 |
| - { |
| 190 | + Returns: |
| 191 | +
|
| 192 | + """ |
| 193 | + from pyudisk import util, smart_metrics, EnvConfig |
| 194 | + |
| 195 | + for disk in smart_metrics(EnvConfig()): |
| 196 | + yield { |
193 | 197 | **{
|
194 | 198 | "Model": disk.Info.Model,
|
195 | 199 | "Mountpoint": str(disk.Partition.MountPoints),
|
196 |
| - "Temperature": f"{kelvin_to_fahrenheit(disk.Attributes.SmartTemperature)} °F", |
| 200 | + "Temperature": f"{util.kelvin_to_fahrenheit(disk.Attributes.SmartTemperature)} °F / {util.kelvin_to_celsius(disk.Attributes.SmartTemperature)} °C", |
197 | 201 | "Bad Sectors": disk.Attributes.SmartNumBadSectors,
|
198 | 202 | "Timestamp": datetime.fromtimestamp(
|
199 | 203 | disk.Attributes.SmartUpdated
|
200 | 204 | ).strftime("%Y-%m-%d %H:%M:%S"),
|
201 | 205 | },
|
202 | 206 | **disk.Usage.model_dump(),
|
203 | 207 | }
|
204 |
| - for disk in smart_metrics(EnvConfig()) |
205 |
| - ] |
206 | 208 |
|
207 | 209 |
|
208 | 210 | async def system_resources() -> Dict[str, dict]:
|
|
0 commit comments