Why is there no platform independent way of clearing a terminal?

Thomas Jollans thomas at jollans.com
Wed Jul 28 13:31:37 EDT 2010


On 07/28/2010 07:02 PM, Jonathan Hartley wrote:
> On Jul 28, 5:47 pm, Thomas Jollans <tho... at jollans.com> wrote:
>> On 07/28/2010 06:01 PM, Jonathan Hartley wrote:
>>
>>
>>
>>> Oh, plus, while we're on this subject:
>>
>>> Am I right that curses in Python stdlib doesn't work on Windows, and
>>> there is currently no simple way to fix this?
>>
>>> Also, is it crazy to imagine that if colorama was pushed through to
>>> completion (ie. to support a majority of the relevant ANSI codes) then
>>> Python's stdlib curses module, unmodified, would suddenly just work on
>>> Windows? (after a call to 'colorama.init()')
>>
>>> I presume these ideas are oversimplifications or just plain wrong. If
>>> anyone would care to correct my misunderstandings, I'd be very
>>> grateful.
>>
>> Correct: it's not THAT simple.
>>
>> Python's curses module is a (I'm not sure how thin) wrapper around the
>> good old UNIX curses (ncurses, ...) library. This is written in C, not
>> Python, so it doesn't use Python's sys.stdout object to do I/O.
>>
>> I haven't had a look at colorama, but it sounds like it hooks into
>> sys.stdout, or Python file objects anyway. Far, far above the layer
>> curses does I/O on. So, if you ported a normal curses library to
>> Windows, colorama wouldn't help you a bit.
>>
>> It might be possible to write a curses-compatible library that works
>> with cmd.exe. Maybe. But, even if it's possible, I don't think it's
>> easy, and I especially don't think it would be particularly rewarding.
>>
>> Also, I just stumbled uponhttp://adamv.com/dev/python/curses/-- this
>> is probably the only reasonable way to get a useful curses API on
>> Windows: forget the DOS box.
> 
> 
> 
>> ncurses ... is written in C, not
>> Python, so it doesn't use Python's sys.stdout object to do I/O.
> 
> Ah, I should have spotted that. Of course. Thanks for the
> enlightenment.
> 
> And Neil Cerutti, I think I'll just email the whole source tree to
> myself, and have a script that scans my inbox, unzips source trees and
> runs their tests. Much nicer. :-)

use version control! Use mercurial, commit often, and add a commit-hook
that runs tests. Then you can even set up a separate repository that
your script automatically pushes your changes to if they pass the tests
cleanly.



More information about the Python-list mailing list