qat.model.target_data module

class AbstractTargetData(**data)

Bases: NoExtraFieldsFrozenModel

Data related to a general target machine.

Parameters:
  • max_shots – The maximum amount of shots possible on this target.

  • default_shots – The default amount of shots on this target if none specified through the instructions.

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.

default_shots: Annotated[int]
classmethod from_yaml(path)
max_shots: Annotated[int]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True, '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].

DefaultTargetData()

Returns a default TargetData instance.

Return type:

TargetData

class DeviceDescription(**data)

Bases: NoExtraFieldsFrozenModel

Device-related target description.

Parameters:
  • sample_time – The rate at which the pulse is sampled (in s).

  • samples_per_clock_cycle – The number of samples per clock cycle.

  • instruction_memory_size – The max. allowed number of instructions.

  • waveform_memory_size – The max. memory that can be used for waveforms, in clock cycles.

  • pulse_duration_min – The minimal pulse duration for all pulse channels.

  • pulse_duration_max – The maximal pulse duration for all pulse channels.

  • pulse_channel_lo_freq_min – The minimal LO frequency for a pulse channel.

  • pulse_channel_lo_freq_max – The maximal LO frequency for a pulse channel.

  • pulse_channel_if_freq_min – The minimal intermediate frequency for a pulse channel.

  • pulse_channel_if_freq_max – The maximal intermediate frequency for a pulse channel.

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.

property clock_cycle
instruction_memory_size: Annotated[int]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True, '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].

pulse_channel_if_freq_max: Annotated[int]
pulse_channel_if_freq_min: Annotated[int]
pulse_channel_lo_freq_max: Annotated[int]
pulse_channel_lo_freq_min: Annotated[int]
pulse_duration_max: Annotated[float]
pulse_duration_min: Annotated[float]
classmethod random(seed=42)
sample_time: Annotated[float]
samples_per_clock_cycle: Annotated[int]
validate_durations()
waveform_memory_size: Annotated[int]
class QubitDescription(**data)

Bases: DeviceDescription

Qubit-related target description.

Parameters:

passive_reset_time – The amount of time after each shot where the qubit is idle.

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] = {'extra': 'forbid', 'frozen': True, '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].

passive_reset_time: Annotated[float]
classmethod random(seed=42)
class ResonatorDescription(**data)

Bases: DeviceDescription

Resonator-related target description.

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] = {'extra': 'forbid', 'frozen': True, '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].

class TargetData(**data)

Bases: AbstractTargetData

Data related to a general target machine.

Parameters:
  • max_shots – The maximum amount of shots possible on this target.

  • default_shots – The default amount of shots on this target if none specified through the instructions.

  • QUBIT_DATA – Qubit-related target description.

  • RESONATOR_DATA – Resonator-related target description.

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.

QUBIT_DATA: QubitDescription
RESONATOR_DATA: ResonatorDescription
property clock_cycle
classmethod default()
Return type:

TargetData

property instruction_memory_size
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True, '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].

classmethod random(seed=42)
Return type:

TargetData

validate_clock_cycles()
validate_instruction_memory_size()