Skip to content

Commit 529f2c9

Browse files
committed
mod
1 parent 2132fc7 commit 529f2c9

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

glue/cirq/stimcirq/_obs_annotation.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def __init__(
1616
*,
1717
parity_keys: Iterable[str] = (),
1818
relative_keys: Iterable[int] = (),
19-
pauli_keys: dict[int,str] | None = None,
19+
pauli_keys: Iterable[str] = (),
2020
observable_index: int,
2121
):
2222
"""
@@ -29,7 +29,7 @@ def __init__(
2929
"""
3030
self.parity_keys = frozenset(parity_keys)
3131
self.relative_keys = frozenset(relative_keys)
32-
self.pauli_keys = pauli_keys or {}
32+
self.pauli_keys = frozenset(pauli_keys)
3333
self.observable_index = observable_index
3434

3535
@property
@@ -45,6 +45,7 @@ def _value_equality_values_(self) -> Any:
4545
def _circuit_diagram_info_(self, args: Any) -> str:
4646
items: List[str] = [repr(e) for e in sorted(self.parity_keys)]
4747
items += [f'rec[{e}]' for e in sorted(self.relative_keys)]
48+
items += sorted(self.pauli_keys)
4849
k = ",".join(str(e) for e in items)
4950
return f"Obs{self.observable_index}({k})"
5051

@@ -53,7 +54,7 @@ def __repr__(self) -> str:
5354
f'stimcirq.CumulativeObservableAnnotation('
5455
f'parity_keys={sorted(self.parity_keys)}, '
5556
f'relative_keys={sorted(self.relative_keys)}, '
56-
f'pauli_keys={self.pauli_keys}, '
57+
f'pauli_keys={sorted(self.pauli_keys)}, '
5758
f'observable_index={self.observable_index!r})'
5859
)
5960

@@ -65,6 +66,7 @@ def _json_dict_(self) -> Dict[str, Any]:
6566
result = {
6667
'parity_keys': sorted(self.parity_keys),
6768
'observable_index': self.observable_index,
69+
'pauli_keys': sorted(self.pauli_keys),
6870
}
6971
if self.relative_keys:
7072
result['relative_keys'] = sorted(self.relative_keys)
@@ -109,8 +111,8 @@ def _stim_conversion_(
109111
break
110112
rec_targets.extend(
111113
[
112-
stim.target_pauli(qubit_index=k, pauli=self.pauli_keys[k])
113-
for k in sorted(self.pauli_keys, reverse=True)
114+
stim.target_pauli(qubit_index=int(k[1:]), pauli=k[0])
115+
for k in sorted(self.pauli_keys)
114116
]
115117
)
116118
if remaining:

glue/cirq/stimcirq/_stim_to_cirq.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -340,13 +340,13 @@ def coords_after_offset(
340340

341341
def resolve_measurement_record_keys(
342342
self, targets: Iterable[stim.GateTarget]
343-
) -> Tuple[List[str], List[int], dict[int, str]]:
344-
pauli_targets, meas_targets = {}, []
343+
) -> Tuple[List[str], List[int], List[str]]:
344+
pauli_targets, meas_targets = [], []
345345
for t in targets:
346346
if t.is_measurement_record_target:
347347
meas_targets.append(t)
348348
else:
349-
pauli_targets[t.value] = t.pauli_type
349+
pauli_targets.append(f'{t.pauli_type}{t.value}')
350350

351351
if self.have_seen_loop:
352352
return [], [t.value for t in meas_targets], pauli_targets

0 commit comments

Comments
 (0)