DisjointMapping#
module wntr.utils.disjoint_mapping
- class DisjointMapping[source]#
Bases:
MutableMapping
A mapping with keys that are also divided into disjoint groups of keys.
The main purpose of this utility class is to perform implicit name collision checking while also allowing both the groups and the main dictionary to be used as dictionaries – i.e., using __*item__ methods and mydict[key] methods.
- get(k[, d]) D[k] if k in D, else d. d defaults to None. #
- pop(k[, d]) v, remove specified key and return the corresponding value. #
If key is not found, d is returned if given, otherwise KeyError is raised.
- popitem() (k, v), remove and return some (key, value) pair [source]#
as a 2-tuple; but raise KeyError if D is empty.
- setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D #
- update([E, ]**F) None. Update D from mapping/iterable E and F. #
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v