so that if they have nested default values, which may be set to 'local', and modified later, the original isn't changed. (technically it should be enough to do the copy when setting, but it's safer to copy them entirely for now)
import isc.cc.data
import isc.config.module_spec
import ast
+import copy
class ConfigDataError(Exception): pass
cur_el = _get_map_or_list(cur_el)
cur_el = _find_spec_part_single(cur_el, id_parts[-1])
- return cur_el
+ # Due to the raw datatypes we use, it is safer to return a deep copy here
+ return copy.deepcopy(cur_el)
def spec_name_list(spec, prefix="", recurse=False):
"""Returns a full list of all possible item identifiers in the