Original Translation
2857
>>> sys.version_info sys.version_info(major=3, minor=1, micro=0, releaselevel='alpha', serial=2)
2858
(Contributed by Ross Light; :issue:`4285`.)
2859
The :mod:`nntplib` and :mod:`imaplib` modules now support IPv6.
2860
(Contributed by Derek Morr; :issue:`1655` and :issue:`1664`.)
2861
The :mod:`pickle` module has been adapted for better interoperability with Python 2.x when used with protocol 2 or lower. The reorganization of the standard library changed the formal reference for many objects. For example, ``__builtin__.set`` in Python 2 is called ``builtins.set`` in Python 3. This change confounded efforts to share data between different versions of Python. But now when protocol 2 or lower is selected, the pickler will automatically use the old Python 2 names for both loading and dumping. This remapping is turned-on by default but can be disabled with the *fix_imports* option::
2862
>>> s = {1, 2, 3} >>> pickle.dumps(s, protocol=0) b'c__builtin__\nset\np0\n((lp1\nL1L\naL2L\naL3L\natp2\nRp3\n.' >>> pickle.dumps(s, protocol=0, fix_imports=False) b'cbuiltins\nset\np0\n((lp1\nL1L\naL2L\naL3L\natp2\nRp3\n.'
2863
An unfortunate but unavoidable side-effect of this change is that protocol 2 pickles produced by Python 3.1 won't be readable with Python 3.0. The latest pickle protocol, protocol 3, should be used when migrating data between Python 3.x implementations, as it doesn't attempt to remain compatible with Python 2.x.
2864
(Contributed by Alexandre Vassalotti and Antoine Pitrou, :issue:`6137`.)
2865
A new module, :mod:`importlib` was added. It provides a complete, portable, pure Python reference implementation of the :keyword:`import` statement and its counterpart, the :func:`__import__` function. It represents a substantial step forward in documenting and defining the actions that take place during imports.
2866
Major performance enhancements have been added: