Path: csiph.com!news.mixmin.net!newsreader4.netcologne.de!news.netcologne.de!feeder1.cambriumusenet.nl!feed.tweak.nl!194.109.133.83.MISMATCH!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'win32': 0.03; 'api.': 0.04; 'apis': 0.07; 'welcome.': 0.07; 'wrapper': 0.07; 'api': 0.09; 'cc:addr:python-list': 0.09; 'cursor': 0.09; 'high-level': 0.09; 'input,': 0.09; 'object)': 0.09; 'pywin32': 0.09; 'received:openend.se': 0.09; 'received:theraft.openend.se': 0.09; 'url:github': 0.09; 'variants': 0.09; 'package,': 0.13; 'wed,': 0.15; '(but': 0.15; 'options.': 0.15; '>1)': 0.16; '>2)': 0.16; '>3)': 0.16; '>4)': 0.16; 'cc:addr:lac': 0.16; 'cc:addr:openend.se': 0.16; 'curses': 0.16; 'from:addr:lac': 0.16; 'from:addr:openend.se': 0.16; 'from:name:laura creighton': 0.16; 'low-level': 0.16; 'message-id:@fido.openend.se': 0.16; 'newsgroup.': 0.16; 'osx': 0.16; 'received:fido': 0.16; 'received:fido.openend.se': 0.16; 'resizing': 0.16; 'rough': 0.16; 'subject:access': 0.16; 'looked': 0.16; 'laura': 0.18; 'test.': 0.18; 'windows': 0.20; '2015': 0.20; 'cc:addr:python.org': 0.20; '(the': 0.22; 'cc:2**1': 0.22; 'meant': 0.22; 'appears': 0.23; 'installation': 0.23; 'consistent': 0.23; 'needed.': 0.23; 'unix': 0.24; 'install': 0.25; "i've": 0.25; '(which': 0.26; 'linux': 0.26; 'equivalent': 0.27; 'regular': 0.29; '-0700,': 0.29; 'received:se': 0.29; 'release.': 0.29; 'cc:no real name:2**1': 0.29; 'subject:/': 0.30; '(including': 0.30; 'creating': 0.30; 'option': 0.31; 'screen': 0.32; 'though,': 0.32; 'source': 0.33; 'url:python': 0.33; 'animation': 0.33; 'windows.': 0.33; 'open': 0.33; 'previous': 0.34; 'gives': 0.35; 'next': 0.35; 'could': 0.35; 'something': 0.35; 'community': 0.36; 'but': 0.36; 'project': 0.36; 'needed': 0.36; 'there': 0.36; 'url:org': 0.36; 'subject:: ': 0.37; 'there,': 0.37; 'available.': 0.37; 'beyond': 0.37; 'requirement': 0.37; 'charset:us-ascii': 0.37; 'feedback': 0.38; 'stuff': 0.38; 'does': 0.39; 'subject:-': 0.39; 'still': 0.40; 'some': 0.40; 'header:Message-Id:1': 0.61; 'provide': 0.61; 'show': 0.62; 'due': 0.65; 'therefore': 0.67; 'direct': 0.68; 'header:In-reply-to:1': 0.84; 'pip': 0.84; 'approach.': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openend.se; s=default; t=1445456516; bh=tsiwijV75KBIH90KsDLabwBWjkaOjLkkoekjQuVbm1s=; h=To:cc:From:Subject:In-reply-to:References:Date:From; b=guLmYtsUEoOWjSD9M85dTqIHBBRP/x7BhGdBEg4D99KujPgz8bdLuJHe+5sU7Skk5 xUqQcB3bJU0f+9u58QJZhOvRKTNrOadrrA5+YzWSpWG9SBm6N4AWaLwIyMF5CJJm1G c3Qhx9usD80PaJWy2BGd6ur7/1bAek/2jW1l2LHw= To: Peter Brittain cc: python-list@python.org, lac@openend.se From: Laura Creighton Subject: Re: A high-level cross-platform API for terminal/console access In-reply-to: References: Comments: In-reply-to Peter Brittain message dated "Wed, 21 Oct 2015 11:30:25 -0700." MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <7403.1445456510.1@fido> Content-Transfer-Encoding: quoted-printable Date: Wed, 21 Oct 2015 21:41:50 +0200 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.3.9 (theraft.openend.se [82.96.5.2]); Wed, 21 Oct 2015 21:41:56 +0200 (CEST) X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 51 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1445456525 news.xs4all.nl 23783 [2001:888:2000:d::a6]:44052 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:97870 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 (htt= ps://github.com/peterbrittain/asciimatics). Beyond the high-level animatio= n 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 Wi= ndows. 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 whil= e there's some pretty neat stuff out there, nothing actually gave me every= thing 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 l= imited as above). > >3) console (from effbot.org) is a native installer and so fails the pip t= est. It does however show direct use of the win32 API is a tenable approa= ch. > >4) The other packages I found were either dead projects or relied on a na= tive 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 Wi= ndows console API. = > >Over the last few months I've rounded out the features and proved that as= ciimatics 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 t= he project and so I've been deprecating old APIs in preparation for creati= ng 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 feed= back welcome. >-- = Did you try https://pypi.python.org/pypi/UniCurses ? Laura