From 0b661f772ad5d7fb006db5a35a5914eb2f2cfd78 Mon Sep 17 00:00:00 2001 From: Daniil17 Date: Mon, 2 Mar 2026 19:46:20 +0300 Subject: [PATCH] Fix_daniil --- models.py | 2 +- repo.py | 28 ++++++++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/models.py b/models.py index b86ed3c..bdf1371 100644 --- a/models.py +++ b/models.py @@ -7,4 +7,4 @@ class User: id: int name: str email: Optional[str] = None - meta: Dict[str, Any] = {} + meta: Dict[str, Any] = field(default_factory=dict) diff --git a/repo.py b/repo.py index b9b9bfd..13dc269 100644 --- a/repo.py +++ b/repo.py @@ -1,18 +1,26 @@ import time +import threading +from typing import Any, Dict + class InMemoryRepo: def __init__(self): - self.storage = {} - self.last_saved_at = None + self.storage : Dict[Any, Any] = {} + self.last_saved_at : float | None = None + self._lock = threading.Lock() - def save(self, key, value): - time.sleep(0.05) - self.storage[key] = value - self.last_saved_at = time.time() + def save(self, key: Any, value: Any) -> None: + with self._lock: + time.sleep(0.05) + self.storage[key] = value + self.last_saved_at = time.time() - def get(self, key, default=None): - return self.storage.get(key, default) + def all(self) -> Dict[Any, Any]: + with self._lock: + return dict(self._storage) - def all(self): - return self.storage \ No newline at end of file + + @property + def last_saved_at(self) -> float | None: + return self._last_saved_at \ No newline at end of file