Table
Table(
rows: tuple[Row, …] = (),
numeric: frozenset[str] = frozenset(),
)-> None
Records of one sort, drawn together.
They need not state the same fields – only a time coordinate has a span – so a column exists for every field any row states and a row with nothing for one leaves it empty.
A terminal draws each record on its own line, which is what keeps str() unchanged; a panel draws them in columns, where each label is a heading said once.