From 6627b5e80c16c9ecfe0ccfc72a1f672b8fbc46ce Mon Sep 17 00:00:00 2001 From: Alec Edgington Date: Wed, 11 Sep 2024 14:57:43 +0100 Subject: [PATCH] Typing improvements. --- pytket/pytket/qasm/qasm.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pytket/pytket/qasm/qasm.py b/pytket/pytket/qasm/qasm.py index 052aee529e..25a60c6c33 100644 --- a/pytket/pytket/qasm/qasm.py +++ b/pytket/pytket/qasm/qasm.py @@ -1127,7 +1127,7 @@ def circuit_to_qasm_str( def _retrieve_registers( - units: List[UnitID], reg_type: Type[TypeReg] + units: Sequence[UnitID], reg_type: Type[TypeReg] ) -> Dict[str, TypeReg]: if any(len(unit.index) != 1 for unit in units): raise NotImplementedError("OPENQASM registers must use a single index") @@ -1290,7 +1290,7 @@ def make_params_str(params: Optional[List[Union[float, Expr]]]) -> str: return s -def make_args_str(args: List[UnitID]) -> str: +def make_args_str(args: Sequence[UnitID]) -> str: s = "" for i in range(len(args)): s += f"{args[i]}" @@ -1423,7 +1423,7 @@ def write_params(self, params: Optional[List[Union[float, Expr]]]) -> None: params_str = make_params_str(params) self.strings.add_string(params_str) - def write_args(self, args: List[UnitID]) -> None: + def write_args(self, args: Sequence[UnitID]) -> None: args_str = make_args_str(args) self.strings.add_string(args_str) @@ -1577,7 +1577,7 @@ def remove_unused_predicate(self, pred_label: int) -> bool: self.strings.del_string(pred_label) return True - def add_conditional(self, op: Conditional, args: List[UnitID]) -> None: + def add_conditional(self, op: Conditional, args: Sequence[UnitID]) -> None: control_bits = args[: op.width] if op.width == 1 and hqs_header(self.header): variable = str(control_bits[0]) @@ -1728,11 +1728,11 @@ def add_wasm(self, op: WASMOp, args: List[Bit]) -> None: for variable in outputs: self.mark_as_written(label, variable) - def add_measure(self, args: List[UnitID]) -> None: + def add_measure(self, args: Sequence[UnitID]) -> None: label = self.strings.add_string(f"measure {args[0]} -> {args[1]};\n") self.mark_as_written(label, f"{args[1]}") - def add_zzphase(self, param: Union[float, Expr], args: List[UnitID]) -> None: + def add_zzphase(self, param: Union[float, Expr], args: Sequence[UnitID]) -> None: # as op.params returns reduced parameters, we can assume # that 0 <= param < 4 if param > 1: @@ -1746,7 +1746,7 @@ def add_zzphase(self, param: Union[float, Expr], args: List[UnitID]) -> None: self.write_params([param]) self.write_args(args) - def add_data(self, op: BarrierOp, args: List[UnitID]) -> None: + def add_data(self, op: BarrierOp, args: Sequence[UnitID]) -> None: if op.data == "": opstr = _tk_to_qasm_noparams[OpType.Barrier] else: @@ -1755,18 +1755,18 @@ def add_data(self, op: BarrierOp, args: List[UnitID]) -> None: self.strings.add_string(" ") self.write_args(args) - def add_gate_noparams(self, op: Op, args: List[UnitID]) -> None: + def add_gate_noparams(self, op: Op, args: Sequence[UnitID]) -> None: self.strings.add_string(_tk_to_qasm_noparams[op.type]) self.strings.add_string(" ") self.write_args(args) - def add_gate_params(self, op: Op, args: List[UnitID]) -> None: + def add_gate_params(self, op: Op, args: Sequence[UnitID]) -> None: optype, params = _get_optype_and_params(op) self.strings.add_string(_tk_to_qasm_params[optype]) self.write_params(params) self.write_args(args) - def add_extra_noparams(self, op: Op, args: List[UnitID]) -> Tuple[str, str]: + def add_extra_noparams(self, op: Op, args: Sequence[UnitID]) -> Tuple[str, str]: optype = op.type opstr = _tk_to_qasm_extra_noparams[optype] gatedefstr = "" @@ -1776,7 +1776,7 @@ def add_extra_noparams(self, op: Op, args: List[UnitID]) -> Tuple[str, str]: mainstr = opstr + " " + make_args_str(args) return gatedefstr, mainstr - def add_extra_params(self, op: Op, args: List[UnitID]) -> Tuple[str, str]: + def add_extra_params(self, op: Op, args: Sequence[UnitID]) -> Tuple[str, str]: optype, params = _get_optype_and_params(op) assert params is not None opstr = _tk_to_qasm_extra_params[optype] @@ -1789,7 +1789,7 @@ def add_extra_params(self, op: Op, args: List[UnitID]) -> Tuple[str, str]: mainstr = opstr + make_params_str(params) + make_args_str(args) return gatedefstr, mainstr - def add_op(self, op: Op, args: List[UnitID]) -> None: + def add_op(self, op: Op, args: Sequence[UnitID]) -> None: optype, _params = _get_optype_and_params(op) if optype == OpType.RangePredicate: assert isinstance(op, RangePredicateOp)