DimensionGraph¶
-
class
lsst.daf.butler.
DimensionGraph
(universe, elements, dimensions, joins)¶ Bases:
object
An automatically-expanded collection of both
Dimension
s andDimensionJoin
s.Notes
DimensionGraph
s can only be constructed from an instance of a special subclass,DimensionUniverse
, which itself constructed via from configuration (seeDimensionUniverse.fromConfig
). A universe graph contains all dimension elements, and all otherDimensionGraph
s orDimensionSet
s constructed from that universe are subsets of it.A
DimensionGraph
behaves much like aDimensionSet
containing onlyDimension
objects, with a few key differences:- A
DimensionGraph
always contains all of the required dependencies of any of its elements. That means some standard set operations (namelysymmetric_difference
/^
anddifference
/-
) can’t behave the way one would expect, and hence aren’t available (that’s whyDimensionGraph
doesn’t inherit fromcollections.abc.Set
whileDimensionSet
does). - Any
DimensionJoin
s whose dependencies are present in the graph are accessible via thejoins()
method (which is why we consider this graph - it contains the relationships as well as the elements of a system of dimensions).
Attributes Summary
elements
A set containing both Dimension
andDimensionJoin
objects (DimensionSet
).leaves
Dimensions that are not required or implied dependencies of any other dimension in the graph ( DimensionSet
).names
The names of all elements ( set
-like, immutable).universe
The graph of all dimensions compatible with self ( DimensionGraph
).Methods Summary
findIf
(predicate[, default])Return the element in self
that matches the given predicate.get
(key[, default])Return the element with the given name, or default
if it does not exist.getRegionHolder
()Return the Dimension that provides the spatial region for this combination of dimensions. implied
([only])Return the (recursive) implied dependencies of the dimensions in this graph. intersection
(*others[, implied])Return a new graph containing all elements that are in both self
isdisjoint
(other)Return True
if there are no dimensions in bothself
andother
, andFalse
otherwise.issubset
(other)Return True
if all dimensions inself
are also inother
.issuperset
(other)Return True
if all dimensions inother
are also inself
, andFalse
otherwise.joins
([summaries])Return the DimensionJoin
objects held by this graph.links
()Return the names of all fields that uniquely identify these dimensions in a data ID dict. toSet
()Return a DimensionSet
with the same dimensions asself
.union
(*others[, implied])Return a new graph containing all elements that are in self
or any of the other given graphs.Attributes Documentation
-
elements
¶ A set containing both
Dimension
andDimensionJoin
objects (DimensionSet
).
-
leaves
¶ Dimensions that are not required or implied dependencies of any other dimension in the graph (
DimensionSet
).
-
names
¶ The names of all elements (
set
-like, immutable).The order of the names is consistent with the iteration order of the
DimensionSet
itself.
-
universe
¶ The graph of all dimensions compatible with self (
DimensionGraph
).The universe of a
DimensionGraph
that is itself a universe isself
.
Methods Documentation
-
findIf
(predicate, default=None)¶ Return the element in
self
that matches the given predicate.Parameters: - predicate : callable
Callable that takes a single
DimensionElement
argument and returns abool
, indicating whether the given value should be returned.- default :
DimensionElement
, optional Object to return if no matching elements are found.
Returns: - matching :
DimensionElement
Element matching the given predicate.
Raises: - ValueError
Raised if multiple elements match the given predicate.
-
get
(key, default=None)¶ Return the element with the given name, or
default
if it does not exist.key
may also be aDimension
, in which case an equivalent object will be returned.
-
getRegionHolder
()¶ Return the Dimension that provides the spatial region for this combination of dimensions.
Returns: - holder :
DimensionElement
, or None. Dimension
orDimensionJoin
that provides a unique region for this graph, orNone
if there is no region or multiple regions.holder.hasRegion
is guaranteed to beTrue
ifholder
is notNone
.
- holder :
-
implied
(only=True)¶ Return the (recursive) implied dependencies of the dimensions in this graph.
Parameters: Returns: - set :
DimensionSet
A set containing dimensions that are implied dependencies of those in the graph, possibly (if
only
isFalse
) along with those in the graph.
- set :
-
intersection
(*others, implied=False)¶ - Return a new graph containing all elements that are in both
self
- and all of the other given graphs.
Parameters: Returns: - result :
DimensionGraph
Graph containing all elements in all of the inputs.
- Return a new graph containing all elements that are in both
-
isdisjoint
(other)¶ Return
True
if there are no dimensions in bothself
andother
, andFalse
otherwise.All graphs (including the empty graph) are disjoint with the empty graph.
-
issubset
(other)¶ Return
True
if all dimensions inself
are also inother
.The empty graph is a subset of all graphs (including the empty graph).
-
issuperset
(other)¶ Return
True
if all dimensions inother
are also inself
, andFalse
otherwise.All graphs (including the empty graph) are supersets of the empty graph.
-
joins
(summaries=True)¶ Return the
DimensionJoin
objects held by this graph.Parameters: Returns: - joins :
DimensionSet
The joins held by this graph, possibly filtered.
- joins :
-
links
()¶ Return the names of all fields that uniquely identify these dimensions in a data ID dict.
Returns:
-
toSet
()¶ Return a
DimensionSet
with the same dimensions asself
.
-
union
(*others, implied=False)¶ Return a new graph containing all elements that are in
self
or any of the other given graphs.Parameters: Returns: - result :
DimensionGraph
Graph containing any elements in any of the inputs.
- result :
- A