qml.resource.CircuitSpecs

class CircuitSpecs(device_name=None, num_device_wires=None, shots=None, level=None, resources=None)[source]

Bases: object

Class for storing specifications of a qnode. Contains resource information as well as additional data such as the device, number of shots, and level of the requested specs.

Parameters:
  • device_name (str) – The name of the device used.

  • num_device_wires (int) – The number of wires on the device.

  • shots (Shots) – The shots configuration used.

  • level (Any) – The level of the specs (see specs() for more details).

  • | (resources (SpecsResources | list[SpecsResources]) – dict[int | str, SpecsResources | list[SpecsResources]]): The resource specifications. Depending on the level chosen, this may be a single SpecsResources object, a list of SpecsResources objects, or a dictionary mapping levels to their corresponding outputs.

Some helpful methods have been added to this data class to allow pretty-printing, as well as indexing into it as a dictionary. See examples below.

Example

>>> from pennylane.resource import SpecsResources, CircuitSpecs
>>> specs = CircuitSpecs(
...     device_name="default.qubit",
...     num_device_wires=2,
...     shots=Shots(1000),
...     level="device",
...     resources=SpecsResources(
...         gate_types={"RX": 2, "CNOT": 1},
...         gate_sizes={1: 2, 2: 1},
...         measurements={"expval(PauliZ)": 1},
...         num_allocs=2,
...         depth=3,
...     ),
... )
>>> print(specs.num_device_wires)
2
>>> print(specs["num_device_wires"])
2
>>> print(specs)
Device: default.qubit
Device wires: 2
Shots: Shots(total=1000)
Level: device

Resource specifications:
  Total wire allocations: 2
  Total gates: 3
  Circuit depth: 3

  Gate types:
    RX: 2
    CNOT: 1

  Measurements:
    expval(PauliZ): 1

device_name

level

num_device_wires

resources

shots

device_name = None
level = None
num_device_wires = None
resources = None
shots = None

to_dict()

Convert the CircuitSpecs to a dictionary.

to_dict()[source]

Convert the CircuitSpecs to a dictionary.