Skip to main contentIBM Quantum Documentation

Options

class qiskit.providers.Options(**kwargs)

GitHub

Bases: Mapping

Base options object

This class is what all backend options are based on. The properties of the class are intended to be all dynamically adjustable so that a user can reconfigure the backend on demand. If a property is immutable to the user (eg something like number of qubits) that should be a configuration of the backend class itself instead of the options.

Instances of this class behave like dictionaries. Accessing an option with a default value can be done with the get() method:

>>> options = Options(opt1=1, opt2=2)
>>> options.get("opt1")
1
>>> options.get("opt3", default="hello")
'hello'

Key-value pairs for all options can be retrieved using the items() method:

>>> list(options.items())
[('opt1', 1), ('opt2', 2)]

Options can be updated by name:

>>> options["opt1"] = 3
>>> options.get("opt1")
3

Runtime validators can be registered. See set_validator. Updates through update_options and indexing (__setitem__) validate the new value before performing the update and raise ValueError if the new value is invalid.

>>> options.set_validator("opt1", (1, 5))
>>> options["opt1"] = 4
>>> options["opt1"]
4
>>> options["opt1"] = 10  
Traceback (most recent call last):
...
ValueError: ...

Attributes

validator


Methods

get

get(k[, d]) → D[k] if k in D, else d.  d defaults to None.

items

items() → a set-like object providing a view on D's items

keys

keys() → a set-like object providing a view on D's keys

set_validator

set_validator(field, validator_value)

GitHub

Set an optional validator for a field in the options

Setting a validator enables changes to an options values to be validated for correctness when update_options() is called. For example if you have a numeric field like shots you can specify a bounds tuple that set an upper and lower bound on the value such as:

options.set_validator("shots", (1, 4096))

In this case whenever the "shots" option is updated by the user it will enforce that the value is >=1 and <=4096. A ValueError will be raised if it’s outside those bounds. If a validator is already present for the specified field it will be silently overridden.

Parameters

  • field (str) – The field name to set the validator on
  • validator_value (list ortuple ortype) – The value to use for the validator depending on the type indicates on how the value for a field is enforced. If a tuple is passed in it must have a length of two and will enforce the min and max value (inclusive) for an integer or float value option. If it’s a list it will list the valid values for a field. If it’s a type the validator will just enforce the value is of a certain type.

Raises

  • KeyError – If field is not present in the options object
  • ValueError – If the validator_value has an invalid value for a given type
  • TypeError – If validator_value is not a valid type

update_options

update_options(**fields)

GitHub

Update options with kwargs

values

values() → an object providing a view on D's values

Was this page helpful?
Report a bug or request content on GitHub.