Skip to content

v2.16.0

Compare
Choose a tag to compare
@karalekas karalekas released this 10 Jan 22:11
· 433 commits to master since this release

Announcements

  • The TomographyExperiment class has been renamed to Experiment. In addition, there is a new QuantumComputer.calibration method for performing readout calibration on a provided Experiment, and utilities for applying the results of the calibration to correct for symmetrized readout error. ExperimentSetting objects now also have an additional_expectations attribute for extracting simultaneously measurable expectation values from a single setting when using QuantumComputer.experiment (@karalekas, gh-1152, gh-1158).

Improvements and Changes

  • Type hints have been added to the quil.py file (@rht, gh-1115, gh-1134).
  • Use Black for code style and enforce it (along with a line length of 100) via the style (flake8) and formatcheck (black --check) CI jobs (@karalekas, gh-1132).
  • Ignore fewer flake8 style rules, add the flake8-bugbear plugin, and rename the style-related Makefile targets and CI jobs so that they have a uniform naming convention: check-all, check-format, check-style, and check-types (@karalekas, gh-1133).
  • Added type hints to noise.py, began verifying in the CI (@rht, gh-1136).
  • Improved reStructuredText markup in docstrings (@peterjc, gh-1141).
  • Add helper to separate ExperimentResults by groups of qubits on which their operator acts (@kylegulshen, gh-1078).
  • Added typing to the pyquil/latex module and added the module to the check-types CI job (@karalekas, gh-1142).
  • Add helper to merge TomographyExperiments in the experiment module's _group.py file. Move group_experiments from operator_estimation.py to _group.py and rename to group_settings but maintain backwards compatibility (@kylegulshen, gh-1077).
  • The code in gate_matrices.py, numpy_simulator.py, reference_simulator.py, and unitary_tools.py has been typed and reorganized into a new simulation subdirectory, maintaining backwards compatibility (@karalekas, gh-1143).
  • Added a .travis.yml file to enable Travis CI for external-contributor builds, and upgraded GitLab CI style checks to py37 (@karalekas, gh-1145).
  • Delete api/_job.py, JobConnection, and SyncConnection, which have been deprecated for over a year and a half (@karalekas, gh-1144).
  • Added typing to the pyquil/experiment module and added the module to the check-types CI job (@karalekas, gh-1146).
  • Use dataclasses instead of namedtuples in the pyquil/device module, and add type annotations to the entire module (@karalekas, gh-1149).
  • Reduced the number of mypy errors in paulis.py (@rht, gh-1147).
  • Compile to XY gates as well as CZ gates on dummy QVMs (@ecpeterson, gh-1151).
  • QAM.write_memory now accepts either a Sequence of values or a single value (@tommy-moffat, gh-1114).
  • Added type hints for all remaining top-level files (@karalekas, gh-1150).
  • Added type annotations to the whole pyquil.api module (@karalekas, gh-1157).

Bugfixes

  • Don't attach pipes to stdout/stderr when starting quilc and qvm processes in local_forest_runtime. This prevents the pipe buffers from getting full and causing hung quilc/qvm for long running processes (@appleby, gh-1122).
  • Pass a sequence to np.vstack to avoid a FutureWarning, and add a protoquil keyword argument to MyLazyCompiler.quil_to_native_quil to avoid a TypeError in the migration2-qc.ipynb notebook (@appleby, gh-1138).
  • Removed unused method Program._out() in quil.py (@rht, gh-1137).
  • Fixed string concatenation style, caused by black (@peterjc, gh-1139).

Special thanks this release to @rht and @peterjc for their contributions to type annotations and RST docstrings, respectively.