Skip to content
Snippets Groups Projects
Commit c62a4ec6 authored by Michael Langguth's avatar Michael Langguth
Browse files

Implement reduce_dict to general_utils.py.

Conflicts:
	video_prediction_tools/utils/general_utils.py
parent 4f5e3a32
No related branches found
No related tags found
No related merge requests found
...@@ -152,6 +152,31 @@ def check_dir(path2dir: str, lcreate=False): ...@@ -152,6 +152,31 @@ def check_dir(path2dir: str, lcreate=False):
raise NotADirectoryError("%{0}: Directory '{1}' does not exist".format(method, path2dir)) raise NotADirectoryError("%{0}: Directory '{1}' does not exist".format(method, path2dir))
def reduce_dict(dict_in: dict, dict_ref: dict):
"""
Returns reduced version of input directory with keys only that are also part in reference dictionary
:param dict_in: input dictionary
:param dict_ref: reference dictionary
:return: subset of input dictionary
"""
method = reduce_dict.__name__
# sanity checks
assert isinstance(dict_in, dict), "%{0}: dict_in must be a dictionary, but is of type {1}"\
.format(method, type(dict_in))
assert isinstance(dict_ref, dict), "%{0}: dict_ref must be a dictionary, but is of type {1}"\
.format(method, type(dict_ref))
if set(dict_ref.keys()).issubset(set(dict_in.keys())):
dict_in_subset = {key: dict_in[key] for key in dict_ref}
else:
print("Keys in dict_ref: {0}".format(", ".join(dict_ref.keys())))
print("Keys in dict_in: {0}".format(", ".join(dict_in.keys())))
raise KeyError("%{0}: Could not find all required keys from dict_ref in dict_in.".format(method))
return dict_in_subset
def provide_default(dict_in, keyname, default=None, required=False): def provide_default(dict_in, keyname, default=None, required=False):
""" """
Returns values of key from input dictionary or alternatively its default Returns values of key from input dictionary or alternatively its default
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment