#!/usr/bin/env python3 # PROTOTYPE helper — regenerate screenshots/*.svg via headless Textual run. import asyncio from tui_prototype import GraphPrototype async def shot(app, size, presses, path): async with app.run_test(size=size) as pilot: for p in presses: await pilot.press(p) svg = app.export_screenshot() with open(path, "w") as fh: fh.write(svg) print("wrote", path) async def main(): for w, h in ((80, 24), (140, 40)): for v in "ABC": presses = ["]"] * "ABC".index(v) await shot(GraphPrototype(), (w, h), presses, "screenshots/v%s_%dx%d_range.svg" % (v, w, h)) # drill-down detail (variant A) and a mid-range selection (variant B) await shot(GraphPrototype(), (80, 24), ["left", "enter"], "screenshots/vA_80x24_hourly-detail.svg") await shot(GraphPrototype(), (140, 40), ["]", "left", "left"], "screenshots/vB_140x40_selected-gap-day.svg") if __name__ == "__main__": asyncio.run(main())