Plié: A Python Terminal User Interface Library¶
Plié helps you create interactive complexly laid out terminal applications with ease. Plié can be used to create single pane, or multi-pane layouts. It strives to be fast and precise enough that you could use it for a rogue like rpg, while still being easy enough to pick up in a few minutes.
The broad strokes of Plié:¶
plie.Text is the meat and potatoes. It can handle
displaying a single line text or whole paragraphs of text. If you want
plie.Text to be a button, give it a callout function, if you want it to be updateable
give it a callback function.
plie.MultiText adds on another layer to plie.Text and serves as a container. If
you want a menu of selectable items, use plie.Multitext, which is just a list filled
with plie.Text as it’s items.
- Both
plie.Textandplie.MultiTexthaveupdate()methods, which allow you - to update the contents of them, and have the updated contents be shown the next time the screen is rendered.
plie.Renderer is where all the action happens. plie.Renderer takes what is
called a ‘valid view dict’ which represents a layout of everything on the screen, and displays it
to the terminal.
Currently implemented features:¶
- Basic layouts, with a header, body and footer
- rendering text to the screen, and updating text
- support for different border styles
Planned features:¶
- popup windows that can display text messages for a specified amount of time.
- menus which contain multiple selectable items for interface control flow.
- solid asyncio event integration for handling a variety of events, including keyboard, timers and voice commands (via speech_recognition)
Other useful pages¶
Plié is in early alpha currently, all publicly exposed names and attributes may change during alpha.