ViewText Documentation
Declarative text grid layouts from structured data
ViewText is a lightweight Python library for building dynamic text-based grid layouts. It provides a simple, declarative way to map structured data to formatted text output through a flexible registry and layout system.
Features
Field Registry: Register data getters that extract values from context objects
Formatter System: Built-in formatters for text, numbers, prices, dates, and relative times
Layout Engine: TOML-based layout definitions that map fields to grid positions
Extensible: Easy to add custom fields and formatters for domain-specific needs
Use Cases
Terminal/CLI dashboards
E-ink/LCD displays
Text-based data visualization
Any scenario requiring structured text layouts
Quick Example
from viewtext import LayoutEngine, LayoutLoader, BaseFieldRegistry
# Define your field registry
registry = BaseFieldRegistry()
registry.register("temperature", lambda ctx: ctx["temp"])
# Load layout from TOML
loader = LayoutLoader("layouts.toml")
layout = loader.get_layout("weather")
# Build grid output
engine = LayoutEngine(field_registry=registry)
lines = engine.build_line_str(layout, {"temp": 72})
Installation
This library is currently embedded in projects. Future: standalone PyPI package.