diff options
author | nea <romangraef@gmail.com> | 2022-11-22 01:09:59 +0100 |
---|---|---|
committer | nea <romangraef@gmail.com> | 2022-11-22 01:09:59 +0100 |
commit | aebb89c8c0e002aeb9306c1a859a679c013e7375 (patch) | |
tree | 2d42a533a4f81d4a1f9265e2f021b72e1d531c61 /sbdata/repo.py | |
parent | aeac71aac6006ddb1e09e7d4990d9af8a4203325 (diff) | |
download | sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.tar.gz sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.tar.bz2 sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.zip |
boooo, jani, booo
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(): |