refactor engine.data to separate basic file functionality
This commit is contained in:
parent
67e7316a69
commit
f98eb79c57
3 changed files with 34 additions and 29 deletions
|
@ -2,7 +2,7 @@ import json
|
||||||
from collections import UserDict
|
from collections import UserDict
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from . import data
|
from . import file as filemanager
|
||||||
|
|
||||||
class SettingsLoader(UserDict):
|
class SettingsLoader(UserDict):
|
||||||
def __init__(self: object, files: list) -> None:
|
def __init__(self: object, files: list) -> None:
|
||||||
|
@ -11,10 +11,10 @@ class SettingsLoader(UserDict):
|
||||||
self.reload()
|
self.reload()
|
||||||
|
|
||||||
def load_settings_file(self: object, file: str) -> None:
|
def load_settings_file(self: object, file: str) -> None:
|
||||||
if not data.exists('conf', file):
|
if not filemanager.exists('conf', file):
|
||||||
return
|
return
|
||||||
ext = os.path.splitext(file)[1]
|
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':
|
if ext == '.json':
|
||||||
self.data.update(json.load(fd))
|
self.data.update(json.load(fd))
|
||||||
else:
|
else:
|
||||||
|
@ -42,10 +42,11 @@ class SettingsWritable(SettingsMutable):
|
||||||
for k in self.data.keys():
|
for k in self.data.keys():
|
||||||
if not k in defaults:
|
if not k in defaults:
|
||||||
outdata[k] = self.data[k]
|
outdata[k] = self.data[k]
|
||||||
if outdata or data.exists('conf', self.outfile):
|
if outdata or filemanager.exists('conf', self.outfile):
|
||||||
with data.fd_write('conf', self.outfile) as fd:
|
with filemanager.fd_write('conf', self.outfile) as fd:
|
||||||
json.dump(outdata, fd, indent=4)
|
json.dump(outdata, fd, indent=4)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
init = SettingsWritable(['default.json', 'user.json'], 'user.json')
|
init = SettingsWritable(['default.json', 'user.json'], 'user.json')
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,7 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
from . import config
|
||||||
g_pp = None
|
from .file import *
|
||||||
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')
|
|
||||||
|
|
||||||
g_data = {}
|
g_data = {}
|
||||||
|
|
||||||
|
@ -74,4 +54,3 @@ def load_mods() -> None:
|
||||||
if '' in full_modlist[mn]:
|
if '' in full_modlist[mn]:
|
||||||
modlist[mn] = full_modlist[mn]['']
|
modlist[mn] = full_modlist[mn]['']
|
||||||
|
|
||||||
|
|
||||||
|
|
25
engine/file.py
Normal file
25
engine/file.py
Normal file
|
@ -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')
|
||||||
|
|
Loading…
Add table
Reference in a new issue