map_annotations

samplomatic.utils.map_annotations(circuit: QuantumCircuit, fn: Callable[[list[Annotation]], list[Annotation]]) QuantumCircuit[source]

Return a new circuit where each box’s annotations are replaced by fn(annotations).

The callable receives the current list of annotations on the box and must return a new list of annotations to use. Non-box instructions are copied unchanged, and the original circuit is not mutated.

Parameters:
  • circuit – The circuit whose box annotations to transform.

  • fn – A callable that receives a box’s annotation list and returns the replacement list.

Returns:

A new circuit with transformed annotations on every box.

from qiskit.circuit import QuantumCircuit
from samplomatic import Twirl, InjectNoise
from samplomatic.utils import map_annotations, strip_annotations

circuit = QuantumCircuit(2)
with circuit.box([Twirl(), InjectNoise("ref")]):
    circuit.cx(0, 1)

# Keep only Twirl annotations
filtered = map_annotations(circuit, lambda anns: [a for a in anns if isinstance(a, Twirl)])