qat.experimental.system_data.materialisers.model.plugin module

Default materialiser plugin for boundary dispatch.

This module self-registers on import via the shared registry API in qat.experimental.system_data.materialisers.plugins.

Model payloads embed a _version key produced by build_payload() to allow unambiguous detection at the boundary.

class DefaultAdditionalData(**data)

Bases: SourceAdditionalDataModel

Additional-data contract for default v0.1.0 materialisation.

Default payloads require no extra inputs beyond the source payload itself, so this model carries no fields.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid'}

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

class DefaultPlugin

Bases: SourceMaterialiserPlugin

Boundary plugin for default v0.1.0 source payloads.

additional_data_model

alias of DefaultAdditionalData

materialise(*, source_payload, source_version, additional_data)

Materialise canonical data from a default source payload.

Parameters:

source_payload (dict[str, Any]) – Dict with a model key containing the CanonicalSystemData field values and a _version structural hash entry, as produced by CanonicalSystemDataBuilder.build_payload().

Return type:

CanonicalSystemData

Returns:

Reconstructed CanonicalSystemData.

resolve_type_and_version(source_payload)

Detect a default source payload.

A payload is identified as default v0.1.0 when its model sub-dict contains a _version key matching the current structural hash (version_structure_hash).

Parameters:

source_payload (dict[str, Any]) – Raw source payload dict.

Return type:

tuple[SourceType, str] | None

Returns:

(SourceType.MODEL, "0.1.0") if matched, otherwise None.

source_type: SourceType = 'model'
source_version: str = '0.1.0'
verify_integrity(source_payload)

No additional integrity checks required for default payloads.