Textual: a Python text user interface with Rich as the renderer
github.com
github.com
The underlying library Rich is some of the best API design I've seen in ages, so I have very high expectations of Textual which it looks like it's easily going to meet.
Rich does a LOT of stuff, and all of the things it does work with each other - so it's easy to compose them together into sophisticated combined layouts.
It can render Markdown in a way that works on a console. It has gorgeous progress bars and spinners built in. It has a very competent table layout mechanism.
https://github.com/willmcgugan/rich/tree/master/examples is full of neat examples of what it can do - all very Pythonic in the way they work.
It's an impressive piece of software with a few surprises. (such as rendering to HTML)
Here are the main contenders for libraries that provide higher-level API than urwid/ncurses:
* Picotui, https://github.com/pfalcon/picotui
* Npyscreen, https://github.com/npcole/npyscreen
* py_cui, https://github.com/jwlodek/py_cui
Both Picotui and Npyscreen are relatively unmaintained / considered feature-full. py_cui seems to be in the best shape.
Fingers crossed for this project making it through, building on top of Rich gives it quite a bit of headstart. You can also sponsor @willmcgugan on Github [0].
A project I’m considering would have something similar to the Django admin interface but a TUI with keyboard shortcuts like shift+F9 and I’d like a “pick one and stick with it” recommendation for a TUI toolkit. That said, if a TUI front end for Django admin tasks already exists and I’ve missed it, I’d love to just use that rather than starting from scratch.
Looked like a really great library to build a text adventure game with though!
I do have some scripts used by non-developers, who can do things on the command line, but only by wrote. This would be really great for that vs having to build out a web-based thing.
This looks like DOS-based UIs, but so much nicer. I just never even considered that a possibility.
It looks like it's aiming for a very usable API, I'll try to follow its progress.