[Idle-dev] Some implemented ideas that may help IDLE, request for feedback

Guilherme Polo ggpolo at gmail.com
Mon Aug 17 15:01:33 CEST 2009


These days I have been talking a lot with Bruce Sherwood, who is a
great enthusiast about IDLE and has watched large numbers of novice
users of IDLE, and several ideas have been proposed and are now
implemented on a branch living on svn.python.org. Some of the changes
were proposed by David Scherer, who created the modern idlefork in the
year 2000. I would like to see most or all of the changes merged into
Python and here I am hoping I can get some feedback.

Below are the ideas that have been implemented recently in the context
of part of a Google Summer of Code project:

* Allow running code without explicitly saving it before. This has
been added in such way to allow the default settings to preserve the
current behaviour. In this case when an exception occurs, the
temporary file name is substituted by "Untitled" on the traceback. At
some point, this option was available in the 2000 idlefork and has
been sorely missed by those users who prefer to write little test
routines in an edit window rather than in the shell window; without
this capability it is distracting to have to choose a place to save a
test file. Upon exit from IDLE the user is asked whether to save the
file permanently.

* Bring IDLE's shell forward on first thing printed to sys.stderr,
this can only happen again after a shell restart. I consider this of
great importance when writing programs that may open other windows,
like a Tkinter program, or a Visual one, since the user might expect
something to happen on that window but nothing happens because of an
error that occurred without him noticing. As reported by Bruce, the
lack of this feature has been a big problem in courses where novices
write such programs and don't understand why an animation has stopped,
because the error message is behind other windows.

* Terminate the server process under Windows too. On python trunk this
is done only for platforms that support os.kill.

* On python trunk when IDLE is configured to open an edit window, it
also opens a shell window. This has been reverted to behave as users
had come to expect, and because having the shell window present when
it is not in use can be distracting to novices working in environments
where they start in an edit window.

* When printing a traceback, highlight the stack traces that pertain
to the running file and also remove the "in <module>" from them. This
is an attempt to make easier for novices to spot probable errors in
their own code.Highlight here simply means that it is written to
stderr, like it is done now, and the other parts are printed to
stdout. The effect normally is that, by default, errors in the primary
file are displayed in red, and other call stack information is blue.

* Now "View Last Restart" shows the last non-empty instance of a shell
restart. In some cases a VPython application may cause two shell
restarts, one of them being after all application's output and thus
"View Last Restart" would be of no use if it moved the view to this
empty restart.

If you would like to try the branch, please do a svn checkout of
It also includes some other fixes and new features not mentioned above.


-- Guilherme H. Polo Goncalves

More information about the IDLE-dev mailing list