BasePass

class BasePass[source]

Bases: ABC

The abstract base for BQSKit compiler passes.

All BQSKit algorithms must inherit from BasePass to be run within the compiler framework. Each child class will need to implement its algorithm inside of the run() method.

Examples

>>> class PrintCNOTCountPass(BasePass):
...     async def run(self, circuit: Circuit, data: PassData) -> None:
...         print(f"Number of CNOTs: {circuit.count(CNOTGate())}")
__init__()

Attributes

name

The name of the pass.

Methods

execute(*args, **kwargs)

Map a function over iterable arguments in parallel.

get_connectivity(_, data)

Retrieve the current connectivity of the circuit.

get_model(_, data)

Retrieve the machine model from the data dictionary.

get_placement(_, data)

Retrieve the logical to physical qubit map from the data dictionary.

get_target(_, data)

Retrieve the target from the data dictionary.

in_parallel(data)

Return true if pass is being executed in a parallel.

run(circuit, data)

Perform the pass's operation on circuit.