Source code for nav.nav_orchestrator.nav_result

"""NavResult — full in-memory output of a single navigation.

Carries the headline (offset ± uncertainty + simple rank) plus full
diagnostic information about every technique that ran, every feature that
was extracted, and provenance.  Not intended to be JSON-serialized
directly; the curator builds a curated JSON-friendly subset.
"""

from dataclasses import dataclass, field
from typing import Any, Literal

import numpy as np

from nav.annotation import Annotations
from nav.nav_orchestrator.feature_summary import NavFeatureSummary
from nav.nav_orchestrator.image_classifier_result import NavImageClassifierResult
from nav.nav_orchestrator.provenance import Provenance
from nav.nav_technique.technique_result import NavTechniqueResult
from nav.support.status_reason import NavStatusReason
from nav.support.types import NDArrayFloatType

__all__ = ['NavResult']


Status = Literal['success', 'failed', 'conflicted']
"""Top-level status set on every NavResult."""

ConfidenceRank = Literal['high', 'medium', 'low', 'conflicted', 'failed']
"""Five-bucket confidence rank presented to downstream consumers."""