Fix coverage filename→name, fix TasksProxy auto-save for multi-worker

This commit is contained in:
Floppyrj45
2026-02-19 16:04:42 +01:00
parent c72ba38221
commit 02a691a350
3 changed files with 22 additions and 4 deletions

View File

@@ -52,10 +52,13 @@ class TasksProxy:
def __setitem__(self, key, value):
with _task_lock:
tasks = _load_tasks()
tasks[key] = value
if isinstance(value, dict):
tasks[key] = value
else:
tasks[key] = value
_save_tasks(tasks)
def __getitem__(self, key):
return _load_tasks()[key]
return _TaskDict(key)
def __contains__(self, key):
return key in _load_tasks()
def pop(self, key, *args):
@@ -65,6 +68,21 @@ class TasksProxy:
_save_tasks(tasks)
return result
class _TaskDict(dict):
"""Auto-saving dict wrapper for a single task."""
def __init__(self, task_id):
self._task_id = task_id
tasks = _load_tasks()
super().__init__(tasks.get(task_id, {}))
def __setitem__(self, key, value):
super().__setitem__(key, value)
with _task_lock:
tasks = _load_tasks()
if self._task_id not in tasks:
tasks[self._task_id] = {}
tasks[self._task_id][key] = value
_save_tasks(tasks)
TASKS = TasksProxy()
# ========== UTILITY FUNCTIONS ==========