Takeout: Python Magic - ramirezfranciscof/aiida-core GitHub Wiki

Make intermediate dict branches


# This raises:
# dict0 = {}
# dict0['key1']['key2'] = 'PATH AUTOGEN!'

# This doesn't!
dict0 = {}
dict0.setdefault('key1',{})['key2'] = 'PATH AUTOGEN!'

# This will also protect existing data from being overwriten:
dict0 = {}
dict0['key1']['key2'] = dict0.setdefault('key1',{}).get('key2', 'PATH AUTOGEN!')