DatabaseDict¶
-
class
lsst.daf.butler.DatabaseDict(config, types, key, value, lengths=None)¶ Bases:
collections.abc.MutableMappingAn abstract base class for dict-like objects with a specific key type and namedtuple values, backed by a database.
DatabaseDict subclasses must implement the abstract
__getitem__,__setitem__,__delitem__`, ``__iter__, and__len__abstract methods defined byMutableMapping.They must also provide a constructor that takes the same arguments as that of
DatabaseDictitself, unless they are constructed solely byRegistry.makeDatabaseDict(in which case any constructor arguments are permitted).Parameters: - config :
Config Configuration used to identify and construct a subclass.
- types :
dict A dictionary mapping
strfield names to type objects, containing all fields to be held in the database.- key :
str The name of the field to be used as the dictionary key. Must not be present in
value._fields.- value :
type The type used for the dictionary’s values, typically a
namedtuple. Must have a_fieldsclass attribute that is a tuple of field names (i.e., as defined bynamedtuple); these field names must also appear in thetypesarg, and a_makeattribute to construct it from a sequence of values (again, as defined bynamedtuple).- lengths :
dict, optional Specific lengths of string fields. Defaults will be used if not specified.
Methods Summary
clear()fromConfig(config, types, key, value[, …])Create a DatabaseDictsubclass instance fromconfig.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()Methods Documentation
-
clear() → None. Remove all items from D.¶
-
static
fromConfig(config, types, key, value, lengths=None, registry=None)¶ Create a
DatabaseDictsubclass instance fromconfig.If
configcontains a classclskey, this will be assumed to be the fully-qualified name of a DatabaseDict subclass to construct. If not,registry.makeDatabaseDictwill be called instead, andconfigmust contain atablekey with the name of the table to use.Parameters: - config :
Config Configuration used to identify and construct a subclass.
- types :
dict A dictionary mapping
strfield names to Python type objects, containing all fields to be held in the database.- key :
str The name of the field to be used as the dictionary key. Must not be present in
value._fields.- value :
type The type used for the dictionary’s values, typically a
namedtuple. Must have a_fieldsclass attribute that is a tuple of field names (i.e., as defined bynamedtuple); these field names must also appear in thetypesarg, and a_makeattribute to construct it from a sequence of values (again, as defined bynamedtuple).- lengths :
dict, optional Specific lengths of string fields. Defaults will be used if not specified.
- registry :
Registry, optional A registry instance from which a
DatabaseDictsubclass can be obtained. Ignored ifconfig["cls"]exists; may be None if it does.
Returns: - dictionary :
DatabaseDict(subclass) A new
DatabaseDictsubclass instance.
- config :
-
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¶
- config :