qat.model.post_processing module
Post-processing method models for qubit measurement results.
This module defines the post-processing methods available for qubit measurement discrimination. The main interface is the
PostProcessMethod union, which is a discriminated union over all supported post-processing method models.
The discriminator field is method, which is present in the base class MethodBase and is used by Pydantic
to determine which concrete model to use when parsing or serializing data. Each post-processing method (such as
LinearMapToRealMethod or MaxLikelihoodMethod) inherits from MethodBase and sets a unique value
for the method field, as defined in the MethodIndicator enum.
Usage in the Qubit model (see device.py):
class Qubit(Component):
...
post_process_method: PostProcessMethod | None = Field(
discriminator="method", default=None
)
...
Here, the discriminator='method' argument is required for Pydantic to correctly (de)serialize the union type.
Supported methods:
linear_map_complex_to_real: SeeLinearMapToRealMethodmax_likelihood: SeeMaxLikelihoodMethod
- class LinearMapToRealMethod(**data)
Bases:
MethodBaseModel for linear mapping post-processing method.
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.
-
mean_z_map_args:
list[complex]
-
method:
Literal[<MethodIndicator.LINEAR_MAP_COMPLEX_TO_REAL: 'linear_map_complex_to_real'>]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
mean_z_map_args:
- class MLStateMap(**data)
Bases:
NoExtraFieldsModelModel representing a mapping from a quantum state to a value and location.
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.
-
location:
complex
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
state:
str
-
val:
int
-
location:
- class MaxLikelihoodMethod(**data)
Bases:
MethodBaseModel for maximum likelihood post-processing method.
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.
-
method:
Literal[<MethodIndicator.MAX_LIKELIHOOD: 'max_likelihood'>]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
noise_est:
float
-
states:
list[MLStateMap]
-
method:
- class MethodBase(**data)
Bases:
NoExtraFieldsModelBase class for all post-processing methods. Contains the discriminator field.
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.
-
method:
MethodIndicator
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'use_enum_values': False, 'validate_assignment': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
method: