From 17342803f820ff957a57f9850d74990db4204067 Mon Sep 17 00:00:00 2001 From: Floppyrj45 Date: Thu, 19 Feb 2026 16:07:07 +0100 Subject: [PATCH] Add items/keys/values to TasksProxy for cleanup_old_tasks --- __pycache__/app.py.cpython-313.pyc | Bin 95173 -> 95718 bytes app.py.final | 6 ++++++ 2 files changed, 6 insertions(+) diff --git a/__pycache__/app.py.cpython-313.pyc b/__pycache__/app.py.cpython-313.pyc index 5372173c7434be688529ba40a2c7a9931597e2dc..b7721880f7ff5b603fcf3c5d326b6325bb9ca191 100644 GIT binary patch delta 11881 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 VcNK}Ezoij4Gj;FhVexAE{{s57{ElSK5E@8i!t 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 R;A#rNhod?Qr1)Lx{{e(?Ju3hJ diff --git a/app.py.final b/app.py.final index 13689de..bd4e387 100644 --- a/app.py.final +++ b/app.py.final @@ -61,6 +61,12 @@ class TasksProxy: return _TaskDict(key) def __contains__(self, key): return key in _load_tasks() + def items(self): + return _load_tasks().items() + def keys(self): + return _load_tasks().keys() + def values(self): + return _load_tasks().values() def pop(self, key, *args): with _task_lock: tasks = _load_tasks()