Skip to content

Commit 65dfaeb

Browse files
authored
Release 0.45.0 compatible with pytket 2 (#577)
1 parent 07a4367 commit 65dfaeb

File tree

6 files changed

+33
-24
lines changed

6 files changed

+33
-24
lines changed

_metadata.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
__extension_version__ = "0.44.0"
1+
__extension_version__ = "0.45.0"
22
__extension_name__ = "pytket-quantinuum"

docs/changelog.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44

55
# Changelog
66

7-
## Unreleased
7+
## 0.45.0 (March 2025)
88

99
- Add CliffordCircuitPredicate for circuit compilation and processing
1010
when using the stabilizer simulator.
11+
- Update pytket version requirement to 2.0.1.
12+
- Update pytket-qir version requirement to 0.21.
13+
- Update pytket-pecos version requirement to 0.2.0.
14+
1115

1216
## 0.44.0 (February 2025)
1317

pytket/extensions/quantinuum/backends/quantinuum.py

-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@
116116
OpType.ExplicitModifier,
117117
OpType.SetBits,
118118
OpType.CopyBits,
119-
OpType.ClassicalExpBox,
120119
OpType.ClExpr,
121120
OpType.WASM,
122121
}

setup.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
packages=find_namespace_packages(include=["pytket.*"]),
4646
include_package_data=True,
4747
install_requires=[
48-
"pytket >= 1.40.0, < 2",
49-
"pytket-qir >= 0.20, < 0.21",
48+
"pytket >= 2.0.1",
49+
"pytket-qir >= 0.21, < 0.22",
5050
"requests >= 2.32.2",
5151
"types-requests",
5252
"websockets >= 13.1",
@@ -56,7 +56,7 @@
5656
"numpy >= 1.26.4",
5757
],
5858
extras_require={
59-
"pecos": ["pytket-pecos ~= 0.1.32"],
59+
"pecos": ["pytket-pecos ~= 0.2.0"],
6060
"calendar": ["matplotlib >= 3.8.3,< 3.11.0", "pandas ~= 2.2.1"],
6161
},
6262
classifiers=[

tests/integration/backend_test.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
reg_lt,
4747
reg_neq,
4848
)
49+
from pytket.circuit.clexpr import wired_clexpr_from_logic_exp
4950
from pytket.extensions.quantinuum import (
5051
Language,
5152
QuantinuumBackend,
@@ -412,10 +413,10 @@ def test_classical(
412413
c.add_c_setreg(23, a)
413414
c.add_c_copyreg(a, b)
414415

415-
c.add_classicalexpbox_register(a + b, d.to_list())
416-
c.add_classicalexpbox_register(a - b, d.to_list())
417-
c.add_classicalexpbox_register(a << 1, a.to_list())
418-
c.add_classicalexpbox_register(a >> 1, b.to_list())
416+
c.add_clexpr(*wired_clexpr_from_logic_exp(a + b, d.to_list()))
417+
c.add_clexpr(*wired_clexpr_from_logic_exp(a - b, d.to_list()))
418+
c.add_clexpr(*wired_clexpr_from_logic_exp(a << 1, a.to_list()))
419+
c.add_clexpr(*wired_clexpr_from_logic_exp(a >> 1, b.to_list()))
419420

420421
c.X(0, condition=reg_eq(a ^ b, 1))
421422
c.X(0, condition=(a[0] ^ b[0]))
@@ -431,6 +432,8 @@ def test_classical(
431432
c.X(0, condition=reg_leq(a, 1))
432433
c.Phase(0, condition=a[0])
433434

435+
c.measure_all()
436+
434437
backend = authenticated_quum_backend_qa
435438

436439
c = backend.get_compiled_circuit(c)
@@ -465,7 +468,7 @@ def test_division(
465468

466469
c.add_c_setbits([False, True] + [False] * 6, a) # type: ignore
467470
c.add_c_setbits([True, True] + [False] * 8, b) # type: ignore
468-
c.add_classicalexpbox_register(a * b // d, d.to_list())
471+
c.add_clexpr(*wired_clexpr_from_logic_exp(a * b // d, d.to_list()))
469472

470473
backend = authenticated_quum_backend_qa
471474

@@ -792,6 +795,7 @@ def test_wasm_qa(
792795
c.name = "test_wasm"
793796
a = c.add_c_register("a", 8)
794797
c.add_wasm_to_reg("add_one", wasfile, [a], [a])
798+
c.measure_all()
795799

796800
b = authenticated_quum_backend_qa
797801

@@ -861,6 +865,7 @@ def test_wasm_costs(
861865
c.name = "test_wasm"
862866
a = c.add_c_register("a", 8)
863867
c.add_wasm_to_reg("add_one", wasfile, [a], [a])
868+
c.measure_all()
864869

865870
b = authenticated_quum_backend_qa
866871

tests/integration/local_emulator_test.py

+14-13
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
reg_lt,
3232
reg_neq,
3333
)
34+
from pytket.circuit.clexpr import wired_clexpr_from_logic_exp
3435
from pytket.extensions.quantinuum import QuantinuumBackend, have_pecos
3536
from pytket.wasm import WasmFileHandler
3637

@@ -169,11 +170,11 @@ def test_classical_0(authenticated_quum_backend_prod: QuantinuumBackend) -> None
169170
c.add_c_setreg(23, a)
170171
c.add_c_copyreg(a, b)
171172

172-
c.add_classicalexpbox_register(a + b, d.to_list())
173-
c.add_classicalexpbox_register(a - b, d.to_list())
174-
c.add_classicalexpbox_register(a * b * d, d.to_list())
175-
c.add_classicalexpbox_register(a << 1, a.to_list())
176-
c.add_classicalexpbox_register(a >> 1, b.to_list())
173+
c.add_clexpr(*wired_clexpr_from_logic_exp(a + b, d.to_list()))
174+
c.add_clexpr(*wired_clexpr_from_logic_exp(a - b, d.to_list()))
175+
c.add_clexpr(*wired_clexpr_from_logic_exp(a * b * d, d.to_list()))
176+
c.add_clexpr(*wired_clexpr_from_logic_exp(a << 1, a.to_list()))
177+
c.add_clexpr(*wired_clexpr_from_logic_exp(a >> 1, b.to_list()))
177178

178179
c.X(0, condition=reg_eq(a ^ b, 1))
179180
c.X(0, condition=reg_eq(a & b, 1))
@@ -216,11 +217,11 @@ def test_classical_1(authenticated_quum_backend_prod: QuantinuumBackend) -> None
216217
c.add_c_setreg(23, a)
217218
c.add_c_copyreg(a, b)
218219

219-
c.add_classicalexpbox_register(a + b, d.to_list())
220-
c.add_classicalexpbox_register(a - b, d.to_list())
221-
c.add_classicalexpbox_register(a * b * d, d.to_list())
222-
c.add_classicalexpbox_register(a << 1, a.to_list())
223-
c.add_classicalexpbox_register(a >> 1, b.to_list())
220+
c.add_clexpr(*wired_clexpr_from_logic_exp(a + b, d.to_list()))
221+
c.add_clexpr(*wired_clexpr_from_logic_exp(a - b, d.to_list()))
222+
c.add_clexpr(*wired_clexpr_from_logic_exp(a * b * d, d.to_list()))
223+
c.add_clexpr(*wired_clexpr_from_logic_exp(a << 1, a.to_list()))
224+
c.add_clexpr(*wired_clexpr_from_logic_exp(a >> 1, b.to_list()))
224225

225226
c.X(0, condition=reg_eq(a ^ b, 1))
226227
c.Measure(Qubit(0), d[0])
@@ -245,7 +246,7 @@ def test_classical_2(authenticated_quum_backend_prod: QuantinuumBackend) -> None
245246
b = circ.add_c_register("b", 2)
246247
c = circ.add_c_register("c", 1)
247248
expr = a[0] ^ b[0]
248-
circ.add_classicalexpbox_bit(expr, [c[0]])
249+
circ.add_clexpr(*wired_clexpr_from_logic_exp(expr, [c[0]]))
249250
circ.X(0)
250251
circ.Measure(Qubit(0), a[1])
251252
backend = authenticated_quum_backend_prod
@@ -270,8 +271,8 @@ def test_classical_3(authenticated_quum_backend_prod: QuantinuumBackend) -> None
270271
circ.add_c_setreg(3, a)
271272
circ.add_c_copyreg(a, b)
272273

273-
circ.add_classicalexpbox_register(a - b, c.to_list())
274-
circ.add_classicalexpbox_register(a << 1, a.to_list())
274+
circ.add_clexpr(*wired_clexpr_from_logic_exp(a - b, c.to_list()))
275+
circ.add_clexpr(*wired_clexpr_from_logic_exp(a << 1, a.to_list()))
275276

276277
circ.X(0)
277278
circ.Measure(Qubit(0), a[3])

0 commit comments

Comments
 (0)