Merge pull request #28 from neutrinoceros/keyerror_explicit

Insightful KeyErrors
This commit is contained in:
Fabio Caccamo 2020-09-10 18:56:31 +02:00 committed by GitHub
commit 4d6c43db28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 4 deletions

View File

@ -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)

View File

@ -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):

View File

@ -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):