View source on GitHub
|
Protocol class defining the Transformer API for circuit transformers in Cirq.
cirq.TRANSFORMER(
*args, **kwargs
)
Any callable that satisfies the cirq.TRANSFORMER contract, i.e. takes a cirq.AbstractCircuit
and cirq.TransformerContext and returns a transformed cirq.AbstractCircuit, is a valid
transformer in Cirq.
Note that transformers can also accept additional arguments as **kwargs, with default values
specified for each keyword argument. A transformer could be a function, for example:
def convert_to_cz(circuit: cirq.AbstractCircuit,*,context: cirq.TransformerContext | None = None,atol: float = 1e-8,) -> cirq.Circuit:...
Or it could be a class that implements __call__ with the same API, for example:
class ConvertToSqrtISwaps:def __init__(self):...def __call__(self,circuit: cirq.AbstractCircuit,*,context: cirq.TransformerContext | None = None,) -> cirq.AbstractCircuit:...
Methods
__call__
__call__(
circuit: cirq.AbstractCircuit,
*,
context: (TransformerContext | None) = None
) -> cirq.AbstractCircuit
Call self as a function.
View source on GitHub