diff options
-rw-r--r-- | src/argaze/DataFeatures.py | 19 |
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) |