"""Interactive demo for the Visualizer; run manually, not as a test.""" import random from datetime import datetime from visualizer import Visualizer from storage import Book, BookSnapshot, OrderbookLevel def demo_visualizer_creates_single_bar_on_flush() -> None: vis = Visualizer(window_seconds=60, max_bars=10) book = Book() ts = datetime.now().timestamp() snapshot = BookSnapshot(timestamp=int(ts)) for r in range(100): snapshot.bids[100000 + random.random() * 100] = OrderbookLevel( price=100000 + random.random() * 100, size=1.0, liquidation_count=0, order_count=1, ) snapshot.asks[100000 + random.random() * 100] = OrderbookLevel( price=100000 + random.random() * 100, size=1.0, liquidation_count=0, order_count=1, ) book.add_snapshot(snapshot) vis.update_from_book(book) vis.flush() vis.show() if __name__ == "__main__": demo_visualizer_creates_single_bar_on_flush()