aboutsummaryrefslogtreecommitdiff
path: root/sbdata/repo.py
diff options
context:
space:
mode:
authornea <romangraef@gmail.com>2022-11-22 01:09:59 +0100
committernea <romangraef@gmail.com>2022-11-22 01:09:59 +0100
commitaebb89c8c0e002aeb9306c1a859a679c013e7375 (patch)
tree2d42a533a4f81d4a1f9265e2f021b72e1d531c61 /sbdata/repo.py
parentaeac71aac6006ddb1e09e7d4990d9af8a4203325 (diff)
downloadsbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.tar.gz
sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.tar.bz2
sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.zip
boooo, jani, booo
Diffstat (limited to 'sbdata/repo.py')
-rw-r--r--sbdata/repo.py12
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():