Merge pull request #40 from senju1337/feat/OPS-83

feat: add useful error message for when the store manager cant be initialized
This commit is contained in:
Guts 2025-03-23 17:31:07 +01:00 committed by GitHub
commit 0ce42f595c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -12,13 +12,25 @@ from senju.haiku import DEFAULT_HAIKU, Haiku
DEFAULT_DB_PATH: Path = Path("/var/lib/senju.json") DEFAULT_DB_PATH: Path = Path("/var/lib/senju.json")
class BadStoreManagerFileError(Exception):
def __init__(self, msg: str, * args: object) -> None:
self.msg = msg
super().__init__(*args)
def __str__(self) -> str:
return f"Store file is corrupted: {self.msg}"
class StoreManager: class StoreManager:
__slots__ = "_db", "logger" __slots__ = "_db", "logger"
_db: TinyDB _db: TinyDB
logger: Logger logger: Logger
def __init__(self, path_to_db: Path = DEFAULT_DB_PATH) -> None: def __init__(self, path_to_db: Path = DEFAULT_DB_PATH) -> None:
try:
self._db = TinyDB(path_to_db) self._db = TinyDB(path_to_db)
except Exception as e:
raise BadStoreManagerFileError(f"{e}")
self.logger = Logger(__name__) self.logger = Logger(__name__)
def _query(self, query: QueryImpl) -> list[dict]: def _query(self, query: QueryImpl) -> list[dict]: