From dad509768b3d321eefd1e995fec295fbbbe511d3 Mon Sep 17 00:00:00 2001 From: klemek Date: Thu, 5 Nov 2026 21:43:31 +0100 Subject: [PATCH] fix: less backups to less fails --- src/forge_invar/constants.py | 1 + src/forge_invar/forge_data.py | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/forge_invar/constants.py b/src/forge_invar/constants.py index 9999ac2..f256606 100644 --- a/src/forge_invar/constants.py +++ b/src/forge_invar/constants.py @@ -7,6 +7,7 @@ FORGE_SAVE_PATH = PROJECT_PATH / "forge_default_save.txt" FORGE_SAVE_BACKUP_PATH = PROJECT_PATH / "forge_default_save.txt.bck" MOCK_SAVE_PATH = RESOURCES_PATH / "mock_data.txt" +BACKUP_INTERVAL = 0.25 FONT_1_PATH = RESOURCES_PATH / "TinyAndChunkyRegular.ttf" FONT_2_PATH = RESOURCES_PATH / "Px437_IBM_BIOS.ttf" diff --git a/src/forge_invar/forge_data.py b/src/forge_invar/forge_data.py index cfe9242..71db7b8 100644 --- a/src/forge_invar/forge_data.py +++ b/src/forge_invar/forge_data.py @@ -1,8 +1,10 @@ import collections import pathlib +import time import typing from .constants import ( + BACKUP_INTERVAL, EXTRA_GROUP, FORGE_SAVE_BACKUP_PATH, FORGE_SAVE_PATH, @@ -22,6 +24,7 @@ from .glsl_funcs import fract, magic, magic_trigger, rand_time class ForgeRawData: def __init__(self) -> None: self.__data: dict[str, float] = collections.defaultdict(lambda: 0) + self.__last_backup: float = time.time() def try_restore_backup(self) -> bool: if FORGE_SAVE_BACKUP_PATH.exists() and self.read(FORGE_SAVE_BACKUP_PATH): @@ -37,10 +40,11 @@ class ForgeRawData: self.__data[key] = float(value) except: # noqa: E722 return False - if "time" in self.__data: + now = time.time() + if "time" in self.__data and (now - self.__last_backup) > BACKUP_INTERVAL: FORGE_SAVE_BACKUP_PATH.write_text(content) - return True - return False + self.__last_backup = now + return "time" in self.__data def __getitem__(self, key: str) -> float: return self.__data[key]