qat.experimental.system_data.materialisers.purr.extensions.qblox module

Decode legacy PuRR Qblox payload fragments into typed canonical extensions.

PuRR serialises qat.purr.backends.qblox.config objects into the baseband payload of each physical channel. This module owns that source syntax: it strips serialisation markers, drops the None placeholders PuRR writes for unset fields, and validates the remaining values into the typed extension defined by qat.experimental.system_data.hardware.qblox.configuration.

Keeping the decoding here means the derived Qblox hardware view never parses source payloads, and later compiler layers only ever see validated, immutable configuration.

QBLOX_PORT_REFERENCE_ATTRIBUTE = 'qblox'

Canonical external-resource attribute key holding a PortReference.

decode_qblox_configuration(value, path='baseband.config')

Decode the baseband.config payload of one PuRR physical channel.

Parameters:
  • value (Any) – Decoded source configuration payload.

  • path (str) – Source path of the payload, used to describe validation failures.

Return type:

QbloxSuppliedConfiguration | None

Returns:

The typed configuration, or None when the channel supplies none.

Raises:

ValueError – If the payload carries unsupported fields or values.

decode_qblox_port_attributes(payload)

Materialise the typed Qblox extensions of one PuRR physical channel.

Parameters:

payload (Mapping[str, Any]) – Decoded PuRR physical-channel payload.

Return type:

dict[str, Any] | None

Returns:

The typed attributes to attach, or None for a non-Qblox channel.

Raises:

ValueError – If the channel carries malformed Qblox metadata.

decode_qblox_port_reference(payload)

Read the physical identity of one PuRR physical channel.

Physical channels of other targets return None so the generic PuRR materialiser keeps their source attributes untouched.

Parameters:

payload (Mapping[str, Any]) – Decoded PuRR physical-channel payload.

Return type:

PortReference | None

Returns:

The typed port reference, or None for a non-Qblox channel.

Raises:

ValueError – If a Qblox channel carries malformed physical identity.