pub struct QualityPolicy { /* private fields */ }Expand description
What a report must satisfy.
Build one with the chainable setters, then evaluate it
against a report. Requirements are evaluated in a fixed order that does not
depend on the order they were added, so two callers stating the same policy
get the same document out.
Implementations§
Source§impl QualityPolicy
impl QualityPolicy
Sourcepub fn new() -> Self
pub fn new() -> Self
An empty policy. It states no requirement, so evaluating it as-is is a
PolicyError::NoRequirements.
Sourcepub fn min_quality_score(self, min: f64) -> Self
pub fn min_quality_score(self, min: f64) -> Self
Require the overall quality score to be at least min (0..=100).
Sourcepub fn min_dimension_score(self, dimension: QualityDimension, min: f64) -> Self
pub fn min_dimension_score(self, dimension: QualityDimension, min: f64) -> Self
Require one dimension’s score to be at least min (0..=100).
Sourcepub fn max_null_percentage(self, column: impl Into<String>, max: f64) -> Self
pub fn max_null_percentage(self, column: impl Into<String>, max: f64) -> Self
Require the named column’s null percentage to be at most max
(0..=100). Takes precedence over
max_null_percentage_any for that
column.
Sourcepub fn max_null_percentage_any(self, max: f64) -> Self
pub fn max_null_percentage_any(self, max: f64) -> Self
Require every other profiled column’s null percentage to be at most
max (0..=100).
Sourcepub fn max_duplicate_rows(self, max: usize) -> Self
pub fn max_duplicate_rows(self, max: usize) -> Self
Require the report to count at most max duplicate rows.
Sourcepub fn require_quality(self) -> Self
pub fn require_quality(self) -> Self
Require the report to carry a quality assessment at all.
Without this, a report with no assessment leaves quality requirements unevaluated and the verdict inconclusive. With it, the absence is itself a violation — which is what a pipeline wants when quality is supposed to be configured on.
Sourcepub fn require_dimension(self, dimension: QualityDimension) -> Self
pub fn require_dimension(self, dimension: QualityDimension) -> Self
Require a specific dimension to have been assessed.
Sourcepub fn scope(self, scope: PolicyScope) -> Self
pub fn scope(self, scope: PolicyScope) -> Self
Set what the requirements are statements about. Defaults to
PolicyScope::FullSource.
Sourcepub fn validate(&self) -> Result<(), PolicyError>
pub fn validate(&self) -> Result<(), PolicyError>
Check that the policy is evaluable, without needing a report.
Callers that read a policy out of configuration should do this at startup rather than discovering a bad threshold on the first dataset.
Sourcepub fn evaluate(
&self,
report: &ProfileReport,
) -> Result<GateResult, PolicyError>
pub fn evaluate( &self, report: &ProfileReport, ) -> Result<GateResult, PolicyError>
Evaluate the policy against a report.
Returns the structured outcome. The report is not modified, nothing is printed, and the process is not exited: what to do about a failing gate is the caller’s decision.