(Re)load and write hardware configuration from and to file
Explanation of changes
Turn the hardware_config
from a QuantumDevice
into a new HardwareConfig
class. This class extends ManualParameter for now.
It provides 3 methods:
- The static
from_file
to generate a new HardwareConfig from file.quantum_device.hardware_config = HardwareConfig.from_file("my_config.json")
. -
load_from_file(file)
to update the contents of the config with those in the file. -
write_to_file(file)
to write any new changes to the file.
Motivation of changes
quantum_device.hardware_config.load_from_file()
is nicer than quantum_device.reload_hardware_config()
and does not keep track of state. The logic to provide this is the responsibility of the HardwareConfig, not the QuantumDevice.
Merge checklist
See also merge request guidelines
-
Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer. -
New code is covered by unit tests (or N/A). -
New code is documented and docstrings use numpydoc format (or N/A). -
New functionality: considered making private instead of extending public API (or N/A). -
Public API changed: added @deprecated
and entry in deprecated code suggestions (or N/A). -
Newly added/adjusted documentation and docstrings render properly (or N/A). -
Pipeline fix or dependency update: post in #software-for-developers
channel to mergemain
back in or update local packages (or N/A). -
Tested on hardware (or N/A). -
CHANGELOG.md
for breaking changes andAUTHORS.md
have been updated (or N/A). -
Update Hardware backends documentation if backend interface change or N/A -
Check whether performance is significantly affected by looking at the Performance metrics results. -
Windows tests in CI pipeline pass (manually triggered by maintainers before merging). - Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline
For reference, the issues workflow is described in the contribution guidelines.
Edited by Leon Wubben