Changelog#

0.29.0 (January 2024)#

  • Updated pytket_pecos version requirement to 0.1.13.

  • Fix handling of results in local emulator with non-default classical registers.

  • Add WASM support to local emulators.

  • Add multithreading support to local emulators, via new multithreading keyword argument passed to process_circuits().

0.28.0 (January 2024)#

  • Updated pytket version requirement to 1.24.

  • Python 3.12 support added, 3.9 dropped.

  • pytket_pecos dependency updated to 0.1.9.

0.27.0 (January 2024)#

  • Updated pytket version requirement to 1.23.

  • QuantinuumBackend.cost() now raises an error if the syntax_checker argument doesn’t correspond to the device’s reported syntax checker or if it specifies a device that isn’t a syntax checker; and the method returns 0 if called on syntax-checker backends.

  • Add partial support for local emulator backends, if installed with the pecos option.

0.26.0 (November 2023)#

  • Updated pytket version requirement to 1.22.

  • Add QuantinuumConfigCredentialStorage for caching API tokens in local pytket configuration file.

  • Add an additonal RemoveRedundancies pass to the default passes for levels 1 and 2 to remove Rz gates before measurement.

0.25.0 (October 2023)#

  • Updated pytket version requirement to 1.21.

0.24.0 (October 2023)#

  • Don’t include SimplifyInitial in default passes; instead make it an option to process_circuits().

  • Fix: set default two-qubit gate when compilation config is provided without specifying one.

0.23.0 (September 2023)#

  • Update pytket-qir version requirement to 0.3.

  • Update pytket version requirement to 1.20.

0.22.0 (September 2023)#

  • Update pytket version requirement to 1.19.

0.21.0 (September 2023)#

  • Ensure results retrieval works even with an old-format ResultHandle (generated by a pre-0.17.0 version of pytket-quantinuum).

  • Add properties QuantinuumBackend.default_two_qubit_gate and QuantinuumBackend.two_qubit_gate_set providing the default and supported two-qubit gates for a device.

  • Make ZZPhase the default two-qubit gate target on all devices.

  • Add QuantinuumBackendCompilationConfig dataclass, which can be passed as an optional argument when constructing a QuantinuumBackend. Configuration can be inspected using QuantinuumBackend.get_compilation_config() and modified using the methods QuantinuumBackend.set_compilation_config_allow_implicit_swaps() and QuantinuumBackend.set_compilation_config_target_2qb_gate().

  • Add optional argument allow_2q_gate_rebase argument to process_circuit(), process_circuits() and submit_program() to allow the backend to rebase to rebase the circuit to a different two-qubit gate judged to have better fidelity before being run. The default is to not allow this.

  • Fix handling of multiple classical registers when submitting QIR.

  • Change ResultHandle format. (Old ResultHandle objects will continue to work after upgrading.)

  • Fix: Ignore erased scratch bits when constructing ResultHandle.

0.20.0 (August 2023)#

  • Update pytket version requirement to 1.18.

  • Add implicit_swaps option to QuantinuumBackend.rebase_pass, which can use implicit wire swaps (represented in the circuit qubit permutation) to help implement some gates when chosen. Defaults to False.

  • Add implicit_swaps option to QuantinuumBackend.default_compilation_pass, which is used in the rebase step. Defaults to True.

0.19.0 (August 2023)#

  • Update FullyConnected Architecture to label Node with “q”, matching compilation by FlattenRelabelRegistersPass.

0.18.0 (July 2023)#

  • Update pytket version requirement to 1.17.

  • Add leakage_detection option to QuantinuumBackend.process_circuits() that automatically modifies Circuits with ancillas for detecting leakage errors. Also provides a new method prune_shots_detected_as_leaky for removing erroneous shots from BackendResult.

0.17.0 (June 2023)#

  • Add Language enum to control language used for circuit submission, with values Language.QASM and Language.QIR.

  • Renamed QuantinuumBackend.submit_qasm() to QuantinuumBackend.submit_program(), with a language argument.

  • Add a language kwarg to QuantinuumBackend.process_circuits(), defaulting to Language.QASM. (Support for Language.QIR is experimental and its use is not recommended; a warning will be emitted. You must install the pytket-qir package separately in order to use this feature.)

  • Use “q” instead of “node” as the name of the single qubit register in compiled circuits.

  • Updated pytket version requirement to 1.16.

0.16.0 (May 2023)#

  • Updated pytket version requirement to 1.15.

  • cost function now takes the same kwargs as process_circuits

  • add check for the number of classical registers to the backend

  • add get_partial_result method to QuantinuumBackend.

  • add Rxxyyzz gate support.

