Source code for pyquil.quantum_processor.compiler

from pyquil.quantum_processor._base import AbstractQuantumProcessor
from typing import List
from pyquil.quantum_processor.transformers import compiler_isa_to_graph
from pyquil.external.rpcq import CompilerISA

import networkx as nx


[docs]class CompilerQuantumProcessor(AbstractQuantumProcessor): """ An AbstractQuantumProcessor initialized with a user constructed ``CompilerISA``. """ _isa: CompilerISA def __init__(self, isa: CompilerISA) -> None: self._isa = isa
[docs] def qubit_topology(self) -> nx.Graph: return compiler_isa_to_graph(self._isa)
[docs] def to_compiler_isa(self) -> CompilerISA: return self._isa
[docs] def qubits(self) -> List[int]: return sorted([int(node_id) for node_id, node in self._isa.qubits.items()])