diff options
Diffstat (limited to 'sbdata/repo.py')
-rw-r--r-- | sbdata/repo.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sbdata/repo.py b/sbdata/repo.py index b57062b..77568d7 100644 --- a/sbdata/repo.py +++ b/sbdata/repo.py @@ -1,3 +1,4 @@ +import collections import dataclasses import json import os @@ -46,6 +47,17 @@ def find_item_by_name(name: str) -> typing.Optional[Item]: return None +def save_modified_file(file: pathlib.Path, new_json: dict): + d: collections.OrderedDict = json.loads(file.read_text(), object_pairs_hook=lambda x: collections.OrderedDict(x)) + for k, v in new_json.items(): + d[k] = v + for k in d.keys(): + if k not in new_json.keys(): + del d[k] + file.write_text(json + .dumps(d, sort_keys=False, indent=2, ensure_ascii=False)) + + def load_items(): item_dir = repo_dir / 'items' for item in item_dir.iterdir(): |