A high-level cross-platform API for terminal/console access

Laura Creighton lac at openend.se
Wed Oct 21 15:41:50 EDT 2015


In a message of Wed, 21 Oct 2015 11:30:25 -0700, Peter Brittain writes:
>I have recently been working on a terminal/console animation package (https://github.com/peterbrittain/asciimatics). Beyond the high-level animation methods/objects it provides, it also needed to be cross-platform and and simple to install with pip (including any dependencies).
>
>This cross-platform requirement meant I needed a curses equivalent for Windows.  This appears to have been a regular issue over the years and I've looked around at previous answers on the web and this newsgroup.  Now while there's some pretty neat stuff out there, nothing actually gave me everything I needed.
>
>1) colorama only gives you colours and cursor positioning, but no input, resizing or screen-scraping options.
>
>2) blessings/blessed provide better (but incomplete) APIs than the curses package, but no Windows support unless you use colorama (which is still limited as above).
>
>3) console (from effbot.org) is a native installer and so fails the pip test.  It does however show direct use of the win32 API is a tenable approach.
>
>4) The other packages I found were either dead projects or relied on a native installation of an open source implementation of curses - with no pip install option available.
>
>I therefore started writing a consistent wrapper API (the Screen object) that uses the curses package on Unix variants and pywin32 to access the Windows console API.  
>
>Over the last few months I've rounded out the features and proved that asciimatics works identically on Linux (various distros), OSX and Windows 7-10.   I know that there are still some rough edges due to the history of the project and so I've been deprecating old APIs in preparation for creating a completely clean API when I create the next major (v2.x) release.
>
>I suspect that it could be even better though, so am looking for feedback and ideas from the community - both on the high-level animation features and the low-level cross-platform terminal API.  
>
>Is there something you can see that could be usefully improved?  All feedback welcome.
>-- 

Did you try https://pypi.python.org/pypi/UniCurses ?

Laura



More information about the Python-list mailing list