From dfc79a44e85f19c2984b4d3aa9f4935939f0410e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Robert?= Date: Mon, 7 Sep 2020 19:25:34 +0200 Subject: [PATCH] insightful keyerrors --- benedict/core/move.py | 4 +++- benedict/dicts/keylist/keylist_dict.py | 4 ++-- benedict/dicts/keylist/keylist_util.py | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/benedict/core/move.py b/benedict/core/move.py index f661f4f..cbaba49 100644 --- a/benedict/core/move.py +++ b/benedict/core/move.py @@ -5,5 +5,7 @@ def move(d, key_src, key_dest, overwrite=True): if key_dest == key_src: return if key_dest in d and not overwrite: - raise KeyError + raise KeyError( + "'{}' already in target dict and `overwrite` is disabled.".format(key_dest) + ) d[key_dest] = d.pop(key_src) diff --git a/benedict/dicts/keylist/keylist_dict.py b/benedict/dicts/keylist/keylist_dict.py index 55c56d2..f476899 100644 --- a/benedict/dicts/keylist/keylist_dict.py +++ b/benedict/dicts/keylist/keylist_dict.py @@ -36,7 +36,7 @@ class KeylistDict(dict): elif type_util.is_list(parent): del parent[key] return - raise KeyError + raise KeyError(keys) def __getitem__(self, key): if type_util.is_list_or_tuple(key): @@ -49,7 +49,7 @@ class KeylistDict(dict): return parent[key] elif type_util.is_list(parent): return parent[key] - raise KeyError + raise KeyError(keys) def __setitem__(self, key, value): if type_util.is_list_or_tuple(key): diff --git a/benedict/dicts/keylist/keylist_util.py b/benedict/dicts/keylist/keylist_util.py index 9689131..f8b95a3 100644 --- a/benedict/dicts/keylist/keylist_util.py +++ b/benedict/dicts/keylist/keylist_util.py @@ -16,7 +16,7 @@ def _get_item_key_and_value(item, key): return (index, item[index], ) elif type_util.is_dict(item): return (key, item[key], ) - raise KeyError + raise KeyError(key) def _get_or_new_item_value(item, key, subkey):