diff --git a/clearml/task.py b/clearml/task.py index c87cb223..9527a444 100644 --- a/clearml/task.py +++ b/clearml/task.py @@ -3673,14 +3673,14 @@ class Task(_Task): # noinspection PyProtectedMember task._arguments.copy_from_dict(flatten_dictionary(config_dict), prefix=name) - def _refresh_args_dict(task, config_dict): + def _refresh_args_dict(task, config_proxy_dict): # reread from task including newly added keys # noinspection PyProtectedMember - a_flat_dict = task._arguments.copy_to_dict(flatten_dictionary(config_dict), prefix=name) + a_flat_dict = task._arguments.copy_to_dict(flatten_dictionary(config_proxy_dict), prefix=name) # noinspection PyProtectedMember - nested_dict = config_dict._to_dict() - config_dict.clear() - config_dict.update(nested_from_flat_dictionary(nested_dict, a_flat_dict)) + nested_dict = config_proxy_dict._to_dict() + config_proxy_dict.clear() + config_proxy_dict._do_update(nested_from_flat_dictionary(nested_dict, a_flat_dict)) def _check_keys(dict_, warning_sent=False): if warning_sent: diff --git a/clearml/utilities/proxy_object.py b/clearml/utilities/proxy_object.py index 1b0c6ca1..43435879 100644 --- a/clearml/utilities/proxy_object.py +++ b/clearml/utilities/proxy_object.py @@ -39,10 +39,14 @@ class ProxyDictPostWrite(dict): return a_dict def update(self, E=None, **F): + res = self._do_update(E, **F) + self._set_callback() + return res + + def _do_update(self, E=None, **F): res = super(ProxyDictPostWrite, self).update( ProxyDictPostWrite(self._update_obj, self._set_callback, E) if E is not None else ProxyDictPostWrite(self._update_obj, self._set_callback, **F)) - self._set_callback() return res