Source code for hamil_clever_sim.components.circuit_metadata
from textual.reactive import Reactive, reactive
from textual.widgets import Static
from rich.table import Table
from hamil_clever_sim.hamil_runner import SimulationCircuitMetadata
[docs]
class CircuitMetadata(Static):
data: Reactive[SimulationCircuitMetadata | None] = reactive(None)
def watch_data(self, update: SimulationCircuitMetadata | None):
# def on_mount(self) -> None:
if update is None:
self.update("<metadata pending...>")
return
# log = self.query_one(RichLog)
grid = Table.grid()
grid.add_column()
grid.add_column(justify="right")
total = 0
for gate, val in update.gates.items():
if gate == "barrier":
continue
num = f"{val}[i]×{update.factor}[/i]"
grid.add_row(f"[b]{gate}:[/b]", f"{num}")
total += val
grid.add_row("[b]Total gates:[/b]", f"{str(total * update.factor)}")
self.update(grid)
# def compose(self) -> ComposeResult:
# yield RichLog(
# max_lines=8,
# )