From 789fcb46915dce5fa533357ac462040ec6aa8968 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 22 Mar 2011 20:26:45 +0000 Subject: Adding BASE_IMAGE_ATTRS to ImageService --- nova/utils.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'nova/utils.py') diff --git a/nova/utils.py b/nova/utils.py index 199ee8701..96a51b425 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -597,3 +597,39 @@ def get_from_path(items, path): return results else: return get_from_path(results, remainder) + + +def flatten_dict(dict_, flattened=None): + """Recursively flatten a nested dictionary""" + flattened = flattened or {} + for key, value in dict_.iteritems(): + if hasattr(value, 'iteritems'): + flatten_dict(value, flattened) + else: + flattened[key] = value + return flattened + + +def partition_dict(dict_, keys): + """Return two dicts, one containing only `keys` the other containing + everything but `keys` + """ + intersection = {} + difference = {} + for key, value in dict_.iteritems(): + if key in keys: + intersection[key] = value + else: + difference[key] = value + return intersection, difference + + +def map_dict_keys(dict_, key_map): + """Return a dictionary in which the dictionaries keys are mapped to + new keys. + """ + mapped = {} + for key, value in dict_.iteritems(): + mapped_key = key_map[key] if key in key_map else key + mapped[mapped_key] = value + return mapped -- cgit From d8176eda3f31973a8718b98f35e202ff61c48bbc Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 22 Mar 2011 20:34:00 +0000 Subject: Pep8 fix --- nova/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nova/utils.py') diff --git a/nova/utils.py b/nova/utils.py index f43ba2e7e..7b96a0daf 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -621,7 +621,7 @@ def partition_dict(dict_, keys): def map_dict_keys(dict_, key_map): - """Return a dictionary in which the dictionaries keys are mapped to + """Return a dictionary in which the dictionaries keys are mapped to new keys. """ mapped = {} -- cgit From a7c9ad393f72b49515a445504a5bc87f8a26932c Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 23 Mar 2011 05:50:53 +0000 Subject: Filtering images by user_id now --- nova/utils.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'nova/utils.py') diff --git a/nova/utils.py b/nova/utils.py index 7b96a0daf..d114cb14f 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -629,3 +629,9 @@ def map_dict_keys(dict_, key_map): mapped_key = key_map[key] if key in key_map else key mapped[mapped_key] = value return mapped + + +def subset_dict(dict_, keys): + """Return a dict that only contains a subset of keys""" + subset = partition_dict(dict_, keys)[0] + return subset -- cgit