From 49141bccc641fb00ece49074e8a5ba8d87954759 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 19 Mar 2021 18:43:35 +0100 Subject: [PATCH] implemented function to calculate changes --- pype/settings/lib.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pype/settings/lib.py b/pype/settings/lib.py index c4238f3ffe..81561b876e 100644 --- a/pype/settings/lib.py +++ b/pype/settings/lib.py @@ -70,6 +70,25 @@ def create_local_settings_handler(): return MongoLocalSettingsHandler() +def calculate_changes(old_value, new_value): + changes = {} + for key, value in new_value.items(): + if key not in old_value: + changes[key] = value + continue + + _value = old_value[key] + if isinstance(value, dict) and isinstance(_value, dict): + _changes = calculate_changes(_value, value) + if _changes: + changes[key] = _changes + continue + + if _value != value: + changes[key] = value + return changes + + @require_handler def save_studio_settings(data): return _SETTINGS_HANDLER.save_studio_settings(data)