X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-base.git/blobdiff_plain/310c5346861980c50ac8cd5113198ff0eb04b390..30641d7872dd5f494c965b4d9f01e8d8910dc4f4:/python/invirt/config.py diff --git a/python/invirt/config.py b/python/invirt/config.py index e4aad28..039ca3d 100644 --- a/python/invirt/config.py +++ b/python/invirt/config.py @@ -20,6 +20,8 @@ lock_path = '/var/lib/invirt/cache.lock' def augment(d1, d2): """Splice dict-tree d2 into d1. Return d1. + d2 may be None for an empty dict-tree, because yaml.load produces that. + Example: >>> d = {'a': {'b': 1}, 'c': 2} >>> augment(d, {'a': {'d': 3}}) @@ -27,6 +29,8 @@ def augment(d1, d2): >>> d {'a': {'b', 1, 'd': 3}, 'c': 2} """ + if d2 is None: + return d1 for k in d2: if k in d1 and isinstance(d1[k], dict): augment(d1[k], d2[k]) @@ -136,6 +140,7 @@ def load(force_refresh = False): return ns.cfg dicts = load() -structs = dicts2struct(dicts) +structs = dicts2struct(dicts, '') +safestructs = dicts2struct(dicts, '', '') # vim:et:sw=4:ts=4