Mailing List Archive

ANN: Urwid 1.1.0 - Usability and Documentation
Announcing Urwid 1.1.0
----------------------

Urwid home page:
http://excess.org/urwid/

Manual:
http://excess.org/urwid/docs/

Package:
http://pypi.python.org/pypi/urwid/1.1.0


About this release:
===================

This is a major feature release for Urwid.

The first focus for this release has been on improving the usability of
container widgets by building a common API that works on all containers.
This API allows reading and updating the focus, contents and options across
most containers. Urwid's container widgets have grown organically over
the years and many lack an API for updating their contents at all. These
changes deprecate a number of existing methods and attributes, but continue
to support them. Read about the new API here:

http://excess.org/urwid/docs/manual/widgets.html#container-widgets

The second focus has been improving Urwid's documentation. Urwid's
Tutorial, Manual and Reference have been converted from HTML and wiki pages
to Sphinx reStructured text. The tutorial has been largely rewritten.
It now covers many more aspects of the library including common patterns
and the new container API. The Manual has been heavily edited and most of
the class and function docstrings have been updated to look their best in
the new Reference. The new documentation is available here:

http://excess.org/urwid/docs/

See "New in 1.1.0" below for other changes.


Planned changes:
================

Urwid currently supports Python versions 2.4, 2.5, 2.6, 2.7, 3.2 and 3.3.
That's just too many versions. I plan to drop support for Python 2.4 and
2.5 in the 1.2.x series to clean up some of the Python 3 compatibility code
and start taking advantage of the futuristic language features from the
year 2008.

I will make a greater effort than usual to back port fixes to the 1.1.x
series to support users that choose to continue using old versions of
Python.


New in 1.1.0:
=============

* New common container API: focus, focus_position, contents,
options(), get_focus_path(), set_focus_path(), __getitem__,
__iter__(), __reversed__() implemented across all included
container widgets

A full description doesn't fit here, see the Container Widgets
section in the manual for details

* New Sphinx-based documentation now included in source:
Tutorial rewritten, manual revised and new reference based
on updated docstrings (by Marco Giusti, Patrick Totzke)

* New list walker SimpleFocusListWalker like SimpleListWalker but
updates focus position as items are inserted or removed

* New decoration widget WidgetDisable to disable interaction
with the widgets it wraps

* SelectableIcon selectable text widget used by button widgets is
now documented (available since 0.9.9)

* Columns widget now tries to keep column in focus visible, hiding
columns on the left when necessary

* Padding widget now defaults to ('relative', 100) instead of
'pack' so that left and right parameters are more useful and more
child widgets are supported

* New list walker "API Version 2" that is simpler for many list
walker uses; "API Version 1" will still continue to be supported

* List walkers may now allow iteration from the absolute top or
bottom of the list if they provide a positions() method

* raw_display now erases to the end of the line with EL escape
sequence to improve copy+paste behavior for some terminals

* Filler now has top and bottom parameters like Padding's left and
right parameters and accepts 'pack' instead of None as a height
value for widgets that calculate their own number of rows

* Pile and Columns now accepts 'pack' instead of 'flow' for widgets
that calculate their own number of rows or columns

* Pile and Columns now accept 'given' instead of 'fixed' for
cases where the number of rows or columns are specified by the
container options

* Pile and Columns widgets now accept any iterable to their
__init__() methods

* Widget now has a default focus_position property that raises
an IndexError when read to be consistent with new common container
API

* GridFlow now supports multiple cell widths within the same widget

* BoxWidget, FlowWidget and FixedWidget are deprecated, instead
use the sizing() function or _sizing attribute to specify the
supported sizing modes for your custom widgets

* Some new shift+arrow and numpad input sequences from RXVT and
xterm are now recognized

* Fix for alarms when used with a screen event loop (e.g.
curses_display)

* Fix for raw_display when terminal width is 1 column

* Fixes for a Columns.get_cursor_coords() regression and a
SelectableIcon.get_cursor_coords() bug

* Fixes for incorrect handling of box columns in a number of
Columns methods when that column is selectable

* Fix for Terminal widget input handling with Python 3


About Urwid
===========

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.
--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/