CQCL/pytket-phir

`KeyError: 'name'` raised by `pytket_to_phir` with arithmetic operation

Closed this issue · 0 comments

from pytket.circuit import Circuit
from pytket.qasm import circuit_to_qasm_str
from pytket.phir.api import pytket_to_phir

circ = Circuit(1)
a = circ.add_c_register("a", 2)
b = circ.add_c_register("b", 2)
c = circ.add_c_register("c", 3)
circ.add_classicalexpbox_register(a + b // c, c.to_list())

print("QASM:")
print(circuit_to_qasm_str(circ, header="hqslib1"))
print("PHIR:")
print(pytket_to_phir(circ))

Output:

QASM:
OPENQASM 2.0;
include "hqslib1.inc";

qreg q[1];
creg a[2];
creg b[2];
creg c[3];
c = (a + (b / c));

PHIR:
Traceback (most recent call last):
  File "/home/alec/tmp/cebox2.py", line 14, in <module>
    print(pytket_to_phir(circ))
  File "/home/alec/r/pytket-pecos/env/lib/python3.10/site-packages/pytket/phir/api.py", line 75, in pytket_to_phir
    phir_json = genphir(placed, machine_ops=bool(machine))
  File "/home/alec/r/pytket-pecos/env/lib/python3.10/site-packages/pytket/phir/phirgen.py", line 320, in genphir
    append_cmd(shard.primary_command, ops)
  File "/home/alec/r/pytket-pecos/env/lib/python3.10/site-packages/pytket/phir/phirgen.py", line 250, in append_cmd
    "args": [arg["name"] for arg in exp.to_dict()["args"]],
  File "/home/alec/r/pytket-pecos/env/lib/python3.10/site-packages/pytket/phir/phirgen.py", line 250, in <listcomp>
    "args": [arg["name"] for arg in exp.to_dict()["args"]],
KeyError: 'name'