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.Text
andplie.MultiText
haveupdate()
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.