I'm pleased to announce the release of six 1.4.0. This release sees some nice improvements, most significantly a much-requested compatibility layer for the Py3 urllib package. I'd like to thank Marc Abramowitz for contributing that as well as Jason R. Coombs for several other helpful pull requests. See the appended changelog for a complete picture of the changes in this release.
Download six at https://pypi.python.org/pypi/six
Online documentation is at http://packages.python.org/six/.
Bugs can be reported to http://bitbucket.org/gutworth/six. The code can also be found there.
Issue #31: Add six.moves mapping for UserString.
Pull request #12: Add six.add_metaclass, a decorator for adding a metaclass to a class.
Add six.moves.zip_longest and six.moves.filterfalse, which correspond respectively to itertools.izip_longest and itertools.ifilterfalse on Python 2 and itertools.zip_longest and itertools.filterfalse on Python 3.
Issue #25: Add the unichr function, which returns a string for a Unicode codepoint.
Issue #26: Add byte2int function, which complements int2byte.
Add a PY2 constant with obvious semantics.
Add helpers for indexing and iterating over bytes: iterbytes and indexbytes.
Add create_bound_method() wrapper.
Issue #23: Allow multiple base classes to be passed to with_metaclass.
Issue #24: Add six.moves.range alias. This exactly the same as the current xrange alias.
Pull request #5: Create six.moves.urllib, which contains abstractions for a bunch of things which are in urllib in Python 3 and spread out across urllib, urllib2, and urlparse in Python 2.
-- Regards, Benjamin