From f98eb79c57d42ebbafac607cdd0e2389361be909 Mon Sep 17 00:00:00 2001 From: cecilkorik Date: Thu, 24 Apr 2025 00:29:30 -0400 Subject: [PATCH] refactor engine.data to separate basic file functionality --- engine/config.py | 13 +++++++------ engine/data.py | 25 ++----------------------- engine/file.py | 25 +++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 29 deletions(-) create mode 100644 engine/file.py diff --git a/engine/config.py b/engine/config.py index 90fd3b3..e80d739 100644 --- a/engine/config.py +++ b/engine/config.py @@ -2,7 +2,7 @@ import json from collections import UserDict import os import sys -from . import data +from . import file as filemanager class SettingsLoader(UserDict): def __init__(self: object, files: list) -> None: @@ -11,10 +11,10 @@ class SettingsLoader(UserDict): self.reload() def load_settings_file(self: object, file: str) -> None: - if not data.exists('conf', file): + if not filemanager.exists('conf', file): return ext = os.path.splitext(file)[1] - with data.fd_open('conf', file) as fd: + with filemanager.fd_open('conf', file) as fd: if ext == '.json': self.data.update(json.load(fd)) else: @@ -42,10 +42,11 @@ class SettingsWritable(SettingsMutable): for k in self.data.keys(): if not k in defaults: outdata[k] = self.data[k] - if outdata or data.exists('conf', self.outfile): - with data.fd_write('conf', self.outfile) as fd: + if outdata or filemanager.exists('conf', self.outfile): + with filemanager.fd_write('conf', self.outfile) as fd: json.dump(outdata, fd, indent=4) - + + init = SettingsWritable(['default.json', 'user.json'], 'user.json') diff --git a/engine/data.py b/engine/data.py index ad49646..f1bad7b 100644 --- a/engine/data.py +++ b/engine/data.py @@ -1,27 +1,7 @@ import os import sys - -g_pp = None -def program_path() -> str: - global g_pp - - if g_pp == None: - g_pp = os.path.abspath(os.path.split(sys.argv[0])[0]) - - return g_pp - -def exists(vault: str, path: str) -> bool: - fp = os.path.join(program_path(), vault, path) - return os.path.exists(fp) - -def fd_open(vault: str, path: str) -> object: - fp = os.path.join(program_path(), vault, path) - return open(fp, 'r') - -def fd_write(vault: str, path: str) -> object: - fp = os.path.join(program_path(), vault, path) - os.makedirs(os.path.join(program_path(), vault), exist_ok=True) - return open(fp, 'w') +from . import config +from .file import * g_data = {} @@ -74,4 +54,3 @@ def load_mods() -> None: if '' in full_modlist[mn]: modlist[mn] = full_modlist[mn][''] - diff --git a/engine/file.py b/engine/file.py new file mode 100644 index 0000000..6b1177f --- /dev/null +++ b/engine/file.py @@ -0,0 +1,25 @@ +import os +import sys + +g_pp = None +def program_path() -> str: + global g_pp + + if g_pp == None: + g_pp = os.path.abspath(os.path.split(sys.argv[0])[0]) + + return g_pp + +def exists(vault: str, path: str) -> bool: + fp = os.path.join(program_path(), vault, path) + return os.path.exists(fp) + +def fd_open(vault: str, path: str) -> object: + fp = os.path.join(program_path(), vault, path) + return open(fp, 'r') + +def fd_write(vault: str, path: str) -> object: + fp = os.path.join(program_path(), vault, path) + os.makedirs(os.path.join(program_path(), vault), exist_ok=True) + return open(fp, 'w') +