1.11.0:
- Pull request 178: `with_metaclass` now properly proxies `__prepare__` to the
underlying metaclass.
- Pull request 191: Allow `with_metaclass` to work with metaclasses implemented
in C.
- Pull request 203: Add parse_http_list and parse_keqv_list to moved
urllib.request.
- Pull request 172 and issue 171: Add unquote_to_bytes to moved urllib.parse.
- Pull request 167: Add `six.moves.getoutput`.
- Pull request 80: Add `six.moves.urllib_parse.splitvalue`.
- Pull request 75: Add `six.moves.email_mime_image`.
- Pull request 72: Avoid creating reference cycles through tracebacks in
`reraise`.
1.9.0
-----
- Issue #106: Support the `flush` parameter to `six.print_`.
- Pull request #48 and issue #15: Add the `python_2_unicode_compatible`
decorator.
- Pull request #57 and issue #50: Add several compatibility methods for unittest
assertions that were renamed between Python 2 and 3.
- Issue #105 and pull request #58: Ensure `six.wraps` respects the *updated* and
*assigned* arguments.
- Issue #102: Add `raise_from` to abstract out Python 3's raise from syntax.
- Issue #97: Optimize `six.iterbytes` on Python 2.
- Issue #98: Fix `six.moves` race condition in multi-threaded code.
- Pull request #51: Add `six.view(keys|values|itmes)`, which provide dictionary
views on Python 2.7+.
1.8.0
-----
- Issue #90: Add six.moves.shlex_quote.
- Issue #59: Add six.moves.intern.
- Add six.urllib.parse.uses_(fragment|netloc|params|query|relative).
- Issue #88: Fix add_metaclass when the class has __slots__ containing
"__weakref__" or "__dict__".
- Issue #89: Make six use absolute imports.
- Issue #85: Always accept *updated* and *assigned* arguments for wraps().
- Issue #86: In reraise(), instantiate the exception if the second argument is
None.
- Pull request #45: Add six.moves.email_mime_nonmultipart.
- Issue #81: Add six.urllib.request.splittag mapping.
- Issue #80: Add six.urllib.request.splituser mapping.
1.7.3
-----
- Issue #77: Fix import six on Python 3.4 with a custom loader.
- Issue #74: six.moves.xmlrpc_server should map to SimpleXMLRPCServer on Python
2 as documented not xmlrpclib.
- Issue 72: Fix installing on Python 2.
Changes 1.7.1:
- Issue 71: Make the six.moves meta path importer handle reloading of the six
module gracefully.
Changes 1.7.0:
- Pull request 30: Implement six.moves with a PEP 302 meta path hook.
- Pull request 32: Add six.wraps, which is like functools.wraps but always sets
the __wrapped__ attribute.
- Pull request 35: Improve add_metaclass, so that it doesn't end up inserting
another class into the hierarchy.
- Pull request 34: Add import mappings for dummy_thread.
- Pull request 33: Add import mappings for UserDict and UserList.
- Pull request 31: Select the implementations of dictionary iterator routines
at import time for a 20% speed boost.
- Raise an AttributeError for six.moves.X when X is a module not available in
the current interpreter.
Changes 1.6.0:
- Raise an AttributeError for every attribute of unimportable modules.
- Issue 56: Make the fake modules six.moves puts into sys.modules appear not to
have a __path__ unless they are loaded.
- Pull request 28: Add support for SplitResult.
- Issue 55: Add move mapping for xmlrpc.server.
- Pull request 29: Add move for urllib.parse.splitquery.
Six is a Python 2 and 3 compatibility library. It provides utility functions
for smoothing over the differences between the Python versions with the goal
of writing Python code that is compatible on both Python versions. See the
documentation for more information on what is provided.
Six supports Python 2.4+.