.. bpo: 5677 .. date: 7847 .. nonce: b0Qejz .. release date: 2010-02-06 .. section: Core and Builtins Explicitly forbid write operations on read-only file objects, and read operations on write-only file objects. On Windows, the system C library would return a bogus result; on Solaris, it was possible to crash the interpreter. Patch by Stefan Krah. .. .. bpo: 7853 .. date: 7846 .. nonce: 7BnJKC .. section: Core and Builtins Normalize exceptions before they are passed to a context manager's ``__exit__()`` method. .. .. bpo: 7385 .. date: 7845 .. nonce: OVCbWd .. section: Core and Builtins Fix a crash in ``PyMemoryView_FromObject()`` when ``PyObject_GetBuffer()`` fails. Patch by Florent Xicluna. .. .. bpo: 7819 .. date: 7844 .. nonce: tGsOrJ .. section: Core and Builtins Check ``sys.call_tracing()`` arguments types. .. .. bpo: 7788 .. date: 7843 .. nonce: 4T4M13 .. section: Core and Builtins Fix an interpreter crash produced by deleting a list slice with very large step value. .. .. bpo: 7766 .. date: 7842 .. nonce: aejr9M .. section: Core and Builtins Change ``sys.getwindowsversion()`` return value to a named tuple and add the additional members returned in an OSVERSIONINFOEX structure. The new members are service_pack_major, service_pack_minor, suite_mask, and product_type. .. .. bpo: 7561 .. date: 7841 .. nonce: dYmand .. section: Core and Builtins Operations on empty bytearrays (such as ``int(bytearray())``) could crash in many places because of the ``PyByteArray_AS_STRING()`` macro returning NULL. The macro now returns a statically allocated empty string instead. .. .. bpo: 7622 .. date: 7840 .. nonce: yL5cXb .. section: Core and Builtins Improve the split(), rsplit(), splitlines() and replace() methods of bytes, bytearray and unicode objects by using a common implementation based on stringlib's fast search. Patch by Florent Xicluna. .. .. bpo: 7632 .. date: 7839 .. nonce: djAkIG .. section: Core and Builtins Fix various str -> float conversion bugs present in 2.7 alpha 2, including: (1) a serious 'wrong output' bug that could occur for long (> 40 digit) input strings, (2) a crash in dtoa.c that occurred in debug builds when parsing certain long numeric strings corresponding to subnormal values, (3) a memory leak for some values large enough to cause overflow, and (4) a number of flaws that could lead to incorrectly rounded results. .. .. bpo: 7319 .. date: 7838 .. nonce: CIP64d .. section: Core and Builtins Silence ``DeprecationWarning`` by default when the -3 option is not used. (See also: bpo-7770) .. .. bpo: 2335 .. date: 7837 .. nonce: NB-Xpf .. section: Core and Builtins Backport set literals syntax from Python 3.x. .. .. bpo: 2333 .. date: 7836 .. nonce: yWLBy3 .. section: Core and Builtins Backport set and dict comprehensions syntax from Python 3.x. .. .. bpo: 1967 .. date: 7835 .. nonce: RryGx3 .. section: Core and Builtins Backport dictionary views from Python 3.x. .. .. bpo: 9137 .. date: 7834 .. nonce: DgWODo .. section: Library Fix issue in MutableMapping.update, which incorrectly treated keyword arguments called 'self' or 'other' specially. .. .. bpo: 7835 .. date: 7833 .. nonce: jlbrK8 .. section: Library shelve should no longer produce mysterious warnings during interpreter shutdown. .. .. bpo: 2746 .. date: 7832 .. nonce: F6UqCX .. section: Library Don't escape ampersands and angle brackets ("&", "<", ">") in XML processing instructions and comments. These raw characters are allowed by the XML specification, and are necessary when outputting e.g. PHP code in a processing instruction. Patch by Neil Muller. .. .. bpo: 7869 .. date: 7831 .. nonce: 1QS851 .. section: Library logging: Improved diagnostic for format-time errors. .. .. bpo: 7868 .. date: 7830 .. nonce: PXTr9t .. section: Library logging: Added loggerClass attribute to Manager. .. .. bpo: 7851 .. date: 7829 .. nonce: 7OtUnx .. section: Library logging: Clarification on logging configuration files. .. .. bpo: 4772 .. date: 7828 .. nonce: 9_Y3av .. section: Library Raise a ValueError when an unknown Bluetooth protocol is specified, rather than fall through to AF_PACKET (in the ``socket`` module). Also, raise ValueError rather than TypeError when an unknown TIPC address type is specified. Patch by Brian Curtin. .. .. bpo: 0 .. date: 7827 .. nonce: DG4Srd .. section: Library logging: Implemented PEP 391. .. .. bpo: 6939 .. date: 7826 .. nonce: 8fBhhK .. section: Library Fix file I/O objects in the `io` module to keep the original file position when calling `truncate()`. It would previously change the file position to the given argument, which goes against the tradition of ftruncate() and other truncation APIs. Patch by Pascal Chambon. .. .. bpo: 7610 .. date: 7825 .. nonce: 2DXmYZ .. section: Library Reworked implementation of the internal ``zipfile.ZipExtFile`` class used to represent files stored inside an archive. The new implementation is significantly faster and can be wrapped in an ``io.BufferedReader`` object for more speedups. It also solves an issue where interleaved calls to ``read()`` and ``readline()`` give wrong results. Patch by Nir Aides. .. .. bpo: 7792 .. date: 7824 .. nonce: ncH8BS .. section: Library Registering non-classes to ABCs raised an obscure error. .. .. bpo: 0 .. date: 7823 .. nonce: RpNACh .. section: Library Removed the deprecated functions ``verify()`` and ``vereq()`` from Lib/test/test_support.py. .. .. bpo: 7773 .. date: 7822 .. nonce: x2tWld .. section: Library Fix an UnboundLocalError in ``platform.linux_distribution()`` when the release file is empty. .. .. bpo: 7748 .. date: 7821 .. nonce: YlAgV- .. section: Library Since unicode values are supported for some metadata options in Distutils, the DistributionMetadata get_* methods will now return a utf-8 encoded string for them. This ensures that the upload and register commands send the correct values to PyPI without any error. .. .. bpo: 1670765 .. date: 7820 .. nonce: 9eCqJl .. section: Library Prevent ``email.generator.Generator`` from re-wrapping headers in multipart/signed MIME parts, which fixes one of the sources of invalid modifications to such parts by Generator. .. .. bpo: 7701 .. date: 7819 .. nonce: e9a5VO .. section: Library Fix crash in ``binascii.b2a_uu()`` in debug mode when given a 1-byte argument. Patch by Victor Stinner. .. .. bpo: 3299 .. date: 7818 .. nonce: AzzK85 .. section: Library Fix possible crash in the _sre module when given bad argument values in debug mode. Patch by Victor Stinner. .. .. bpo: 7703 .. date: 7817 .. nonce: FNoqUO .. section: Library Add support for the new buffer API to functions of the binascii module. Backported from py3k by Florent Xicluna, with some additional tests. .. .. bpo: 2846 .. date: 7816 .. nonce: 1yXo1U .. section: Library Add support for gzip.GzipFile reading zero-padded files. Patch by Brian Curtin. .. .. bpo: 5827 .. date: 7815 .. nonce: HqdXuX .. section: Library Make sure that normpath preserves unicode. Initial patch by Matt Giuca. .. .. bpo: 5372 .. date: 7814 .. nonce: t3pYj8 .. section: Library Drop the reuse of .o files in Distutils' ccompiler (since Extension extra options may change the output without changing the .c file). Initial patch by Collin Winter. .. .. bpo: 0 .. date: 7813 .. nonce: nL49In .. section: Library Expat: Fix DoS via XML document with malformed UTF-8 sequences (CVE_2009_3560). .. .. bpo: 7632 .. date: 7812 .. nonce: AWDxJU .. section: Build When Py_USING_MEMORY_DEBUGGER is defined, disable the private memory allocation scheme in dtoa.c and use PyMem_Malloc and PyMem_Free instead. Also disable caching of powers of 5. .. .. bpo: 7658 .. date: 7811 .. nonce: oUBbSZ .. section: Build Ensure that the new pythonw executable works on OSX 10.4 .. .. bpo: 7714 .. date: 7810 .. nonce: 27wQ2M .. section: Build Use ``gcc -dumpversion`` to detect the version of GCC on MacOSX. .. .. bpo: 7661 .. date: 7809 .. nonce: ggMDHr .. section: Build Allow ctypes to be built from a non-ASCII directory path. Patch by Florent Xicluna. .. .. bpo: 0 .. date: 7808 .. nonce: KgUrLn .. section: Tools/Demos iobench (a file I/O benchmark) and ccbench (a concurrency benchmark) were added to the ``Tools`` directory. They were previously living in the sandbox. .. .. bpo: 7728 .. date: 7807 .. nonce: f9wo4c .. section: Tests test_timeout was changed to use ``test_support.bind_port()`` instead of a hard coded port. .. .. bpo: 0 .. date: 7806 .. nonce: Dx9g36 .. section: Documentation Updated "Using Python" documentation to include description of CPython's -J, -U and -X options. .. .. bpo: 0 .. date: 7805 .. nonce: vllYdR .. section: Documentation Updated Python manual page (options -B, -O0, -s, environment variables PYTHONDONTWRITEBYTECODE, PYTHONNOUSERSITE).