Skip to content

Commit

Permalink
Set minimum version of docutils to 0.14 and fix config builder gui (#77)
Browse files Browse the repository at this point in the history
Co-authored-by: Nikola Sibalic <nikola@quantum-machines.co>
  • Loading branch information
qguyk and nikolaqm authored Mar 13, 2022
1 parent 9536604 commit 00e2b82
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 9 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
### Fixed
- Interactive Plotting Toolbox - Fixed several small issues when loading a figure
- Integration Weights Tool - When compressing and plotting integration weights, the correct label is shown.
- Set minimum version of docutils dependency to 0.14
- Fix config builder GUI imports
### Added
- Interactive Plotting Toolbox - Added default markers when fitting
- Interactive Plotting Toolbox - Improved example and added a demo video
- readme for config builder GUI

## [0.7.0]
### Added
Expand Down
26 changes: 21 additions & 5 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ dash-core-components = "^2.0.0"
dash-bootstrap-components = "^1.0.0"
dash-cytoscape = "^0.3.0"
dash-table = "^5.0.0"
docutils = "^0.18.1"
docutils = "^0.14.0"
dash-dangerously-set-inner-html = "^0.0.2"
waitress = "^2.0.0"
dill = { version = "^0.3.4", optional = true }
Expand Down
35 changes: 32 additions & 3 deletions qualang_tools/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,42 @@
plot_integration_weights,
)
from qualang_tools.config.builder import ConfigBuilder
from qualang_tools.config.components import *
from qualang_tools.config.primitive_components import *

__all__ = [
"convert_integration_weights",
"compress_integration_weights",
"plot_integration_weights",
"components",
"primitive_components",
"builder",
"Controller",
"ArbitraryWaveform",
"ConstantWaveform",
"DigitalWaveform",
"MeasurePulse",
"ControlPulse",
"Mixer",
"Element",
"MeasureElement",
"ConstantIntegrationWeights",
"ArbitraryIntegrationWeights",
"ElementCollection",
"ReadoutResonator",
"Transmon",
"FluxTunableTransmon",
"Coupler",
"Oscillator",
"Port",
"AnalogInputPort",
"AnalogOutputPort",
"DigitalInputPort",
"DigitalOutputPort",
"Waveform",
"Pulse",
"Operation",
"IntegrationWeights",
"Weights",
"DigitalSample",
"Matrix2x2",
"AnalogOutputFilter",
"ConfigBuilder",
]
27 changes: 27 additions & 0 deletions qualang_tools/config/server/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Feature

GUI for creating configuration. It allows:
* Visualization of existing config
* Edits of existing fields
* Addition of components based on `ConfigBuilder` from `qualang_tools.config`

# Use

`python -m qualang_tools.config.gui`

When edits are made, user can download two files `config_edits.py` that contains all the edits. If needed, user can manually change this `config_edits.py` file, e.g. to delete unwanted additions of components.

# Restrictions

* While configuration can be explored when being build from `components` of `ConfigBuilder`, currently it cannot be directly edited if the items are initially added as objects. On the other hand, if configuration is purely config variable (no component objects are used in building it), it can be edited through the GUI.

# Possible future extensions

* Object view (currently just config file is seen)
* Raw file view in GUI
* Support for parameters in GUI
* Back views (show who uses some resource in GUI)
* Allow adding new field in direct config editing using OpenAPI schema (currently schema is used just to show docs)
* Restrict more tightly field value edits in direct config editing (currently it's not checking beyond general data type for correctness of entered values)
* Parsing initial raw config as minimal object model (so that we can see in object view even existing configs build before ConfigBuilder is used)
* Implement lazy addition to allow deletion of objects from config builder (currently there is no option to delete added element other than manually editing corresponding config_edits.py file)

0 comments on commit 00e2b82

Please sign in to comment.