Diagnostics¶
- class lsst.daf.relation.Diagnostics(is_doomed: bool, messages: list[str])¶
Bases:
objectA relation-processing algorithm that attempts to explain why a relation has no rows.
The
Diagnosticsclass itself is just the type returned by itsrunclass method, which performs a depth-first tree traversal looking for relations that are either known in advance to have no rows (Relation.max_rowszero) or shown to have no rows via anexecutorcallable; when present, these are then propagated downstream to the root. Only operations that can remove all rows (UnaryOperation.is_empty_invariantisFalse) are executed when no empty leaf relations are found.xMethods Summary
run(relation[, executor])Report on whether the given relation has no rows, and if so, why.
Methods Documentation
- classmethod run(relation: Relation, executor: Callable[[Relation], bool] | None = None) Diagnostics¶
Report on whether the given relation has no rows, and if so, why.
- Parameters:
- relation
Relation Relation to analyze.
- executor
Callable, optional If provided, a callable that takes a
Relationand does some engine-specific processing to determine whether it has any rows, such as aLIMIT 1query in SQL. If not provided, diagnostics will be based only on relations withRelation.max_rowsset to zero.
- relation
- Returns:
- diagnostics
Diagnostics Struct containing the diagnostics report.
- diagnostics