Module containing the QuantumDevice object.

Module Contents



The QuantumDevice directly represents the device under test (DUT) and contains a

class QuantumDevice(name: str)[source]

Bases: qcodes.instrument.base.Instrument

The QuantumDevice directly represents the device under test (DUT) and contains a description of the connectivity to the control hardware as well as parameters specifying quantities like cross talk, attenuation and calibrated cable-delays. The QuantumDevice also contains references to individual DeviceElements, representations of elements on a device (e.g, a transmon qubit) containing the (calibrated) control-pulse parameters.

This object can be used to generate configuration files for the compilation step from the gate-level to the pulse level description. These configuration files should be compatible with the qcompile() function.

generate_compilation_config() quantify_scheduler.backends.graph_compilation.CompilationConfig[source]

Generates a compilation config for use with a QuantifyCompiler.

generate_hardware_config() Dict[str, Any][source]

Generates a valid hardware configuration describing the quantum device.


  • The hardware configuration file used for compiling from the quantum-device

  • layer to a hardware backend.

The hardware config should be valid input for the quantify_scheduler.compilation.qcompile() function.

generate_device_config() quantify_scheduler.backends.circuit_to_device.DeviceCompilationConfig[source]

Generates a device config to compile from the quantum-circuit to the quantum-device layer.

get_element(name: str) quantify_scheduler.device_under_test.device_element.DeviceElement[source]

Returns a DeviceElement by name.


name – The element name.


The element.


KeyError – If key name is not present in self.elements.

add_element(element: quantify_scheduler.device_under_test.device_element.DeviceElement) None[source]

Adds an element to the elements collection.


element – The element to add.

  • ValueError – If a element with a duplicated name is added to the collection.

  • TypeError – If element is not an instance of the base element.

remove_element(name: str) None[source]

Removes a element by name.


name – The element name.

get_edge(name: str) qcodes.instrument.base.Instrument[source]

Returns a edge by name.


name – The edge name.


The edge.


KeyError – If key name is not present in self.edges.

add_edge(edge: quantify_scheduler.device_under_test.edge.Edge) None[source]

Adds the edges.


edge – The edge name connecting the elements. Has to follow the convention ‘element_0’-‘element_1’

remove_edge(edge_name: str) None[source]

Removes an edge by name.


edge_name – The edge name.