nested_dict#
- class NestedDict(data=None)[source]#
Bases:
dict- clear() None. Remove all items from D.#
- copy() a shallow copy of D#
- classmethod fromkeys(iterable, value=None, /)#
Create a new dictionary with keys from iterable and values set to value.
- get(*keys)[source]#
Get a nested value from this dict.
- Parameters:
keys (
Tuple[Any]) – an unpacked tuple of keys used to access the value.- Return type:
Any
Example
>>> nd = NestedDict() >>> nd.set('a', 'b', 'c', 15, priority=1) >>> nd {'a': {'b': {'c': 15}}} >>> nd.get('a', 'b') {'c': 15} >>> nd.get('a', 'b', 'c') 15
- items() a set-like object providing a view on D's items#
- keys() a set-like object providing a view on D's keys#
- pop(k[, d]) v, remove specified key and return the corresponding value.#
If the key is not found, return the default if given; otherwise, raise a KeyError.
- popitem()#
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
- set(*args, priority=0)[source]#
Override of the standard
dict.setmethod allowing for setting a nested key in one call.- Parameters:
args (
Tuple[Any]) – an unpacked tuple of firstly keys and then the value to be set.priority (
float) – the priority for setting this value. If the given priority is higher than a previously set priority we set the value, otherwise we ignore it.
- Raises:
ValueError – If there are not at least 2 arguments provided.
Examples
>>> nd = NestedDict() >>> nd.set('a', 'b', 'c', 15, priority=1) >>> nd {'a': {'b': {'c': 15}}} >>> nd.set('a', 'b', 'c', 'overwritten?', priority=0) >>> nd {'a': {'b': {'c': 15}}} >>> nd.get('a', 'b', 'c') 15
- setdefault(key, default=None, /)#
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
- update([E, ]**F) None. Update D from dict/iterable E and F.#
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
- values() an object providing a view on D's values#