.. bpo: 2719 .. date: 6897 .. nonce: 4NH_Xn .. release date: 08-May-2008 .. section: Core and Builtins backported the ``next()`` builtin from Python 3. .. .. bpo: 2681 .. date: 6896 .. nonce: 8UXx90 .. section: Core and Builtins The octal literal ``0o8`` was incorrecly acctepted. Now it properly raises a SyntaxError. .. .. bpo: 2617 .. date: 6895 .. nonce: 1gTS6r .. section: Core and Builtins Reserved -J and -X arguments for Jython, IronPython and other implementations of Python. .. .. bpo: 0 .. date: 6894 .. nonce: aRO9gE .. section: Core and Builtins Implemented PEP 370: Per user site-packages directory. .. .. bpo: 2670 .. date: 6893 .. nonce: VM2Luj .. section: Library Fix a failure in urllib2.build_opener(), when passed two handlers that derive the same default base class. .. .. bpo: 0 .. date: 6892 .. nonce: 7fblHZ .. section: Library Added kill, terminate and send_signal(sig) to subprocess.Popen. .. .. bpo: 0 .. date: 6891 .. nonce: 88WSiY .. section: Library Added phase(z) -> phi, polar(z) -> r, phi and rect(r, phi) -> z to the cmath module. .. .. bpo: 0 .. date: 6890 .. nonce: 6dejMd .. section: Library Four new methods were added to the math and cmath modules: acosh, asinh, atanh and log1p. .. .. bpo: 0 .. date: 6889 .. nonce: v-VAd8 .. section: Library zlib.decompressobj().flush(value) no longer crashes the interpreter when passed a value less than or equal to zero. .. .. bpo: 1631171 .. date: 6888 .. nonce: 8Bc0Zl .. section: Library Re-implement the 'warnings' module in C (the original Python code has been kept as backup). This will allow for using the 'warning's machinery in such places as the parser where use of pure Python code is not possible. Both the ``showarning()`` and ``formatwarning()`` gain an optional 'line' argument which is not called by default for backwards-compatibility reasons. Setting ``warnings.showwarning()`` to an implementation that lacks support for the ``line`` argument will raise a DeprecationWarning. .. .. bpo: 0 .. date: 6887 .. nonce: CNqdrb .. section: Library The audiodev module has been deprecated for removal in Python 3.0. .. .. bpo: 2750 .. date: 6886 .. nonce: nv-hkg .. section: Library Add the 'json' package. Based on simplejson 1.9 and contributed by Bob Ippolito. .. .. bpo: 1734346 .. date: 6885 .. nonce: lfR8ca .. section: Library Support Unicode file names for zipfiles. .. .. bpo: 2581 .. date: 6884 .. nonce: fOkdCT .. section: Library distutils: Vista UAC/elevation support for bdist_wininst. .. .. bpo: 2635 .. date: 6883 .. nonce: F8Y92w .. section: Library Fix bug in 'fix_sentence_endings' textwrap.fill option, where an extra space was added after a word containing (but not ending in) '.', '!' or '?'. .. .. bpo: 0 .. date: 6882 .. nonce: lYk3LA .. section: Library Add from_buffer() and from_buffer_copy() class methods to ctypes data types. .. .. bpo: 2682 .. date: 6881 .. nonce: NLrJe2 .. section: Library ctypes callback functions no longer contain a cyclic reference to themselves. .. .. bpo: 0 .. date: 6880 .. nonce: TTWJof .. section: Library The getpass module has been improved on Unix. It now uses /dev/tty by default and uses stderr instead of stdout. A GetPassWarning is issued when input echo cannot be controlled. .. .. bpo: 2014 .. date: 6879 .. nonce: CKvu6Y .. section: Library Allow XML-RPC datetime objects to have dates before 1900-01-01. .. .. bpo: 2439 .. date: 6878 .. nonce: Kwwv4U .. section: Library Added new function pkgutil.get_data(), which is a convenience wrapper for the PEP 302 get_data() API. .. .. bpo: 2616 .. date: 6877 .. nonce: UHPY7r .. section: Library The ctypes.pointer() and ctypes.POINTER() functions are now implemented in C for better performance. .. .. bpo: 2408 .. date: 6876 .. nonce: GhLvZ5 .. section: Library The ``_types`` module, which was used as in implementation detail of the public ``types`` module, has been removed and replaced by pure python code. .. .. bpo: 2513 .. date: 6875 .. nonce: x3Kj5E .. section: Library distutils on Windows is now capable of cross-compiling extension modules between 32 and 64 bit platforms. See the distutls build documentation for more information. .. .. bpo: 815646 .. date: 6874 .. nonce: GhCmJD .. section: Library Individual file objects may now be used from multiple threads at once without fear of crashing the Python interpreter. If file.close() is called while an object is in use by another thread an IOError exception will be raised and the file will not be closed. .. .. bpo: 0 .. date: 6873 .. nonce: NdBuEp .. section: Library The bundled libffi copy is now in sync with the recently released libffi3.0.5 version, apart from some small changes to Modules/_ctypes/libffi/configure.ac. .. .. bpo: 2385 .. date: 6872 .. nonce: qIBVVF .. section: Library distutils.core.run_script() makes __file__ available, so the controlled environment will more closely mirror the typical script environment. This supports setup.py scripts that refer to data files. .. .. bpo: 2550 .. date: 6871 .. nonce: wbV22J .. section: Tests The approach used by client/server code for obtaining ports to listen on in network-oriented tests has been refined in an effort to facilitate running multiple instances of the entire regression test suite in parallel without issue. test_support.bind_port() has been fixed such that it will always return a unique port -- which wasn't always the case with the previous implementation, especially if socket options had been set that affected address reuse (i.e. SO_REUSEADDR, SO_REUSEPORT). The new implementation of bind_port() will actually raise an exception if it is passed an AF_INET/SOCK_STREAM socket with either the SO_REUSEADDR or SO_REUSEPORT socket option set. Furthermore, if available, bind_port() will set the SO_EXCLUSIVEADDRUSE option on the socket it's been passed. This currently only applies to Windows. This option prevents any other sockets from binding to the host/port we've bound to, thus removing the possibility of the 'non-deterministic' behaviour, as Microsoft puts it, that occurs when a second SOCK_STREAM socket binds and accepts to a host/port that's already been bound by another socket. The optional preferred port parameter to bind_port() has been removed. Under no circumstances should tests be hard coding ports! test_support.find_unused_port() has also been introduced, which will pass a temporary socket object to bind_port() in order to obtain an unused port. The temporary socket object is then closed and deleted, and the port is returned. This method should only be used for obtaining an unused port in order to pass to an external program (i.e. the -accept [port] argument to openssl's s_server mode) or as a parameter to a server-oriented class that doesn't give you direct access to the underlying socket used. Finally, test_support.HOST has been introduced, which should be used for the host argument of any relevant socket calls (i.e. bind and connect). The following tests were updated to following the new conventions: test_socket, test_smtplib, test_asyncore, test_ssl, test_httplib, test_poplib, test_ftplib, test_telnetlib, test_socketserver, test_asynchat and test_socket_ssl. It is now possible for multiple instances of the regression test suite to run in parallel without issue. .. .. bpo: 1496032 .. date: 6870 .. nonce: DcJtNu .. section: Build On alpha, use -mieee when gcc is the compiler. .. .. bpo: 2544 .. date: 6869 .. nonce: -H_NZm .. section: Build On HP-UX systems, use 'gcc -shared' for linking when gcc is used as compiler. .. .. bpo: 2573 .. date: 6868 .. nonce: 4wDeJ7 .. section: Build On MacOS X it is now possible to install the framework with a different name using --with-framework-name=NAME. .. .. bpo: 0 .. date: 6867 .. nonce: yznsKq .. section: C API Added implementation of copysign, acosh, asinh, atanh and log1p to the new files Include/pymath.h and Python/pymath.h for platforms which provide the functions through their libm. The files also contains several helpers and constants for math. .. .. bpo: 0 .. date: 6866 .. nonce: Kr65an .. section: C API Added a new convenience macro, PyErr_WarnPy3k, for issuing Py3k warnings.