def __init__(self, layout_info: Union[Layout, VirtualQuantumMachine]):
self._layout_info = layout_info
self._layout = layout_info if isinstance(layout_info, Layout) else layout_info.layout
self._gate_fidelity = None if isinstance(layout_info, Layout) else layout_info.gate_fidelity
self._edge_fidelity = self._layout.double_gate_fidelity
self._readout_fidelity = None if isinstance(layout_info, Layout) else layout_info.qubit_fidelity
self._layout_graph = self._get_layout_graph()