aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThéo de la Hogue2024-01-30 17:01:37 +0100
committerThéo de la Hogue2024-01-30 17:01:37 +0100
commit719e1db3c07d0339acdc927fb6f66f8c2b9faa30 (patch)
treedc144d9f7510bbbaecdee19d94c4a428a977daa1
parent108222e9e13626291ede1fbe94847ba69261a4bf (diff)
downloadargaze-719e1db3c07d0339acdc927fb6f66f8c2b9faa30.zip
argaze-719e1db3c07d0339acdc927fb6f66f8c2b9faa30.tar.gz
argaze-719e1db3c07d0339acdc927fb6f66f8c2b9faa30.tar.bz2
argaze-719e1db3c07d0339acdc927fb6f66f8c2b9faa30.tar.xz
Fixing nested dict update.
-rw-r--r--src/argaze/DataFeatures.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/argaze/DataFeatures.py b/src/argaze/DataFeatures.py
index 06201fe..091b551 100644
--- a/src/argaze/DataFeatures.py
+++ b/src/argaze/DataFeatures.py
@@ -540,7 +540,24 @@ class PipelineStepObject():
with open(patch_filepath) as patch_file:
patch_data = json.load(patch_file)
- object_data.update(patch_data)
+
+ import collections.abc
+
+ def update(d, u):
+
+ for k, v in u.items():
+
+ if isinstance(v, collections.abc.Mapping):
+
+ d[k] = update(d.get(k, {}), v)
+
+ else:
+
+ d[k] = v
+
+ return d
+
+ object_data = update(object_data, patch_data)
return cls.from_dict(object_data, working_directory)