marivo.analysis.Finding#

class marivo.analysis.Finding(*, finding_id, finding_type, epistemic_kind, artifact_id, session_id, subject, canonical_item_key, value, derivation, source_refs=(), observed_window=None, quality_status=None, committed_at, extractor_version='v4', artifact_schema_version='v4')[source]#

Bases: _FrozenModel

Parameters:
  • finding_id (str)

  • finding_type (Literal['observation', 'delta', 'metric_value', 'decomposition_item', 'anomaly_candidate', 'correlation_result', 'test_result', 'forecast_point', 'quality_check'])

  • epistemic_kind (Literal['observed', 'algebraic', 'estimated', 'tested', 'predicted', 'candidate'])

  • artifact_id (str)

  • session_id (str)

  • subject (Subject | EventSubject | LifecycleSubject | SubjectSetSubject)

  • canonical_item_key (str)

  • value (ObservationFindingValue | MetricValueFindingValue | DeltaFindingValue | ContributionFindingValue | AnomalyCandidateFindingValue | AssociationFindingValue | TestFindingValue | ForecastPointFindingValue | QualityCheckFindingValue)

  • derivation (DerivationRule)

  • source_refs (tuple[str, ...])

  • observed_window (TimeWindow | None)

  • quality_status (Literal['ready', 'needs_attention', 'not_ready'] | None)

  • committed_at (datetime)

  • extractor_version (str)

  • artifact_schema_version (str)

model_config = {'extra': 'forbid', 'frozen': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].