hierarchical_update#

lsst.ts.salobj.hierarchical_update(main, override, main_name, override_name, prefix='')#

Hierarchically update one dict with values from another.

If a value in override is a dict, then work item by item, recursively.

Parameters:
  • main (dict) – Dict to update.

  • override (dict) – Dict of update values.

  • main_name (str) – Name of main dict; used for error messages.

  • override_name (str) – Name of override dict; used for error messages.

  • prefix (str) – The key prefix for error messages. Should be blank for the first call and be “[key][subkey]…[sub…subkey]” for each successive key.

Raises:

ValueError – If a value exists in both dicts but is a dict in one and not in the other.

Return type:

None