DatabaseDict¶
- 
class lsst.daf.butler.DatabaseDict(config, types, key, value)¶
- Bases: - collections.abc.MutableMapping- An 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 by- MutableMapping.- They must also provide a constructor that takes the same arguments as that of - DatabaseDictitself, unless they are constructed solely by- Registry.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 by- namedtuple); these field names must also appear in the- typesarg, and a- _makeattribute to construct it from a sequence of values (again, as defined by- namedtuple).
 - Methods Summary - clear()- fromConfig(config, types, key, value[, registry])- Create a - DatabaseDictsubclass instance from- config.- 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, registry=None)¶
- Create a - DatabaseDictsubclass instance from- config.- If - configcontains a class- clskey, this will be assumed to be the fully-qualified name of a DatabaseDict subclass to construct. If not,- registry.makeDatabaseDictwill be called instead, and- configmust contain a- tablekey 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 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 by- namedtuple); these field names must also appear in the- typesarg, and a- _makeattribute to construct it from a sequence of values (again, as defined by- namedtuple).
- registry : Registry
- A registry instance from which a - DatabaseDictsubclass can be obtained. Ignored if- config["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 :