petitRADTRANS.sbi.compatibility#

Compatibility metadata and schema checks for SBI task families.

Exceptions#

TaskCompatibilityError

Raised when an observation or artifact is incompatible with a task.

Classes#

TaskFingerprint

Deterministic fingerprint of an SBI task family.

CompatibilityReport

Describe whether two task-family descriptors are compatible.

Functions#

_freeze_json_value(→ Any)

make_digest(→ str)

Return a deterministic SHA256 digest for a JSON-serializable payload.

compare_named_mappings(→ CompatibilityReport)

Compare two mapping payloads and report incompatible keys or values.

Module Contents#

petitRADTRANS.sbi.compatibility._freeze_json_value(value: Any) Any#
petitRADTRANS.sbi.compatibility.make_digest(payload: Mapping[str, Any]) str#

Return a deterministic SHA256 digest for a JSON-serializable payload.

class petitRADTRANS.sbi.compatibility.TaskFingerprint#

Deterministic fingerprint of an SBI task family.

digest: str#
payload: Mapping[str, Any]#
classmethod from_payload(payload: Mapping[str, Any]) TaskFingerprint#
class petitRADTRANS.sbi.compatibility.CompatibilityReport#

Describe whether two task-family descriptors are compatible.

is_compatible: bool#
mismatches: tuple[str, Ellipsis] = ()#
expected: Mapping[str, Any]#
observed: Mapping[str, Any]#
raise_for_incompatibility() None#

Raise a typed error when the report contains mismatches.

exception petitRADTRANS.sbi.compatibility.TaskCompatibilityError#

Bases: ValueError

Raised when an observation or artifact is incompatible with a task.

petitRADTRANS.sbi.compatibility.compare_named_mappings(expected: Mapping[str, Any], observed: Mapping[str, Any], prefix: str) CompatibilityReport#

Compare two mapping payloads and report incompatible keys or values.