"""Enumerations for the Regulatory Reasoning Engine. Kept dependency-free and Python 3.9 compatible (str-Enums, no `|` unions). The reasoning layer sits ON TOP of the Legal Knowledge Graph (obligation registry) and the Compliance Execution Graph (control mapping / evidence). See memory `project_compliance_graph.md` for the cross-session contract. """ from __future__ import annotations from enum import Enum class ManufacturerRole(str, Enum): MANUFACTURER = "manufacturer" IMPORTER = "importer" DISTRIBUTOR = "distributor" INTEGRATOR = "integrator" OPERATOR = "operator" SERVICE_PROVIDER = "service_provider" class ProductLifecyclePhase(str, Enum): DEVELOPMENT = "development" PLACING_ON_MARKET = "placing_on_market" OPERATION = "operation" MAINTENANCE = "maintenance" UPDATE = "update" END_OF_LIFE = "end_of_life" class MarketModel(str, Enum): B2B = "b2b" B2C = "b2c" BOTH = "both" class ApplicabilityStatus(str, Enum): APPLICABLE = "applicable" PARTIALLY_APPLICABLE = "partially_applicable" UNCERTAIN = "uncertain" NOT_APPLICABLE = "not_applicable" class Confidence(str, Enum): HIGH = "high" MEDIUM = "medium" LOW = "low" class AuthorityLevel(str, Enum): """How binding a statement is — answers MUST visibly separate these.""" LEGAL_TEXT = "legal_text" RECITAL = "recital" GUIDANCE = "guidance" HARMONIZED_STANDARD = "harmonized_standard" TECHNICAL_STANDARD = "technical_standard" BEST_PRACTICE = "best_practice" INTERNAL_INTERPRETATION = "internal_interpretation" class OverlapType(str, Enum): IDENTICAL = "identical" SIMILAR = "similar" COMPLEMENTARY = "complementary" CONFLICTING = "conflicting" DIFFERENT_SCOPE = "different_scope" class CoverageStatus(str, Enum): COVERED = "covered" PARTIALLY_COVERED = "partially_covered" NOT_COVERED = "not_covered" UNCLEAR = "unclear" OUT_OF_SCOPE = "out_of_scope" class InterpretationVerdict(str, Enum): PLAUSIBLE = "plausible" TOO_NARROW = "too_narrow" TOO_BROAD = "too_broad" PARTIALLY_CORRECT = "partially_correct" UNSUPPORTED = "unsupported" UNCERTAIN = "uncertain"