spacesafeml-certification-b.../spacesafeml_certification_b.../dsl.py

54 lines
1.3 KiB
Python

"""Safety Contract DSL (minimal MVP).
Defines simple data models to describe safety contracts for onboard AI planning.
"""
from __future__ import annotations
from dataclasses import dataclass, field
from typing import List, Dict, Any, Optional
@dataclass
class LocalCapabilities:
name: str
capabilities: List[str] = field(default_factory=list)
metadata: Dict[str, Any] = field(default_factory=dict)
@dataclass
class SafetyPreConditions:
description: str
conditions: Dict[str, Any] = field(default_factory=dict)
@dataclass
class SafetyPostConditions:
description: str
conditions: Dict[str, Any] = field(default_factory=dict)
@dataclass
class ResourceBudgets:
cpu_cores: float = 0.0
memory_gb: float = 0.0
energy_wh: float = 0.0
time_seconds: float = 0.0
@dataclass
class DataSharingPolicy:
policy_id: str
allowed_data: List[str] = field(default_factory=list)
constraints: Dict[str, Any] = field(default_factory=dict)
@dataclass
class SafetyContract:
contract_id: str
local_capabilities: List[LocalCapabilities] = field(default_factory=list)
pre_conditions: Optional[SafetyPreConditions] = None
post_conditions: Optional[SafetyPostConditions] = None
budgets: Optional[ResourceBudgets] = None
data_policy: Optional[DataSharingPolicy] = None
version: str = "1.0"