aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)