0.15.0 (April 2023)#

  • Darkmode added to the documentation

  • Updated pytket version requirement to 1.13.2

  • Default compilation passes updated to correctly track initial and final maps during compilation

0.14.0 (March 2023)#

  • Use default Node register for flattening in default compilation pass.

  • Prefer ZZPhase to ZZMax gates if available.

  • Updated pytket version requirement to 1.13.

0.13.0 (January 2023)#

  • Drop support for Python 3.8; add support for 3.11.

  • The backend now works in threads other than the main.

  • Updated pytket version requirement to 1.11.

0.12.0 (December 2022)#

  • Updated pytket version requirement to 1.10.

  • Default compilation pass update to flatten registers

0.11.0 (November 2022)#

  • Updated pytket version requirement to 1.9.

  • Add optional no_opt argument to process_circuits() and submit_qasm(), requesting no optimization.

  • Change default optimization level in QuantinuumBackend.default_compilation_pass() to 2.

  • default_compilation_pass now flattens qubit registers when compiling Circuits.

0.10.0 (November 2022)#

  • Break up pytket internal scratch registers if their widths exceed limit.

  • Updated pytket version requirement to 1.8.

0.9.0 (October 2022)#

  • Add session parameter to QuantinuumAPI. Creates a new session if None is provided.

  • Add facility to specify default options paramater to process_circuits() and submit_qasm() when constructing backend, and include this information in backend_info.

  • Updated pytket version requirement to 1.7.

0.8.0 (September 2022)#

  • Add options parameter to process_circuits() and submit_qasm().

  • Updated pytket version requirement to 1.6.

0.7.0 (August 2022)#

  • Add new QuantinuumAPIOffline for allowing usage of the backend without API calls.

  • New api_handler parameter for QuantinuumBackend, allowing to choose online or offline options. Default value is the standard online api.

  • Updated pytket version requirement to 1.5.

0.6.0 (July 2022)#

  • Changed batching interface: process_circuits no longer batches, use start_batching and add_to_batch methods to explicitly start and append to batches.

  • New submit_qasm backend method to enable direct submission of a QASM program.

0.5.0 (July 2022)#

  • Updated pytket version requirement to 1.4.

  • Add support for multi-factor authentication and microsoft federated login.

0.4.0 (June 2022)#

  • Add wasm support

  • Add support for OpType.CopyBits and OpType.ClassicalExpBox in QuantinuumBackend

  • Updated pytket version requirement to 1.3.

  • Add optional argument group to QuantinuumBackend

0.3.1 (May 2022)#

  • Updated to pyjwt 2.4. This fixes a potential security vulnerability (CVE-2022-29217).

0.3.0 (May 2022)#

  • QuantinuumBackend.cost_estimate deprecated, new QuantinuumBackend.cost method now uses the syntax checker devices to directly return the cost.

  • Updated pytket version requirement to 1.2.

0.2.0 (April 2022)#

  • Updated pytket version requirement to 1.1.

0.1.2 (April 2022)#

  • Fix batch handling in process_circuits().

0.1.1 (March 2022)#

  • Update device names.

0.1.0 (March 2022)#

  • Module renamed from “pytket.extensions.honeywell” to “pytket.extensions.quantinumm”, with corresponding name changes throughout.

  • Simplify authentication: use QuantinuumBackend.login() to log in once per session.

  • Updated pytket version requirement to 1.0.

Old changelog for “pytket-honeywell”:

0.21.0 (February 2022)#

  • Updated pytket version requirement to 0.19.

  • Drop support for Python 3.7; add support for 3.10.

0.20.0 (January 2022)#

  • Added optional group field to circuit submission.

0.19.0 (January 2022)#

  • Updated pytket version requirement to 0.18.

0.18.0 (November 2021)#

  • Updated pytket version requirement to 0.17.

0.17.0 (October 2021)#

  • Updated pytket version requirement to 0.16.

  • Renamed HoneywellBackend.available_devices to _available_devices so as not to conflict with abstract Backend method.

0.16.0 (September 2021)#

  • Updated pytket version requirement to 0.15.

0.15.0 (September 2021)#

  • Updated pytket version requirement to 0.14.

0.14.0 (August 2021)#

  • Support new Honeywell simulator options in HoneywellBackend: “simulator” for simulator type, and “noisy_simulation” to toggle simulations with and without error models.

  • Device name no longer optional on HoneywellBackend construction.

0.13.0 (July 2021)#

  • Updated pytket version requirement to 0.13.

0.12.0 (June 2021)#

  • Updated pytket version requirement to 0.12.

0.11.0 (May 2021)#

  • Updated pytket version requirement to 0.11.

0.10.0 (May 2021)#

  • Contextual optimisation added to default compilation passes (except at optimisation level 0).