DatabaseDimensionElement¶
- 
class lsst.daf.butler.DatabaseDimensionElement(name: str, storage: dict, *, implied: lsst.daf.butler.core.named.NamedValueAbstractSet[lsst.daf.butler.core.dimensions._elements.Dimension][lsst.daf.butler.core.dimensions._elements.Dimension], metadata: lsst.daf.butler.core.named.NamedValueAbstractSet[lsst.daf.butler.core.ddl.FieldSpec][lsst.daf.butler.core.ddl.FieldSpec])¶
- Bases: - lsst.daf.butler.DimensionElement- An intermediate base class for - DimensionElementclasses whose instances that map directly to a database table or query.- Parameters: - name : str
- Name of the dimension. 
- storage : dict
- Fully qualified name of the - DatabaseDimensionRecordStoragesubclass that will back this element in the registry (in a “cls” key) along with any other construction keyword arguments (in other keys).
- implied : NamedValueAbstractSet[Dimension]
- Other dimensions whose keys are included in this dimension’s (logical) table as foreign keys. 
- metadata : NamedValueAbstractSet[ddl.FieldSpec]
- Field specifications for all non-key fields in this dimension’s table. 
 - Attributes Summary - RecordClass- The - DimensionRecordsubclass used to hold records for this element (- type).- alwaysJoin- If - True, always include this element in any query or data ID in which its- requireddimensions appear, because it defines a relationship between those dimensions that must always be satisfied.- dimensions- The union of - requiredand- implied, with all elements in- requiredbefore any elements in- implied.- governor- The - GovernorDimensionthat is a required dependency of this element, or- Noneif there is no such dimension (- GovernorDimensionor- None).- graph- Minimal graph that includes this element ( - DimensionGraph).- implied- Other dimensions that are uniquely identified directly by a record of this dimension element. - metadata- Additional metadata fields included in this element’s table ( - NamedValueSetof- FieldSpec).- name- Unique string identifier for this endpoint ( - str).- required- Dimensions that are necessary to uniquely identify a record of this dimension element. - spatial- This endpoint’s - SPATIALfamily.- temporal- This endpoint’s - TEMPORALfamily.- topology- The relationship families to which this endpoint belongs, keyed by the category for that family. - viewOf- Name of another table this element’s records are drawn from ( - stror- None).- Methods Summary - hasTable()- Return - Trueif this element is associated with a table (even if that table “belongs” to another element).- makeStorage(db, *, context, governors, …)- Construct the - DimensionRecordStorageinstance that should be used to back this element in a registry.- Attributes Documentation - 
RecordClass¶
- The - DimensionRecordsubclass used to hold records for this element (- type).- Because - DimensionRecordsubclasses are generated dynamically, this type cannot be imported directly and hence can only be obtained from this attribute.
 - 
alwaysJoin¶
- If - True, always include this element in any query or data ID in which its- requireddimensions appear, because it defines a relationship between those dimensions that must always be satisfied.
 - 
dimensions¶
- The union of - requiredand- implied, with all elements in- requiredbefore any elements in- implied.- This differs from - self.graph.dimensionsboth in order and in content:- as in self.implied, implied dimensions are not expanded recursively here;
- implied dimensions appear after required dimensions here, instead of being topologically ordered.
 - As a result, this set is ordered consistently with - self.RecordClass.fields.
- as in 
 - 
governor¶
- The - GovernorDimensionthat is a required dependency of this element, or- Noneif there is no such dimension (- GovernorDimensionor- None).
 - 
graph¶
- Minimal graph that includes this element ( - DimensionGraph).- self.graph.requiredincludes all dimensions whose primary key values are sufficient (often necessary) to uniquely identify- self(including- selfif- isinstance(self, Dimension).- self.graph.impliedincludes all dimensions also identified (possibly recursively) by this set.
 - 
implied¶
- Other dimensions that are uniquely identified directly by a record of this dimension element. - For elements with a database representation, these are exactly the dimensions used to form foreign key constraints whose fields are not (wholly) also part of the primary key. - Unlike - self.graph.implied, this set is not expanded recursively.
 - 
metadata¶
- Additional metadata fields included in this element’s table ( - NamedValueSetof- FieldSpec).
 - 
required¶
- Dimensions that are necessary to uniquely identify a record of this dimension element. - For elements with a database representation, these dimension are exactly those used to form the (possibly compound) primary key, and all dimensions here that are not - selfare also used to form foreign keys.- For - Dimensioninstances, this should be exactly the same as- graph.required, but that may not be true for- DimensionElementinstances in general. When they differ, there are multiple combinations of dimensions that uniquely identify this element, but this one is more direct.
 - 
topology¶
- The relationship families to which this endpoint belongs, keyed by the category for that family. 
 - Methods Documentation - 
hasTable() → bool¶
- Return - Trueif this element is associated with a table (even if that table “belongs” to another element).
 - 
makeStorage(db: Database, *, context: Optional[StaticTablesContext] = None, governors: NamedKeyMapping[GovernorDimension, GovernorDimensionRecordStorage]) → DatabaseDimensionRecordStorage¶
- Construct the - DimensionRecordStorageinstance that should be used to back this element in a registry.- Parameters: - db : Database
- Interface to the underlying database engine and namespace. 
- context : StaticTablesContext, optional
- If provided, an object to use to create any new tables. If not provided, - db.ensureTableExistsshould be used instead.
- governors : NamedKeyMapping
- Mapping from - GovernorDimensionto the record storage backend for that dimension, containing all governor dimensions.
 - Returns: - storage : DatabaseDimensionRecordStorage
- Storage object that should back this element in a registry. 
 
- db : 
 
- name :