Expand description
Structured, prioritized findings over a ProfileReport (#375).
A report carries every metric, and says nothing about which of them
deserves attention. Answering that by hand means inventing thresholds at
every call site. FindingPolicy::evaluate (or ProfileReport::findings
with the default thresholds) turns the metrics a report already holds into
a short, deterministic list of Findings.
Findings are interpretation, not data cleaning: each one names what was observed and the evidence behind it, and none carries a raw cell value.
§Computed, not stored
Findings are derived from the report on demand and are not part of the serialized report. A report read back from its document yields the same findings as the report that wrote it, and changing a threshold does not require re-profiling or rewriting stored reports.
§Absence is not a clean result
A rule whose input the report does not carry, such as patterns that were
never detected or a quality assessment that was not requested, produces no
finding, and is listed in FindingsResult::not_evaluated with the reason.
An empty findings list means “looked, found nothing” only for the rules
that are not listed there.
§Scope
Findings describe the rows the report read. When the scan stopped early or
sampled, a FindingCode::PartialScan finding says so; the other findings
are not withheld, because what was observed is still true of those rows.
Use a QualityPolicy for pass/fail decisions about
the whole source.
Structs§
- Finding
- Something in the report that deserves attention.
- Finding
Policy - The thresholds findings apply.
- Findings
Result - What
FindingPolicy::evaluatefound. - Unevaluated
Rule - A rule that could not be evaluated, and why.
Enums§
- Evidence
Value - One value a finding read from the report, or a threshold it applied.
- Finding
Code - Stable identifier for the rule a finding came from.
- Finding
Policy Error - A finding threshold that cannot be applied as written.
- NotEvaluated
Reason - Why a rule produced no finding without having looked.
- Severity
- How much attention a finding asks for.
Constants§
- DEFAULT_
MIXED_ TYPES_ PERCENTAGE - Default for
FindingPolicy::mixed_types_percentage. Matches themixed typesflag in the Python binding’sto_llm_context(). - DEFAULT_
NULL_ HEAVY_ PERCENTAGE - Default for
FindingPolicy::null_heavy_percentage. Matches thenull-heavyflag in the Python binding’sto_llm_context().