flatten-dict icon indicating copy to clipboard operation
flatten-dict copied to clipboard

Error message for unflatten with duplicated key is not clear

Open ianlini opened this issue 5 years ago • 0 comments

Original error:

In [4]: unflatten({1: ('a', 'b'), 2: ('a', 'b')}, inverse=True)                                                                                                                                                   
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-4-9f138cfe18d2> in <module>
----> 1 unflatten({1: ('a', 'b'), 2: ('a', 'b')}, inverse=True)

~/projects/flatten-dict/flatten_dict/flatten_dict.py in unflatten(d, splitter, inverse)
    122             flat_key, value = value, flat_key
    123         key_tuple = splitter(flat_key)
--> 124         nested_set_dict(unflattened_dict, key_tuple, value)
    125 
    126     return unflattened_dict

~/projects/flatten-dict/flatten_dict/flatten_dict.py in nested_set_dict(d, keys, value)
     91         return
     92     d = d.setdefault(key, {})
---> 93     nested_set_dict(d, keys[1:], value)
     94 
     95 

~/projects/flatten-dict/flatten_dict/flatten_dict.py in nested_set_dict(d, keys, value)
     87     if len(keys) == 1:
     88         if key in d:
---> 89             raise ValueError("duplicated key '{}'".format(key))
     90         d[key] = value
     91         return

ValueError: duplicated key 'b'

Expected error:

ValueError: duplicated key ('a', 'b')

ianlini avatar Sep 13 '19 07:09 ianlini