NamedKeyDict¶
-
class
lsst.daf.butler.NamedKeyDict(*args)¶ Bases:
lsst.daf.butler.core.named.NamedKeyMutableMappingA dictionary wrapper that require keys to have a
.nameattribute, and permits lookups using either key objects or their names.Names can be used in place of keys when updating existing items, but not when adding new items.
It is assumed (but asserted) that all name equality is equivalent to key equality, either because the key objects define equality this way, or because different objects with the same name are never included in the same dictionary.
Parameters: - args
All positional constructor arguments are forwarded directly to
dict. Keyword arguments are not accepted, because plain strings are not valid keys forNamedKeyDict.
Raises: - AttributeError
Raised when an attempt is made to add an object with no
.nameattribute to the dictionary.- AssertionError
Raised when multiple keys have the same name.
Attributes Summary
namesThe set of names associated with the keys, in the same order ( KeysView).Methods Summary
byName()Return a dictwith names as keys and the same values asself.clear()copy()Return a new NamedKeyDictwith the same elements.freeze()Disable all mutators, effectively transforming selfinto an immutable mapping.get(k[,d])items()keys()pop(k[,d])If key is not found, d is returned if given, otherwise KeyError is raised. popitem()as a 2-tuple; but raise KeyError if D is empty. setdefault(k[,d])update([E, ]**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 values()Attributes Documentation
Methods Documentation
-
clear() → None. Remove all items from D.¶
-
copy() → lsst.daf.butler.core.named.NamedKeyDict[~K, ~V][K, V]¶ Return a new
NamedKeyDictwith the same elements.
-
freeze() → lsst.daf.butler.core.named.NamedKeyMapping[~K, ~V][K, V]¶ Disable all mutators, effectively transforming
selfinto an immutable mapping.Returns: - self :
NamedKeyMapping While
selfis modified in-place, it is also returned with a type anotation that reflects its new, frozen state; assigning it to a new variable (and considering any previous references invalidated) should allow for more accurate static type checking.
- self :
-
get(k[, d]) → D[k] if k in D, else d. d defaults to None.¶
-
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 key is not found, d is returned if given, otherwise KeyError is raised.
-
popitem() → (k, v), remove and return some (key, value) pair¶ 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
-
values() → an object providing a view on D's values¶