From d83659ae96af1dd2f78ba69dc842878e3a22849e Mon Sep 17 00:00:00 2001 From: harisreedhar Date: Mon, 9 Feb 2026 15:47:38 +0530 Subject: [PATCH] make detect_disk_metrics stateless --- facefusion/system.py | 47 +++++++++++++++++++++++++------------------- facefusion/types.py | 2 +- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/facefusion/system.py b/facefusion/system.py index 00dbb7d3..cd3970f5 100644 --- a/facefusion/system.py +++ b/facefusion/system.py @@ -1,5 +1,7 @@ import shutil +from typing import List +from facefusion import state_manager from facefusion.execution import detect_execution_devices from facefusion.types import DiskMetrics, Metrics @@ -8,28 +10,33 @@ def get_metrics_set() -> Metrics: return\ { 'execution_devices': detect_execution_devices(), - 'disk': detect_disk_metrics() + 'disks': detect_disk_metrics([ state_manager.get_temp_path() ]) } -def detect_disk_metrics() -> DiskMetrics: - usage = shutil.disk_usage('.') +def detect_disk_metrics(drive_paths : List[str]) -> List[DiskMetrics]: + disk_metrics : List[DiskMetrics] = [] - return\ - { - 'total': + for drive_path in drive_paths: + disk_usage = shutil.disk_usage(drive_path) + + disk_metrics.append( { - 'value': int(usage.total / (1024 * 1024 * 1024)), - 'unit': 'GiB' - }, - 'free': - { - 'value': int(usage.free / (1024 * 1024 * 1024)), - 'unit': 'GiB' - }, - 'utilization': - { - 'value': int(usage.used / usage.total * 100), - 'unit': '%' - } - } + 'total': + { + 'value': int(disk_usage.total / (1024 * 1024 * 1024)), + 'unit': 'GiB' + }, + 'free': + { + 'value': int(disk_usage.free / (1024 * 1024 * 1024)), + 'unit': 'GiB' + }, + 'utilization': + { + 'value': int(disk_usage.used / disk_usage.total * 100), + 'unit': '%' + } + }) + + return disk_metrics diff --git a/facefusion/types.py b/facefusion/types.py index 1d8bba9a..bad1a3c3 100755 --- a/facefusion/types.py +++ b/facefusion/types.py @@ -307,7 +307,7 @@ DiskMetrics = TypedDict('DiskMetrics', Metrics = TypedDict('Metrics', { 'execution_devices' : List[ExecutionDevice], - 'disk' : DiskMetrics + 'disks' : List[DiskMetrics] }) DownloadProvider = Literal['github', 'huggingface']