ANN: Urwid 1.0.0 - Console UI Library
ian at excess.org
Thu Sep 22 11:05:00 EDT 2011
Announcing Urwid 1.0.0
Urwid home page:
About this release:
This is a major feature release for Urwid:
It's the first official release that has support for Python 3.
There's a new experimental Terminal widget so you can terminal while you
terminal or write a screen-clone.
There's a new example showing how to serve Urwid interfaces to many
users simultaneously over ssh with Twisted.
There are new classes to help with creating dynamic tree views of
anything you have that's tree-like.
There are new widgets for working with pop-ups so you can now have all
the menu bars, drop-downs and combo-boxes you can write.
The old requirement to sprinkle draw_screen() calls around your
callbacks is gone. Urwid now updates the screen automatically after
everything else is done.
There's a new simple MainLoop method for catching updates from other
threads and processes. No need to manually fumble with os.pipe() and
And lots more...
Happy 1.0 Urwid! It's been a great nearly-seven years since our first
release. Huge thanks to everyone that's contributed code, docs, bug
reports and help on the mailing list and IRC.
New in this release:
* New support for Python 3.2 from the same 2.x code base,
requires distribute instead of setuptools (by Kirk McDonald,
Wendell, Marien Zwart) everything except TwistedEventLoop and
GLibEventLoop is supported
* New experimental Terminal widget with xterm emulation and
terminal.py example program (by aszlig)
* Edit widget now supports a mask (for passwords), has a
insert_text_result() method for full-field validation and
normalizes input text to Unicode or bytes based on the caption
* New TreeWidget, TreeNode, ParentNode, TreeWalker
and TreeListBox classes for lazy expanding/collapsing tree
views factored out of browse.py example program, with new
treesample.py example program (by Rob Lanphier)
* MainLoop now calls draw_screen() just before going idle, so extra
calls to draw_screen() in user code may now be removed
* New MainLoop.watch_pipe() method for subprocess or threaded
communication with the process/thread updating the UI, and new
subproc.py example demonstrating its use
* New PopUpLauncher and PopUpTarget widgets and MainLoop option
for creating pop-ups and drop-downs, and new pop_up.py example
* New twisted_serve_ssh.py example (by Ali Afshar) that serves
multiple displays over ssh from the same application using
Twisted and the TwistedEventLoop
* ListBox now includes a get_cursor_coords() method, allowing
nested ListBox widgets
* Columns widget contents may now be marked to always be treated
as flow widgets for mixing flow and box widgets more easily
* New lcd_display module with support for CF635 USB LCD panel and
lcd_cf635.py example program with menus, slider controls and a
* Shared command_map instance is now stored as Widget._command_map
class attribute and may be overridden in subclasses or individual
widgets for more control over special keystrokes
* Overlay widget parameters may now be adjusted after creation with
* New WidgetPlaceholder widget useful for swapping widgets without
having to manipulate a container widget's contents
* LineBox widgets may now include title text
* ProgressBar text content and alignment may now be overridden
* Use reactor.stop() in TwistedEventLoop and document that Twisted's
reactor is not designed to be stopped then restarted
* curses_display now supports AttrSpec and external event loops
(Twisted or GLib) just like raw_display
* raw_display and curses_display now support the IBMPC character
set (currently only used by Terminal widget)
* Fix for a gpm_mev bug preventing user input when on the console
* Fix for leaks of None objects in str_util extension
* Fix for WidgetWrap and AttrMap not working with fixed widgets
* Fix for a lock up when attempting to wrap text containing wide
characters into a single character column
Urwid is a console UI library for Python. It features fluid interface
resizing, Unicode support, multiple text layouts, simple attribute
markup, powerful scrolling list boxes and flexible interface design.
Urwid is released under the GNU LGPL.
More information about the Python-list