braket.device_schema.openqasm_device_action_properties module

class braket.device_schema.openqasm_device_action_properties.OpenQASMDeviceActionProperties[source]

Bases: braket.device_schema.device_action_properties.DeviceActionProperties

Defines the schema for properties for the actions that can be supported by OpenQASM devices.

supportedOperations

Operations supported by the OpenQASM action.

supportedResultTypes

Result types that are supported by the OpenQASM action.

supportPhysicalQubits

Whether the device supports the ability to run circuits with the exact qubits chosen, without any rewiring downstream.

supportedPragmas

List of pragmas supported (not ignored) in the OpenQASM action.

forbiddenPragmas

List of pragmas that will raise an error when sent to the device.

forbiddenArrayOperations

Forbidden operations on arrays.

requiresAllQubitsMeasurement

Whether measurements have to be made on all qubits in the OpenQASM action.

requiresContiguousQubitIndices

Whether used qubit indices of qubit arrays are required to be contiguous.

Examples

>>> import json
>>> input_json = {
...    "actionType": "braket.ir.openqasm.program",
...    "version": ["1"],
...    "supportedOperations": ["x", "y"],
...    "supportedResultTypes": [{
...         "name": "resultType1",
...         "observables": ["observable1"],
...         "minShots": 0,
...         "maxShots": 4,
...     }],
...    "supportPhysicalQubits": True
...    "supportedPragmas": ["braket_bit_flip_noise"],
...    "forbiddenPragmas": ["braket_kraus_operator"],
...    "forbiddenArrayOperations": ["concatenation", "range", "slicing"],
...    "requiresAllQubitsMeasurement": False
...    "requiresContiguousQubitIndices": False
...    "supportsPartialVerbatimBox": False
...    "supportsUnassignedMeasurements": True
... }
>>> OpenQASMDeviceActionProperties.parse_raw(json.dumps(input_json))

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

Raises ValidationError if the input data cannot be parsed to form a valid model.