| +++++++++++ |
| Python News |
| +++++++++++ |
| |
| (editors: check NEWS.help for information about editing NEWS using ReST.) |
| |
| What's New in Python 2.6 alpha 1? |
| ================================= |
| |
| *Release date: XX-XXX-2008* |
| |
| Core and builtins |
| ----------------- |
| |
| - Backport of PyUnicode_FromString(), _FromStringAndSize(), _Format and |
| _FormatV from Python 3.0. Made PyLong_AsSsize_t and PyLong_FromSsize_t |
| public functions. |
| |
| - Issue #1920: "while 0" statements were completely removed by the compiler, |
| even in the presence of an "else" clause, which is supposed to be run when |
| the condition is false. Now the compiler correctly emits bytecode for the |
| "else" suite. |
| |
| - A few crashers fixed: weakref_in_del.py (issue #1377858); |
| loosing_dict_ref.py (issue #1303614, test67.py); |
| borrowed_ref_[34].py (not in tracker). |
| |
| - Issue #1069410: The "can't load dll" message box on Windows is |
| suppressed while an extension is loaded by calling SetErrorMode in |
| dynload_win.c. The error is still reported properly. |
| |
| - Bug #1915: Python compiles with --enable-unicode=no again. However |
| several extension methods and modules do not work without unicode |
| support. |
| |
| - Patch #1720595: add T_BOOL to the range of structmember types. |
| |
| - Issue #1882: when compiling code from a string, encoding cookies in the |
| second line of code were not always recognized correctly. |
| |
| - Issue #1679: "0x" was taken as a valid integer literal. |
| |
| - Issue #1865: Bytes as an alias for str and b"" as an alias "" were |
| added. |
| |
| - sys.float_info / PyFloat_GetInfo: The floating point information |
| object was converted from a dict to a specialized structseq object. |
| |
| - Patch #1816: Added sys.flags structseq. It exposes the status of most |
| command line arguments and PYTHON* environment variables. |
| |
| - Object/structseq.c: Implemented new structseq representation. The patch |
| makes structseqs (e.g. the return value of os.stat) more readable. |
| |
| - Patch #1700288: added a type attribute cache that caches method accesses, |
| resulting in speedups in heavily object-oriented code. |
| |
| - Bug #1776: __import__() no longer accepts filenames on any platform. |
| The first parameter to __import__() must be a valid module name. |
| |
| - Patch #1668: renamed THREADDEBUG envvar to PYTHONTHREADDEBUG. |
| |
| - Patch #602345: Add -B command line option, PYTHONDONTWRITEBYTECODE envvar |
| and sys.dont_write_bytecode attribute. All these can be set to forbid Python |
| to attempt to write compiled bytecode files. |
| |
| - Improve some exception messages when Windows fails to load an extension |
| module. Now we get for example '%1 is not a valid Win32 application' instead |
| of 'error code 193'. |
| |
| - Bug #1481296: Fixed long(float('nan'))!=0L. |
| |
| - Issue #1640: Added math.isinf(x), math.isnan(x) and math.copysign(x, y) |
| functions. |
| |
| - Issue #1635: Platform independent creation and representation of NaN |
| and INF. float("nan"), float("inf") and float("-inf") now work on every |
| platform with IEEE 754 semantics. |
| |
| - Compiler now generates simpler and faster code for dictionary literals. |
| The oparg for BUILD_MAP now indicates an estimated dictionary size. |
| There is a new opcode, STORE_MAP, for adding entries to the dictionary. |
| |
| - Issue #1638: %zd configure test fails on Linux |
| |
| - Issue #1620: New property decorator syntax was modifying the decorator |
| in place instead of creating a new decorator object. |
| |
| - Issue #1580: New free format floating point representation based on |
| "Floating-Point Printer Sample Code", by Robert G. Burger. For example |
| repr(11./5) now returns '2.2' instead of '2.2000000000000002'. |
| |
| - Issue #1538: Avoid copying string in split/rsplit if the split |
| char is not found. |
| |
| - Issue #1553: An erroneous __length_hint__ can make list() raise a |
| SystemError. |
| |
| - PEP 366: Allow explicit relative imports when executing modules |
| inside packages with the -m switch via a new module level |
| __package__ attribute. |
| |
| - Issue #1534: Added ``PyFloat_GetMax()``, ``PyFloat_GetMin()`` and |
| ``PyFloat_GetInfo()`` to the float API. |
| |
| - Issue #1521: On 64bit platforms, using PyArgs_ParseTuple with the t# of w# |
| format code incorrectly truncated the length to an int, even when |
| PY_SSIZE_T_CLEAN is set. The str.decode method used to return incorrect |
| results with huge strings. |
| |
| - Issue #1402: Fix a crash on exit, when another thread is still running, and |
| if the deallocation of its frames somehow calls the PyGILState_Ensure() / |
| PyGILState_Release() functions. |
| |
| - Expose the Py_Py3kWarningFlag as sys.py3kwarning. |
| |
| - Issue #1445: Fix a SystemError when accessing the ``cell_contents`` |
| attribute of an empty cell object. |
| |
| - Issue #1460: The utf-7 incremental decoder did not accept truncated input. |
| It now correctly saves its state between chunks of data. |
| |
| - Patch #1739468: Directories and zipfiles containing a __main__.py file can |
| now be directly executed by passing their name to the interpreter. The |
| directory/zipfile is automatically inserted as the first entry in sys.path. |
| |
| - Issue #1265: Fix a problem with sys.settrace, if the tracing function uses a |
| generator expression when at the same time the executed code is closing a |
| paused generator. |
| |
| - sets and frozensets now have an isdisjoint() method. |
| |
| - optimize the performance of builtin.sum(). |
| |
| - Fix warnings found by the new version of the Coverity checker. |
| |
| - The enumerate() builtin function is no longer bounded to sequences smaller |
| than LONG_MAX. Formerly, it raised an OverflowError. Now, automatically |
| shifts from ints to longs. |
| |
| - Issue #1686386: Tuple's tp_repr did not take into account the possibility of |
| having a self-referential tuple, which is possible from C code. Nor did |
| object's tp_str consider that a type's tp_str could do something that could |
| lead to an inifinite recursion. Py_ReprEnter() and Py_EnterRecursiveCall(), |
| respectively, fixed the issues. |
| |
| - Issue #1164: It was possible to trigger deadlock when using the 'print' |
| statement to write to a file since the GIL was not released as needed. Now |
| PyObject_Print() does the right thing along with various tp_print |
| implementations of the built-in types and those in the collections module. |
| |
| - Issue #1147: Exceptions were directly allowing string exceptions in their |
| throw() method even though string exceptions no longer allowed. |
| |
| - Issue #1096: Prevent a segfault from getting the repr of a very deeply nested |
| list by using the recursion counter. |
| |
| - Issue #1202533: Fix infinite recursion calls triggered by calls to |
| PyObject_Call() never calling back out to Python code to trigger recursion |
| depth updates/checks. Required the creation of a static RuntimeError |
| instance in case normalizing an exception put the recursion check value past |
| its limit. Fixes crashers infinite_rec_(1|2|4|5).py. |
| |
| - Patch #1031213: Decode source line in SyntaxErrors back to its original source |
| encoding. |
| |
| - Py_ssize_t fields work in structmember when HAVE_LONG_LONG is not defined. |
| |
| - PEP 3123: Provide forward compatibility with Python 3.0, while keeping |
| backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and |
| PyVarObject_HEAD_INIT. |
| |
| - Patch #1673759: add a missing overflow check when formatting floats |
| with %G. |
| |
| - Patch #1733960: Allow T_LONGLONG to accept ints. |
| |
| - T_PYSSIZET can now be used in PyMemberDef lists for Py_ssize_t members. |
| |
| - Prevent expandtabs() on string and unicode objects from causing a segfault |
| when a large width is passed on 32-bit platforms. |
| |
| - Bug #1733488: Fix compilation of bufferobject.c on AIX. |
| |
| - Bug #1722485: remove docstrings again when running with -OO. |
| |
| - Add new attribute names for function objects. All the func_* become |
| __*__ attributes. (Some already existed, e.g., __doc__ and __name__.) |
| |
| - Add -3 option to the interpreter to warn about features that are |
| deprecated and will be changed/removed in Python 3.0. |
| |
| - Patch #1686487: you can now pass any mapping after '**' in function |
| calls. |
| |
| - except clauses may now be spelled either "except E, target:" or |
| "except E as target:". This is to provide forwards compatibility with |
| Python 3.0. |
| |
| - Deprecate BaseException.message as per PEP 352. |
| |
| - Bug #1303614: don't expose object's __dict__ when the dict is |
| inherited from a builtin base. |
| |
| - When __slots__ are set to a unicode string, make it work the same as |
| setting a plain string, ie don't expand to single letter identifiers. |
| |
| - Request #1191699: Slices can now be pickled. |
| |
| - Request #1193128: str.translate() now allows a None argument for |
| translations that only remove characters without re-mapping the |
| remaining characters. |
| |
| - Patch #1682205: a TypeError while unpacking an iterable is no longer |
| masked by a generic one with the message "unpack non-sequence". |
| |
| - Remove unused file Python/fmod.c. |
| |
| - Bug #1683368: The object.__init__() and object.__new__() methods are |
| now stricter in rejecting excess arguments. The only time when |
| either allows excess arguments is when it is not overridden and the |
| other one is. For backwards compatibility, when both are |
| overridden, it is a deprecation warning (for now; maybe a Py3k |
| warning later). Also, type.__init__() insists on the same signature |
| as supported by type.__new__(). |
| |
| - Patch #1675423: PyComplex_AsCComplex() now tries to convert an object |
| to complex using its __complex__() method before falling back to the |
| __float__() method. Therefore, the functions in the cmath module now |
| can operate on objects that define a __complex__() method. |
| |
| - Patch #1623563: allow __class__ assignment for classes with __slots__. |
| The old and the new class are still required to have the same slot names. |
| |
| - Patch #1642547: Fix an error/crash when encountering syntax errors in |
| complex if statements. |
| |
| - Patch #1462488: Python no longer segfaults when ``object.__reduce_ex__()`` |
| is called with an object that is faking its type. |
| |
| - Patch #1680015: Don't modify __slots__ tuple if it contains an unicode |
| name. |
| |
| - Patch #1444529: the builtin compile() now accepts keyword arguments. |
| |
| - Bug #1678647: write a newline after printing an exception in any |
| case, even when converting the value to a string failed. |
| |
| - The dir() function has been extended to call the __dir__() method on |
| its argument, if it exists. If not, it will work like before. This allows |
| customizing the output of dir() in the presence of a __getattr__(). |
| |
| - Patch #922167: Python no longer segfaults when faced with infinitely |
| self-recursive reload() calls (as reported by bug #742342). |
| |
| - Patch #1675981: remove unreachable code from ``type.__new__()`` method. |
| |
| - Patch #1491866: change the complex() constructor to allow parthensized |
| forms. This means complex(repr(x)) now works instead of raising a |
| ValueError. |
| |
| - Patch #703779: unset __file__ in __main__ after running a file. This |
| makes the filenames the warning module prints much more sensible when |
| a PYTHONSTARTUP file is used. |
| |
| - Variant of patch #697613: don't exit the interpreter on a SystemExit |
| exception if the -i command line option or PYTHONINSPECT environment |
| variable is given, but break into the interactive interpreter just like |
| on other exceptions or normal program exit. |
| |
| - Patch #1638879: don't accept strings with embedded NUL bytes in long(). |
| |
| - Bug #1674503: close the file opened by execfile() in an error condition. |
| |
| - Patch #1674228: when assigning a slice (old-style), check for the |
| sq_ass_slice instead of the sq_slice slot. |
| |
| - When printing an unraisable error, don't print exceptions. before the name. |
| This duplicates the behavior whening normally printing exceptions. |
| |
| - Bug #1653736: Properly discard third argument to slot_nb_inplace_power. |
| |
| - PEP 352: Raising a string exception now triggers a TypeError. Attempting to |
| catch a string exception raises DeprecationWarning. |
| |
| - Bug #1377858: Fix the segfaulting of the interpreter when an object created |
| a weakref on itself during a __del__ call for new-style classes (classic |
| classes still have the bug). |
| |
| - Bug #1579370: Make PyTraceBack_Here use the current thread, not the |
| frame's thread state. |
| |
| - patch #1630975: Fix crash when replacing sys.stdout in sitecustomize.py |
| |
| - Bug #1637022: Prefix AST symbols with _Py_. |
| |
| - Prevent seg fault on shutdown which could occur if an object |
| raised a warning. |
| |
| - Bug #1566280: Explicitly invoke threading._shutdown from Py_Main, |
| to avoid relying on atexit. |
| |
| - Bug #1590891: random.randrange don't return correct value for big number |
| |
| - Patch #1586791: Better exception messages for some operations on strings, |
| tuples and lists. |
| |
| - Bug #1067760: Deprecate passing floats to file.seek. |
| |
| - Bug #1591996: Correctly forward exception in instance_contains(). |
| |
| - Bug #1588287: fix invalid assertion for `1,2` in debug builds. |
| |
| - Bug #1576657: when setting a KeyError for a tuple key, make sure that |
| the tuple isn't used as the "exception arguments tuple". |
| |
| - Bug #1565514, SystemError not raised on too many nested blocks. |
| |
| - Bug #1576174: WindowsError now displays the windows error code |
| again, no longer the posix error code. |
| |
| - Patch #1549049: Support long values in structmember, issue warnings |
| if the assigned value for structmember fields gets truncated. |
| |
| - Update the peephole optimizer to remove more dead code (jumps after returns) |
| and inline unconditional jumps to returns. |
| |
| - Bug #1545497: when given an explicit base, int() did ignore NULs |
| embedded in the string to convert. |
| |
| - Bug #1569998: break inside a try statement (outside a loop) is now |
| recognized and rejected. |
| |
| - list.pop(x) accepts any object x following the __index__ protocol. |
| |
| - Fix some leftovers from the conversion from int to Py_ssize_t |
| (relevant to strings and sequences of more than 2**31 items). |
| |
| - A number of places, including integer negation and absolute value, |
| were fixed to not rely on undefined behaviour of the C compiler |
| anymore. |
| |
| - Bug #1566800: make sure that EnvironmentError can be called with any |
| number of arguments, as was the case in Python 2.4. |
| |
| - Patch #1567691: super() and new.instancemethod() now don't accept |
| keyword arguments any more (previously they accepted them, but didn't |
| use them). |
| |
| - Fix a bug in the parser's future statement handling that led to "with" |
| not being recognized as a keyword after, e.g., this statement: |
| from __future__ import division, with_statement |
| |
| - Bug #1557232: fix seg fault with def f((((x)))) and def f(((x),)). |
| |
| - Fix %zd string formatting on Mac OS X so it prints negative numbers. |
| |
| - Allow exception instances to be directly sliced again. |
| |
| - Bug #1551432: Exceptions do not define an explicit __unicode__ method. This |
| allows calling unicode() on exceptions classes directly to succeed. |
| |
| - Make _PyGILState_NoteThreadState() static, it was not used anywhere |
| outside of pystate.c and should not be necessary. |
| |
| - Bug #1542051: Exceptions now correctly call PyObject_GC_UnTrack. |
| Also make sure that every exception class has __module__ set to |
| 'exceptions'. |
| |
| - Bug #1550983: emit better error messages for erroneous relative |
| imports (if not in package and if beyond toplevel package). |
| |
| - Overflow checking code in integer division ran afoul of new gcc |
| optimizations. Changed to be more standard-conforming. |
| |
| - Patch #1542451: disallow continue anywhere under a finally. |
| |
| - Patch #1546288: fix seg fault in dict_equal due to ref counting bug. |
| |
| - The return tuple from str.rpartition(sep) is (tail, sep, head) where |
| head is the original string if sep was not found. |
| |
| - Bug #1520864: unpacking singleton tuples in list comprehensions and |
| generator expressions (x for x, in ... ) works again. Fixing this problem |
| required changing the .pyc magic number. This means that .pyc files |
| generated before 2.5c2 will be regenerated. |
| |
| - with and as are now keywords. |
| |
| - Bug #1664966: Fix crash in exec if Unicode filename can't be decoded. |
| |
| - Issue #1537: Changed GeneratorExit's base class from Exception to |
| BaseException. |
| |
| - Fix Issue #1703448: A joined thread could show up in the |
| threading.enumerate() list after the join() for a brief period until |
| it actually exited. |
| |
| Library |
| ------- |
| |
| - #1765140: add an optional delay argument to FileHandler and its |
| subclasses. Defaults to false (existing behaviour), but if true, |
| defers opening the file until the first call to emit(). |
| |
| - The pprint module now supports sets and frozensets. |
| |
| - #1221598: add optional callbacks to ftplib.FTP's storbinary() and |
| storlines() methods. (Contributed by Phil Schwartz) |
| |
| - #1715: include sub-extension modules in pydoc's text output. |
| |
| - #1836: fix an off-by-one bug in TimedRotatingHandler's rollover |
| time calculation. |
| |
| - #1021: fix a bug to allow basicConfig to accept NOTSET as a level. |
| |
| - #932563: add LoggerAdapter convenience class to make it easier to add |
| contextual information in logging output. |
| |
| - #1760556: fix a bug to avoid FileHandler throwing an exception in |
| flush(). |
| |
| - Bug #1530959: distutils' build command now uses different build directory |
| when building extension modules against versions of Python compiled |
| with ``--with-pydebug``. |
| |
| - #1555501: move plistlib from plat-mac directory to general library. |
| |
| - #1269: fix a bug in pstats.add_callers() and add a unit test file for |
| pstats. |
| |
| - #1669: don't allow shutil.rmtree() to be called on a symlink to a |
| directory. |
| |
| - #1664522: in urllib, don't read non-existing directories in ftp mode, |
| returning a 0-byte file -- raise an IOError instead. |
| |
| - #856047: respect the ``no_proxy`` environment variable when using the |
| ``http_proxy`` etc. environment variables in urllib. |
| |
| - #1178141: add a getcode() method to the addinfourls that urllib.open() |
| returns so that you can retrieve the HTTP status code. |
| |
| - Issue #1003: Fix zipfile decryption check, it would fail zip files |
| with extended local headers. |
| |
| - #1189216: Fix the zipfile module to work on archives with headers |
| past the 2**31 byte boundary. |
| |
| - #1336: fix a race condition in subprocess.Popen if the garbage |
| collector kicked in at the wrong time that would cause the process |
| to hang when the child wrote to stderr. |
| |
| - #1146: fix how textwrap breaks a long word that would start in the |
| last column of a line. |
| |
| - #1693149: trace.py --ignore-module - accept multiple comma-separated |
| modules to be given. |
| |
| - #1822: MIMEMultipart.is_multipart() behaves correctly for a just-created |
| (and empty) instance. Thanks Jonathan Share. |
| |
| - #1861: Added an attribute to the sched module which returns an ordered |
| list of upcoming events (displayed as named tuples). |
| |
| - #1837: The queue module now also supports a LIFO queue and a priority queue. |
| |
| - Patch #1048820: Add insert-mode editing to curses.textpad.Textbox |
| (patch by Stefan Wehr). Also, fix an off-by-one bug in |
| Textbox.gather(). |
| |
| - Issue #1831: ctypes now raises a TypeError if conflicting positional |
| and named arguments are passed to a Structure or Union initializer. |
| When too many positional arguments are passed, also a TypeError is |
| raised instead of a ValueError. |
| |
| - Convert the internal ctypes array type cache to a WeakValueDict so |
| that array types do not live longer than needed. |
| |
| - Issue #1786: pdb should use its own stdin/stdout around an exec call |
| and when creating a recursive instance. |
| |
| - Issue #1698398 Zipfile.printdir() crashed because the format string |
| expected a tuple type of length six instead of time.struct_time object. |
| |
| - Issue #1780: The Decimal constructor now accepts arbitrary leading |
| and trailing whitespace when constructing from a string. |
| Context.create_decimal no longer accepts trailing newlines. |
| |
| - Decimal.as_tuple(), difflib.find_longest_match() and inspect functions |
| that returned a tuple now return a named tuple. |
| |
| - Doctest now returns results as a named tuple for readability: |
| (0, 7) --> TestResults(failed=0, attempted=7) |
| |
| - Issue #846388. re.match is interruptible now, which is particularly |
| good for long regular expression matches. |
| |
| - pyexpat, patch #1137: allow setting buffer_size attribute |
| on Parser objects to set the character data buffer size. |
| |
| - Issue #1757: The hash of a Decimal instance is no longer affected by |
| the current context. |
| |
| - Patch #467924: add ZipFile.extract() and ZipFile.extractall() in the |
| zipfile module. |
| |
| - Issue #1646: Make socket support the TIPC protocol. |
| |
| - Bug #1742: return os.curdir from os.path.relpath() if both arguments are |
| equal instead of raising an exception. |
| |
| - Patch #1637: fix urlparse for URLs like 'http://x.com?arg=/foo'. |
| |
| - Patch #1698: allow '@' in username parsed by urlparse.py. |
| |
| - Issue #1735: TarFile.extractall() now correctly sets directory permissions |
| and times. |
| |
| - Bug #1713: posixpath.ismount() claims symlink to a mountpoint is a mountpoint. |
| |
| - Bug #1687: Fxed plistlib.py restricts <integer> to Python int when writing |
| |
| - Issue #1700: Regular expression inline flags incorrectly handle certain |
| unicode characters. |
| |
| - Issue #1689: PEP 3141, numeric abstract base classes. |
| |
| - Tk issue #1851526: Return results from Python callbacks to Tcl as |
| Tcl objects. |
| |
| - Issue #1642: Fix segfault in ctypes when trying to delete attributes. |
| |
| - Issue #1727780: Support loading pickles of random.Random objects created |
| on 32-bit systems on 64-bit systems, and vice versa. As a consequence |
| of the change, Random pickles created by Python 2.6 cannot be loaded |
| in Python 2.5. |
| |
| - Issue #1455: The distutils package now supports VS 2005 and VS 2008 for |
| both the msvccompiler and cygwincompiler. |
| |
| - Issue #1531: tarfile.py: Read fileobj from the current offset, do not |
| seek to the start. |
| |
| - Issue #1534: Added a dictionary sys.float_info with information about the |
| internal floating point type to the sys module. |
| |
| - Issue 1429818: patch for trace and doctest modules so they play nicely |
| together. |
| |
| - doctest made a bad assumption that a package's __loader__.get_data() |
| method used universal newlines. |
| |
| - Issue #1705170: contextlib.contextmanager was still swallowing |
| StopIteration in some cases. This should no longer happen. |
| |
| - Issue #1292: On alpha, arm, ppc, and s390 linux systems the |
| --with-system-ffi configure option defaults to "yes". |
| |
| - IN module for FreeBSD 8 is added and preexisting FreeBSD 6 and 7 |
| files are updated. |
| |
| - Issues #1181, #1287: unsetenv() is now called when the os.environ.pop() |
| and os.environ.clear() methods are used. |
| |
| - ctypes will now work correctly on 32-bit systems when Python is |
| configured with --with-system-ffi. |
| |
| - Patch #1203: ctypes now does work on OS X when Python is built with |
| --disable-toolbox-glue. |
| |
| - collections.deque() now supports a "maxlen" argument. |
| |
| - itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised |
| an OverflowError. Now, automatically shifts from ints to longs. |
| |
| - Patch #1541463: optimize performance of cgi.FieldStorage operations. |
| |
| - Decimal is fully updated to the latest Decimal Specification (v1.66). |
| |
| - Bug #1153: repr.repr() now doesn't require set and dictionary items |
| to be orderable to properly represent them. |
| |
| - A 'c_longdouble' type was added to the ctypes module. |
| |
| - Bug #1709599: Run test_1565150 only if the file system is NTFS. |
| |
| - When encountering a password-protected robots.txt file the RobotFileParser |
| no longer prompts interactively for a username and password (bug 813986). |
| |
| - TarFile.__init__() no longer fails if no name argument is passed and |
| the fileobj argument has no usable name attribute (e.g. StringIO). |
| |
| - The functools module now provides 'reduce', for forward compatibility |
| with Python 3000. |
| |
| - Server-side SSL support and cert verification added, by Bill Janssen. |
| |
| - socket.ssl deprecated; use new ssl module instead. |
| |
| - uuid creation is now threadsafe. |
| |
| - EUC-KR codec now handles the cheot-ga-keut composed make-up hangul |
| syllables. |
| |
| - GB18030 codec now can encode additional two-byte characters that |
| are missing in GBK. |
| |
| - Add new codecs for UTF-32, UTF-32-LE and UTF-32-BE. |
| |
| - Bug #1704793: Return UTF-16 pair if unicodedata.lookup cannot |
| represent the result in a single character. |
| |
| - Bug #978833: Close https sockets by releasing the _ssl object. |
| |
| - Change location of the package index to pypi.python.org/pypi |
| |
| - Bug #1701409: Fix a segfault in printing ctypes.c_char_p and |
| ctypes.c_wchar_p when they point to an invalid location. As a |
| sideeffect the representation of these instances has changed. |
| |
| - tarfile.py: Added "exclude" keyword argument to TarFile.add(). |
| |
| - Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple attribute. |
| |
| - The urlopen function of urllib2 now has an optional timeout parameter (note |
| that it actually works with HTTP, HTTPS, FTP and FTPS connections). |
| |
| - In ftplib, the FTP.ntransfercmd method, when in passive mode, now uses |
| the socket.create_connection function, using the timeout specified at |
| connection time. |
| |
| - Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it |
| reads a file that ends with incomplete sequence and sizehint argument |
| for .read() is specified. |
| |
| - Bug #1730389: Change time.strptime() to use ``\s+`` instead of ``\s*`` when |
| matching spaces in the specified format argument. |
| |
| - SF 1668596/1720897: distutils now copies data files |
| even if package_dir is empty. |
| |
| - sha now raises a DeprecationWarning upon import. |
| |
| - md5 now raises a DeprecationWarning upon import. |
| |
| - Issue1385: The hmac module now computes the correct hmac when using hashes |
| with a block size other than 64 bytes (such as sha384 and sha512). |
| |
| - mimify now raises a DeprecationWarning upon import. |
| |
| - MimeWriter now raises a DeprecationWarning upon import. |
| |
| - tarfile.py: Improved unicode support. Unicode input names are now |
| officially supported. Added "errors" argument to the TarFile class. |
| |
| - urllib.ftpwrapper class now accepts an optional timeout. |
| |
| - shlex.split() now has an optional "posix" parameter. |
| |
| - The posixfile module now raises a DeprecationWarning. |
| |
| - Remove the gopherlib module. This also leads to the removal of gopher |
| support in urllib/urllib2. |
| |
| - Fix bug in marshal where bad data would cause a segfault due to |
| lack of an infinite recursion check. |
| |
| - Removed plat-freebsd2 and plat-freebsd3 directories (and IN.py in |
| the directories). |
| |
| - HTML-escape the plain traceback in cgitb's HTML output, to prevent |
| the traceback inadvertently or maliciously closing the comment and |
| injecting HTML into the error page. |
| |
| - The popen2 module and os.popen* are deprecated. Use the subprocess module. |
| |
| - Added an optional credentials argument to SMTPHandler, for use with SMTP |
| servers which require authentication. |
| |
| - Patch #1695948: Added optional timeout parameter to SocketHandler. |
| |
| - Bug #1652788: Minor fix for currentframe. |
| |
| - Patch #1598415: Added WatchedFileHandler to better support external |
| log file rotation using e.g. newsyslog or logrotate. This handler is |
| only useful in Unix/Linux environments. |
| |
| - Bug #1706381: Specifying the SWIG option "-c++" in the setup.py file |
| (as opposed to the command line) will now write file names ending in |
| ".cpp" too. |
| |
| - As specified in RFC 2616, an HTTP response like 2xx indicates that |
| the client's request was successfully received, understood, and accepted. |
| Now in these cases no error is raised in urllib (issue #1177) and urllib2. |
| |
| - Bug #1290505: time.strptime's internal cache of locale information is now |
| properly recreated when the locale is changed. |
| |
| - Patch #1685563: remove (don't add) duplicate paths in distutils.MSVCCompiler. |
| |
| - Added a timeout parameter to the constructor of other protocols |
| (telnetlib, ftplib, smtplib and poplib). This is second part of the |
| work started with create_connection() and timeout in httplib, and |
| closes patch #723312. |
| |
| - Patch #1676823: Added create_connection() to socket.py, which may be |
| called with a timeout, and use it from httplib (whose HTTPConnection |
| and HTTPSConnection now accept an optional timeout). |
| |
| - Bug #978833: Revert r50844, as it broke _socketobject.dup. |
| |
| - Bug #1675967: re patterns pickled with Python 2.4 and earlier can |
| now be unpickled with Python 2.5 and newer. |
| |
| - Patch #1630118: add a SpooledTemporaryFile class to tempfile.py. |
| |
| - Patch #1273829: os.walk() now has a "followlinks" parameter. If set to |
| True (which is not the default), it visits symlinks pointing to |
| directories. |
| |
| - Bug #1681228: the webbrowser module now correctly uses the default |
| GNOME or KDE browser, depending on whether there is a session of one |
| of those present. Also, it tries the Windows default browser before |
| trying Mozilla variants. |
| |
| - Patch #1339796: add a relpath() function to os.path. |
| |
| - Patch #1681153: the wave module now closes a file object it opened if |
| initialization failed. |
| |
| - Bug #767111: fix long-standing bug in urllib which caused an |
| AttributeError instead of an IOError when the server's response didn't |
| contain a valid HTTP status line. |
| |
| - Patch #957650: "%var%" environment variable references are now properly |
| expanded in ntpath.expandvars(), also "~user" home directory references |
| are recognized and handled on Windows. |
| |
| - Patch #1429539: pdb now correctly initializes the __main__ module for |
| the debugged script, which means that imports from __main__ work |
| correctly now. |
| |
| - The nonobvious commands.getstatus() function is now deprecated. |
| |
| - Patch #1393667: pdb now has a "run" command which restarts the debugged |
| Python program, optionally with different arguments. |
| |
| - Patch #1649190: Adding support for _Bool to ctypes as c_bool. |
| |
| - Patch #1530482: add pydoc.render_doc() which returns the documentation |
| for a thing instead of paging it to stdout, which pydoc.doc() does. |
| |
| - Patch #1533909: the timeit module now accepts callables in addition to |
| strings for the code to time and the setup code. Also added two |
| convenience functions for instantiating a Timer and calling its methods. |
| |
| - Patch #1537850: tempfile.NamedTemporaryFile now has a "delete" parameter |
| which can be set to False to prevent the default delete-on-close |
| behavior. |
| |
| - Patch #1581073: add a flag to textwrap that prevents the dropping of |
| whitespace while wrapping. |
| |
| - Patch #1603688: ConfigParser.SafeConfigParser now checks values that |
| are set for invalid interpolation sequences that would lead to errors |
| on reading back those values. |
| |
| - Added support for the POSIX.1-2001 (pax) format to tarfile.py. Extended |
| and cleaned up the test suite. Added a new testtar.tar. |
| |
| - Patch #1449244: Support Unicode strings in |
| email.message.Message.{set_charset,get_content_charset}. |
| |
| - Patch #1542681: add entries for "with", "as" and "CONTEXTMANAGERS" to |
| pydoc's help keywords. |
| |
| - Patch #1555098: use str.join() instead of repeated string |
| concatenation in robotparser. |
| |
| - Patch #1635454: the csv.DictWriter class now includes the offending |
| field names in its exception message if you try to write a record with |
| a dictionary containing fields not in the CSV field names list. |
| |
| - Patch #1668100: urllib2 now correctly raises URLError instead of |
| OSError if accessing a local file via the file:// protocol fails. |
| |
| - Patch #1677862: Require a space or tab after import in .pth files. |
| |
| - Patch #1192590: Fix pdb's "ignore" and "condition" commands so they trap |
| the IndexError caused by passing in an invalid breakpoint number. |
| |
| - Patch #1599845: Add an option to disable the implicit calls to server_bind() |
| and server_activate() in the constructors for TCPServer, SimpleXMLRPCServer |
| and DocXMLRPCServer. |
| |
| - Bug #1531963: Make SocketServer.TCPServer's server_address always |
| be equal to calling getsockname() on the server's socket. Fixed by |
| patch #1545011. |
| |
| - Patch #742598: Add .timeout attribute to SocketServer that calls |
| .handle_timeout() when no requests are received. |
| |
| - Bug #1651235: When a tuple was passed to a ctypes function call, |
| Python would crash instead of raising an error. |
| |
| - Bug #1646630: ctypes.string_at(buf, 0) and ctypes.wstring_at(buf, 0) |
| returned string up to the first NUL character. |
| |
| - Patch #957003: Implement smtplib.LMTP. |
| |
| - Patch #1481079: add support for HTTP_REFERER to CGIHTTPServer. |
| |
| - Patch #1675424: Added tests for uncovered code in the zipfile module. |
| The KeyError raised by Zipfile.getinfo for nonexistent names now has |
| a descriptive message. |
| |
| - Bug #1115886: os.path.splitext('.cshrc') gives now ('.cshrc', ''). |
| |
| - unittest now verifies more of its assumptions. In particular, TestCase |
| and TestSuite subclasses (not instances) are no longer accepted in |
| TestSuite.addTest(). This should cause no incompatibility since it |
| never made sense with ordinary subclasses -- the failure just occurred |
| later, with a more cumbersome exception. |
| |
| - Patch #787789: allow to pass custom TestRunner instances to unittest's |
| main() function. |
| |
| - Patches #1550273, #1550272: fix a few bugs in unittest and add a |
| comprehensive test suite for the module. |
| |
| - Patch #1001604: glob.glob() now returns unicode filenames if it was |
| given a unicode argument and os.listdir() returns unicode filenames. |
| |
| - Patch #1673619: setup.py identifies extension modules it doesn't know how |
| to build and those it knows how to build but that fail to build. |
| |
| - Patch #912410: Replace HTML entity references for attribute values |
| in HTMLParser. |
| |
| - Patch #1663234: you can now run doctest on test files and modules |
| using "python -m doctest [-v] filename ...". |
| |
| - Patch #1121142: Implement ZipFile.open. |
| |
| - Taught setup.py how to locate Berkeley DB on Macs using MacPorts. |
| |
| - Added heapq.merge() for merging sorted input streams. |
| |
| - Added collections.namedtuple() for assigning field names to tuples. |
| |
| - Added itertools.izip_longest(). |
| |
| - Have the encoding package's search function dynamically import using absolute |
| import semantics. |
| |
| - Patch #1647484: Renamed GzipFile's filename attribute to name. |
| |
| - Patch #1517891: Mode 'a' for ZipFile now creates the file if it |
| doesn't exist. |
| |
| - Patch #698833: Support file decryption in zipfile. |
| |
| - Patch #685268: Consider a package's __path__ in imputil. |
| |
| - Patch 1463026: Support default namespace in XMLGenerator. |
| |
| - Patch 1571379: Make trace's --ignore-dir facility work in the face of |
| relative directory names. |
| |
| - Bug #1600860: Search for shared python library in LIBDIR, |
| not lib/python/config, on "linux" and "gnu" systems. |
| |
| - Patch #1652681: tarfile.py: create nonexistent files in append mode and |
| allow appending to empty files. |
| |
| - Bug #1124861: Automatically create pipes if GetStdHandle fails in |
| subprocess. |
| |
| - Patch #1634778: add missing encoding aliases for iso8859_15 and |
| iso8859_16. |
| |
| - Patch #1638243: the compiler package is now able to correctly compile |
| a with statement; previously, executing code containing a with statement |
| compiled by the compiler package crashed the interpreter. |
| |
| - Bug #1643943: Fix time.strptime's support for the %U directive. |
| |
| - Patch #1507247: tarfile.py: use current umask for intermediate |
| directories. |
| |
| - Patch #1627441: close sockets properly in urllib2. |
| |
| - Bug #494589: make ntpath.expandvars behave according to its docstring. |
| |
| - Changed platform module API python_version_tuple() to actually |
| return a tuple (it used to return a list). |
| |
| - Added new platform module APIs python_branch(), python_revision(), |
| python_implementation() and linux_distribution(). |
| |
| - Added support for IronPython and Jython to the platform module. |
| |
| - The sets module has been deprecated. Use the built-in set/frozenset types |
| instead. |
| |
| - Bug #1610795: make ctypes.util.find_library work on BSD systems. |
| |
| - Fixes for 64-bit Windows: In ctypes.wintypes, correct the |
| definitions of HANDLE, WPARAM, LPARAM data types. Make |
| parameterless foreign function calls work. |
| |
| - The version number of the ctypes package changed to "1.1.0". |
| |
| - Bug #1627575: logging: Added _open() method to FileHandler which can |
| be used to reopen files. The FileHandler instance now saves the |
| encoding (which can be None) in an attribute called "encoding". |
| |
| - Bug #411881: logging.handlers: bare except clause removed from |
| SMTPHandler.emit. Now, only ImportError is trapped. |
| |
| - Bug #411881: logging.handlers: bare except clause removed from |
| SocketHandler.createSocket. Now, only socket.error is trapped. |
| |
| - Bug #411881: logging: bare except clause removed from LogRecord.__init__. |
| Now, only ValueError, TypeError and AttributeError are trapped. |
| |
| - Patch #1504073: Fix tarfile.open() for mode "r" with a fileobj argument. |
| |
| - Patch #1182394 from Shane Holloway: speed up HMAC.hexdigest. |
| |
| - Patch #1262036: Prevent TarFiles from being added to themselves under |
| certain conditions. |
| |
| - Patch #1230446: tarfile.py: fix ExFileObject so that read() and tell() |
| work correctly together with readline(). |
| |
| - Patch #1484695: The tarfile module now raises a HeaderError exception |
| if a buffer given to frombuf() is invalid. |
| |
| - Bug #1503765: Fix a problem in logging.config with spaces in comma- |
| separated lists read from logging config files. |
| |
| - Patch #1604907: Fix problems in logging.handlers caused at logging shutdown |
| when syslog handlers fail to initialize because of syslogd problems. |
| |
| - Patch #1608267: fix a race condition in os.makedirs() if the directory |
| to be created is already there. |
| |
| - Patch #1610437: fix a tarfile bug with long filename headers. |
| |
| - Patch #1371075: Make ConfigParser accept optional dict type |
| for ordering, sorting, etc. |
| |
| - Bug #1563807: _ctypes built on AIX fails with ld ffi error. |
| |
| - Bug #1598620: A ctypes Structure cannot contain itself. |
| |
| - Patch #1070046: Marshal new-style objects like InstanceType |
| in xmlrpclib. |
| |
| - cStringIO.truncate(-1) now raises an IOError, like StringIO and |
| regular files. |
| |
| - Patch #1472877: Fix Tix subwidget name resolution. |
| |
| - Patch #1594554: Always close a tkSimpleDialog on ok(), even |
| if an exception occurs. |
| |
| - Patch #1538878: Don't make tkSimpleDialog dialogs transient if |
| the parent window is withdrawn. |
| |
| - Bug #1597824: return the registered function from atexit.register() |
| to facilitate usage as a decorator. |
| |
| - Patch #1360200: Use unmangled_version RPM spec field to deal with |
| file name mangling. |
| |
| - Patch #1359217: Process 2xx response in an ftplib transfer |
| that precedes an 1xx response. |
| |
| - Patch #1355023: support whence argument for GzipFile.seek. |
| |
| - Patch #1065257: Support passing open files as body in |
| HTTPConnection.request(). |
| |
| - Bug #1569790: mailbox.py: Maildir.get_folder() and MH.get_folder() |
| weren't passing the message factory on to newly created Maildir/MH |
| objects. |
| |
| - Patch #1514543: mailbox.py: In the Maildir class, report errors if there's |
| a filename clash instead of possibly losing a message. (Patch by David |
| Watson.) |
| |
| - Patch #1514544: Try to ensure that messages/indexes have been physically |
| written to disk after calling .flush() or .close(). (Patch by David |
| Watson.) |
| |
| - Patch #1592250: Add elidge argument to Tkinter.Text.search. |
| |
| - Patch #838546: Make terminal become controlling in pty.fork() |
| |
| - Patch #1351744: Add askyesnocancel helper for tkMessageBox. |
| |
| - Patch #1060577: Extract list of RPM files from spec file in |
| bdist_rpm |
| |
| - Bug #1586613: fix zlib and bz2 codecs' incremental en/decoders. |
| |
| - Patch #1583880: fix tarfile's problems with long names and posix/ |
| GNU modes. |
| |
| - Bug #1586448: the compiler module now emits the same bytecode for |
| list comprehensions as the builtin compiler, using the LIST_APPEND |
| opcode. |
| |
| - Fix codecs.EncodedFile which did not use file_encoding in 2.5.0, and |
| fix all codecs file wrappers to work correctly with the "with" |
| statement (bug #1586513). |
| |
| - Lib/modulefinder.py now handles absolute and relative imports |
| correctly. |
| |
| - Patch #1567274: Support SMTP over TLS. |
| |
| - Patch #1560695: Add .note.GNU-stack to ctypes' sysv.S so that |
| ctypes isn't considered as requiring executable stacks. |
| |
| - ctypes callback functions only support 'fundamental' data types as |
| result type. Raise an error when something else is used. This is a |
| partial fix for Bug #1574584. |
| |
| - Fix turtle so that time.sleep is imported for the entire library. Allows |
| the demo2 function to be executed on its own instead of only when the |
| module is run as a script. |
| |
| - Bug #813342: Start the IDLE subprocess with -Qnew if the parent |
| is started with that option. |
| |
| - Bug #1565150: Fix subsecond processing for os.utime on Windows. |
| |
| - Support for MSVC 8 was added to bdist_wininst. |
| |
| - Bug #1446043: correctly raise a LookupError if an encoding name given |
| to encodings.search_function() contains a dot. |
| |
| - Bug #1560617: in pyclbr, return full module name not only for classes, |
| but also for functions. |
| |
| - Bug #1457823: cgi.(Sv)FormContentDict's constructor now takes |
| keep_blank_values and strict_parsing keyword arguments. |
| |
| - Bug #1566602: correct failure of posixpath unittest when $HOME ends |
| with a slash. |
| |
| - Bug #1565661: in webbrowser, split() the command for the default |
| GNOME browser in case it is a command with args. |
| |
| - Made the error message for time.strptime when the data data and format do |
| match be more clear. |
| |
| - Fix a bug in traceback.format_exception_only() that led to an error |
| being raised when print_exc() was called without an exception set. |
| In version 2.4, this printed "None", restored that behavior. |
| |
| - Make webbrowser.BackgroundBrowser usable in Windows (it wasn't because |
| the close_fds arg to subprocess.Popen is not supported). |
| |
| - Reverted patch #1504333 to sgmllib because it introduced an infinite loop. |
| |
| - Patch #1553314: Fix the inspect.py slowdown that was hurting IPython & SAGE |
| by adding smarter caching in inspect.getmodule() |
| |
| - Fix missing import of the types module in logging.config. |
| |
| - Patch #1550886: Fix decimal module context management implementation |
| to match the localcontext() example from PEP 343. |
| |
| - Bug #1545341: The 'classifier' keyword argument to the Distutils setup() |
| function now accepts tuples as well as lists. |
| |
| - Bug #1541863: uuid.uuid1 failed to generate unique identifiers |
| on systems with low clock resolution. |
| |
| - Bug #1531862: Do not close standard file descriptors in subprocess. |
| |
| - idle: Honor the "Cancel" action in the save dialog (Debian bug #299092). |
| |
| - Fix utf-8-sig incremental decoder, which didn't recognise a BOM when the |
| first chunk fed to the decoder started with a BOM, but was longer than 3 bytes. |
| |
| - The implementation of UnicodeError objects has been simplified (start and end |
| attributes are now stored directly as Py_ssize_t members). |
| |
| - Issue829951: In the smtplib module, SMTP.starttls() now complies with |
| RFC 3207 and forgets any knowledge obtained from the server not obtained |
| from the TLS negotiation itself. Patch contributed by Bill Fenner. |
| |
| - Issue1339: The smtplib.SMTP class has been refactored a bit such |
| that the SMTP.starttls() caller no longer needs to call ehlo() |
| beforehand. SMTP.starttls() now raises an exception of the server |
| does not claim to support starttls. Adds the SMTP.ehlo_or_helo_if_needed() |
| method. Patch contributed by Bill Fenner. |
| |
| Extension Modules |
| ----------------- |
| |
| - Backport of _fileio module from Python 3.0. |
| |
| - #1087741: mmap.mmap is now a class, not a factory function. It is also |
| subclassable now. |
| |
| - Patch #1648: added ``sys.getprofile()`` and ``sys.gettrace()``. |
| |
| - Patch #1663329: added ``os.closerange()`` function to quickly close a range |
| of file descriptors without considering errors. |
| |
| - Patch 976880: ``mmap`` objects now have an ``rfind`` method that |
| works as expected. ``mmap.find`` also takes an optional ``end`` |
| parameter. |
| |
| - _winreg's HKEY object has gained __enter__ and __exit__ methods to support |
| the context manager protocol. The _winreg module also gained a new function |
| ``ExpandEnvironmentStrings`` to expand REG_EXPAND_SZ keys. |
| |
| - itertools.starmap() now accepts any iterable input. Previously, it required |
| the function inputs to be tuples. |
| |
| - Issue #1646: Make socket support TIPC. The socket module now has support |
| for TIPC under Linux, see http://tipc.sf.net/ for more information. |
| |
| - Added interface for Windows' WSAIoctl to socket object and added an example |
| for a simple network sniffer. |
| |
| - Bug #1301: Bad assert in _tkinter fixed. |
| |
| - Added bdist_wininst executable for VS 2008. |
| |
| - Bug #1604: collections.deque.__init__(iterable) now clears any prior contents |
| before adding elements from the iterable. This fix brings the behavior into |
| line with that for list.__init__(). |
| |
| - Added wide char functions to msvcrt module: getwch, getwche, putwch and |
| ungetwch. The functions accept or return unicode. |
| |
| - os.access now returns True on Windows for any existing directory. |
| |
| - Added warnpy3k function to the warnings module. |
| |
| - Marshal.dumps() now expects exact type matches for int, long, float, complex, |
| tuple, list, dict, set, and frozenset. Formerly, it would silently miscode |
| subclasses of those types. Now, it raises a ValueError instead. |
| |
| - Patch #1388440: Add set_completion_display_matches_hook and |
| get_completion_type to readline. |
| |
| - Bug #1649098: Avoid declaration of zero-sized array declaration in |
| structure. |
| |
| - Removed the rgbimg module; been deprecated since Python 2.5. |
| |
| - Bug #1721309: prevent bsddb module from freeing random memory. |
| |
| - Bug #1233: fix bsddb.dbshelve.DBShelf append method to work as |
| intended for RECNO databases. |
| |
| - pybsddb.sf.net Bug #477182: Load the database flags at database open |
| time so that opening a database previously created with the DB_DUP or |
| DB_DUPSORT flag set will keep the proper behavior on subsequent opens. |
| Specifically: dictionary assignment to a DB object will replace all |
| values for a given key when the database allows duplicate values. |
| DB users should use DB.put(k, v) when they want to store duplicates; not |
| DB[k] = v. |
| |
| - Add the bsddb.db.DBEnv.lock_id_free method. |
| |
| - Bug #1686475: Support stat'ing open files on Windows again. |
| |
| - Patch #1185447: binascii.b2a_qp() now correctly quotes binary characters |
| with ASCII value less than 32. Also, it correctly quotes dots only if |
| they occur on a single line, as opposed to the previous behavior of |
| quoting dots if they are the second character of any line. |
| |
| - Bug #1622896: fix a rare corner case where the bz2 module raised an |
| error in spite of a succesful compression. |
| |
| - Patch #1654417: make operator.{get,set,del}slice use the full range |
| of Py_ssize_t. |
| |
| - Patch #1646728: datetime.fromtimestamp fails with negative |
| fractional times. With unittest. |
| |
| - Patch #1490190: posixmodule now includes os.chflags() and os.lchflags() |
| functions on platforms where the underlying system calls are available. |
| |
| - Patch #1494140: Add documentation for the new struct.Struct object. |
| |
| - Patch #1432399: Support the HCI protocol for bluetooth sockets |
| |
| - Patch #1657276: Make NETLINK_DNRTMSG conditional. |
| |
| - Bug #1653736: Complain about keyword arguments to time.isoformat. |
| |
| - Bug #1486663: don't reject keyword arguments for subclasses of builtin |
| types. |
| |
| - Patch #1610575: The struct module now supports the 't' code, for |
| C99 _Bool. |
| |
| - Patch #1635058: ensure that htonl and friends never accept or |
| return negative numbers, per the underlying C implementation. |
| |
| - Patch #1544279: Improve thread-safety of the socket module by moving |
| the sock_addr_t storage out of the socket object. |
| |
| - Patch #1019808: fix bug that causes an incorrect error to be returned |
| when a socket timeout is set and a connection attempt fails. |
| |
| - Speed up function calls into the math module. |
| |
| - Bug #1588217: don't parse "= " as a soft line break in binascii's |
| a2b_qp() function, instead leave it in the string as quopri.decode() |
| does. |
| |
| - Bug #1599782: Fix segfault on bsddb.db.DB().type(). |
| |
| - Bug #1567666: Emulate GetFileAttributesExA for Win95. |
| |
| - Patch #1576166: Support os.utime for directories on Windows NT+. |
| |
| - Patch #1572724: fix typo ('=' instead of '==') in _msi.c. |
| |
| - Bug #1572832: fix a bug in ISO-2022 codecs which may cause segfault |
| when encoding non-BMP unicode characters. |
| |
| - Bug #1556784: allow format strings longer than 127 characters in |
| datetime's strftime function. |
| |
| - Fix itertools.count(n) to work with negative numbers again. |
| |
| - RLIMIT_SBSIZE was added to the resource module where available. |
| |
| - Bug #1551427: fix a wrong NULL pointer check in the win32 version |
| of os.urandom(). |
| |
| - Bug #1548092: fix curses.tparm seg fault on invalid input. |
| |
| - Patch #1114: fix curses module compilation on 64-bit AIX, & possibly |
| other 64-bit LP64 platforms where attr_t is not the same size as a long. |
| (Contributed by Luke Mewburn.) |
| |
| - Bug #1550714: fix SystemError from itertools.tee on negative value for n. |
| |
| - Fixed a few bugs on cjkcodecs: |
| - gbk and gb18030 codec now handle U+30FB KATAKANA MIDDLE DOT correctly. |
| - iso2022_jp_2 codec now encodes into G0 for KS X 1001, GB2312 |
| codepoints to conform the standard. |
| - iso2022_jp_3 and iso2022_jp_2004 codec can encode JIS X 0213:2 |
| codepoints now. |
| |
| - Bug #1552726: in readline.c, avoid repeatedly polling in interactive |
| mode by only placing a timeout on the select() if an input hook has |
| been defined. This prevents an interactive Python from waking up 10 |
| times per second. Patch by Richard Boulton. |
| |
| - fixed a bug with bsddb.DB.stat: the flags and txn keyword arguments |
| were transposed. |
| |
| - Added support for linking the bsddb module against BerkeleyDB 4.5.x |
| and 4.6.x. |
| |
| - Bug #1633621: if curses.resizeterm() or curses.resize_term() is called, |
| update _curses.LINES, _curses.COLS, curses.LINES and curses.COLS. |
| |
| - Fix an off-by-one bug in locale.strxfrm(). |
| |
| - Fix libffi configure for hppa*-*-linux* | parisc*-*-linux*. |
| |
| - Build using system ffi library on arm*-linux*. |
| |
| - Bug #1372: zlibmodule.c: int overflow in PyZlib_decompress |
| |
| Tests |
| ----- |
| |
| - Make test_runpy reentrant by fixing _check_module to clear out any module |
| being tested. Was causing an error by __import__ doing a reload on the |
| second run and thus suppressing bytecode recreation. |
| |
| - Capture socket connection resets and timeouts in test_socket_ssl and |
| test_urllib2net and raise test.test_support.ResourceDenied. |
| |
| - Patch #1559413: Fix test_cmd_line if sys.executable contains a space. |
| |
| - Added test.test_support.TransientResource which is a context manager to |
| surround calls to resources that are not guaranteed to work even if |
| test.test_support.requires says that the resource should exist. |
| |
| - Added a test for slicing of an exception. |
| |
| - Added test.test_support.EnvironmentVarGuard. It's a class that provides a |
| context manager so that one can temporarily set or unset environment |
| variables. |
| |
| - Added some tests for modulefinder. |
| |
| - Converted test_imp to use unittest. |
| |
| - Fix bsddb test_basics.test06_Transactions to check the version |
| number properly. |
| |
| - test.test_support.catch_warning is a new context manager that can be used |
| to catch the warnings issued by the warning framework. |
| |
| |
| Tools |
| ----- |
| |
| - Tools/scripts/win_add2path.py was added. The simple script modifes the |
| PATH environment var of the HKCU tree and adds the python bin and script |
| directory. |
| |
| - Tools/18n/pygettext.py was added to the list of scripts installed by |
| Tools/scripts/setup.py (tracker item 642309). |
| |
| - Added IronPython and Jython support to pybench (part of which |
| was patch #1563844) |
| |
| - Made some minor changes to pybench output to allow the user |
| to see which Python version is running pybench |
| |
| - Added support for the new platform module feature |
| platform.python_implementation(); this will now be saved |
| in the benchmark pickle |
| |
| Documentation |
| ------------- |
| |
| - RFE #1765140: Updated documentation on FileHandler and subclasses to |
| include new optional delay argument. |
| |
| - Bug #932563: Added section on getting contextual information into logging |
| output, and added documentation for the new LoggerAdapter class. |
| |
| - Bug #1295: Added information about caching of formatted exception |
| information in the LogRecord by Formatter.format(). |
| |
| - Bug #1637365: add subsection about "__name__ == __main__" to the |
| Python tutorial. |
| |
| - Patch #1698768: updated the "using Python on the Mac" intro. |
| |
| - Bug #1569057: Document that calling file.next() when the file is open for |
| writing is undefined. |
| |
| - Patch #1489771: the syntax rules in Python Reference Manual were |
| updated to reflect the current Python syntax. |
| |
| - Patch #1686451: Fix return type for |
| PySequence_{Count,Index,Fast_GET_SIZE}. |
| |
| - Patch #1679379: add documentation for fnmatch.translate(). |
| |
| - Bug #1629566: clarify the docs on the return values of parsedate() |
| and parsedate_tz() in email.utils and rfc822. |
| |
| - Patch #1671450: add a section about subclassing builtin types to the |
| "extending and embedding" tutorial. |
| |
| - Bug #1629125: fix wrong data type (int -> Py_ssize_t) in PyDict_Next |
| docs. |
| |
| - Bug #1565919: document set types in the Language Reference. |
| |
| - Bug #1546052: clarify that PyString_FromString(AndSize) copies the |
| string pointed to by its parameter. |
| |
| - Bug #1566663: remove obsolete example from datetime docs. |
| |
| - Bug #1541682: Fix example in the "Refcount details" API docs. |
| Additionally, remove a faulty example showing PySequence_SetItem applied |
| to a newly created list object and add notes that this isn't a good idea. |
| |
| |
| Tools/Demos |
| ----------- |
| |
| - Patch #1552024: add decorator support to unparse.py demo script. |
| |
| - Make auto-generated python.vim file list built-ins and exceptions in |
| alphatbetical order. Makes output more deterministic and easier to tell if |
| the file is stale or not. |
| |
| - Bug #1546372: Fixed small bugglet in pybench that caused a missing |
| file not to get reported properly. |
| |
| |
| Build |
| ----- |
| |
| - Issue #1726: Remove Python/atof.c from PCBuild/pythoncore.vcproj |
| |
| - Removed PCbuild8/ directory and added a new build directory for VS 2005 |
| based on the VS 2008 build directory to PC/VS8.0. The script |
| PCbuild/vs8to9.py was added to sync changes from PCbuild to PC/VS8.0. |
| |
| - Moved PCbuild/ directory for VS 2003 to PC/VS7.1 and renamed PCBuild9/ |
| directory to PCBuild/. |
| |
| - Bug #1699: Define _BSD_SOURCE only on OpenBSD. |
| |
| - Bug #1608: use -fwrapv when GCC supports it. This is important, |
| newer GCC versions may optimize away overflow buffer overflow checks |
| without this option! |
| |
| - Patch #1418: Make the AC_REPLACE_FUNCS object files actually work. |
| |
| - Add a FAST_LOOPS build option that speeds-up looping by trading away |
| periodic threadstate and signal checking in tight loops. By default, |
| this option is turned-off. It should only be enabled in debugged, |
| performance critical applications. |
| |
| - Patch #786737: Allow building in a tree of symlinks pointing to |
| a readonly source. |
| |
| - Bug #1737210: Change Manufacturer of Windows installer to PSF. |
| |
| - Bug #1746880: Correctly install DLLs into system32 folder on Win64. |
| |
| - Define _BSD_SOURCE, to get access to POSIX extensions on OpenBSD 4.1+. |
| |
| - Stop supporting AtheOS and cause a build error in configure for the platform. |
| |
| - Bug #1655392: don't add -L/usr/lib/pythonX.Y/config to the LDFLAGS |
| returned by python-config if Python was built with --enable-shared |
| because that prevented the shared library from being used. |
| |
| - Patch #1569798: fix a bug in distutils when building Python from a |
| directory within sys.exec_prefix. |
| |
| - Bug #1675511: Use -Kpic instead of -xcode=pic32 on Solaris/x86. |
| |
| - Disable _XOPEN_SOURCE on NetBSD 1.x. |
| |
| - configure now checks whether gcc supports the PyArg_ParseTuple format |
| attribute. |
| |
| - Bug #1578513: Cross compilation was broken by a change to configure. |
| Repair so that it's back to how it was in 2.4.3. |
| |
| - Patch #1576954: Update VC6 build directory; remove redundant |
| files in VC7. |
| |
| - Bug #1568842: Fix test for uintptr_t. |
| |
| - Patch #1540470, for OpenBSD 4.0. |
| |
| - Fix build failure on kfreebsd and on the hurd. |
| |
| - Fix the build of the library reference in info format. |
| |
| - Allow Emacs 22 for building the documentation in info format. |
| |
| - Makefile.pre.in(buildbottest): Run an optional script pybuildbot.identify |
| to include some information about the build environment. |
| |
| C API |
| ----- |
| |
| - Added a new API function ``PyImport_ImportModuleNoBlock``. |
| |
| - ``PyImport_Import`` and ``PyImport_ImportModule`` now always do absolute |
| imports. In earlier versions they might have used relative imports under |
| some conditions. |
| |
| - Issue #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE |
| and Py_REFCNT. |
| |
| - Added case insensitive comparison methods ``PyOS_stricmp(char*, char*)`` |
| and ``PyOS_strnicmp(char*, char*, Py_ssize_t)``. |
| |
| - Bug #1542693: remove semi-colon at end of PyImport_ImportModuleEx macro |
| so it can be used as an expression. |
| |
| |
| Windows |
| ------- |
| |
| - Conditionalize definition of _CRT_SECURE_NO_DEPRECATE |
| and _CRT_NONSTDC_NO_DEPRECATE. |
| |
| - Bug #1216: Restore support for Visual Studio 2002. |
| |
| |
| Mac |
| --- |
| |
| - cfmfile now raises a DeprecationWarning. |
| |
| - buildtools now raises a DeprecationWarning. |
| |
| - Removed the macfs module. It had been deprecated since Python 2.5. This |
| lead to the deprecation of macostools.touched() as it relied solely on macfs |
| and was a no-op under OS X. |
| |
| |
| What's New in Python 2.5 release candidate 1? |
| ============================================= |
| |
| *Release date: 17-AUG-2006* |
| |
| Core and builtins |
| ----------------- |
| |
| - Unicode objects will no longer raise an exception when being |
| compared equal or unequal to a string and a UnicodeDecodeError |
| exception occurs, e.g. as result of a decoding failure. |
| |
| Instead, the equal (==) and unequal (!=) comparison operators will |
| now issue a UnicodeWarning and interpret the two objects as |
| unequal. The UnicodeWarning can be filtered as desired using |
| the warning framework, e.g. silenced completely, turned into an |
| exception, logged, etc. |
| |
| Note that compare operators other than equal and unequal will still |
| raise UnicodeDecodeError exceptions as they've always done. |
| |
| - Fix segfault when doing string formatting on subclasses of long. |
| |
| - Fix bug related to __len__ functions using values > 2**32 on 64-bit machines |
| with new-style classes. |
| |
| - Fix bug related to __len__ functions returning negative values with |
| classic classes. |
| |
| - Patch #1538606, Fix __index__() clipping. There were some problems |
| discovered with the API and how integers that didn't fit into Py_ssize_t |
| were handled. This patch attempts to provide enough alternatives |
| to effectively use __index__. |
| |
| - Bug #1536021: __hash__ may now return long int; the final hash |
| value is obtained by invoking hash on the long int. |
| |
| - Bug #1536786: buffer comparison could emit a RuntimeWarning. |
| |
| - Bug #1535165: fixed a segfault in input() and raw_input() when |
| sys.stdin is closed. |
| |
| - On Windows, the PyErr_Warn function is now exported from |
| the Python dll again. |
| |
| - Bug #1191458: tracing over for loops now produces a line event |
| on each iteration. Fixing this problem required changing the .pyc |
| magic number. This means that .pyc files generated before 2.5c1 |
| will be regenerated. |
| |
| - Bug #1333982: string/number constants were inappropriately stored |
| in the byte code and co_consts even if they were not used, ie |
| immediately popped off the stack. |
| |
| - Fixed a reference-counting problem in property(). |
| |
| |
| Library |
| ------- |
| |
| - Fix a bug in the ``compiler`` package that caused invalid code to be |
| generated for generator expressions. |
| |
| - The distutils version has been changed to 2.5.0. The change to |
| keep it programmatically in sync with the Python version running |
| the code (introduced in 2.5b3) has been reverted. It will continue |
| to be maintained manually as static string literal. |
| |
| - If the Python part of a ctypes callback function returns None, |
| and this cannot be converted to the required C type, an exception is |
| printed with PyErr_WriteUnraisable. Before this change, the C |
| callback returned arbitrary values to the calling code. |
| |
| - The __repr__ method of a NULL ctypes.py_object() no longer raises |
| an exception. |
| |
| - uuid.UUID now has a bytes_le attribute. This returns the UUID in |
| little-endian byte order for Windows. In addition, uuid.py gained some |
| workarounds for clocks with low resolution, to stop the code yielding |
| duplicate UUIDs. |
| |
| - Patch #1540892: site.py Quitter() class attempts to close sys.stdin |
| before raising SystemExit, allowing IDLE to honor quit() and exit(). |
| |
| - Bug #1224621: make tabnanny recognize IndentationErrors raised by tokenize. |
| |
| - Patch #1536071: trace.py should now find the full module name of a |
| file correctly even on Windows. |
| |
| - logging's atexit hook now runs even if the rest of the module has |
| already been cleaned up. |
| |
| - Bug #1112549, fix DoS attack on cgi.FieldStorage. |
| |
| - Bug #1531405, format_exception no longer raises an exception if |
| str(exception) raised an exception. |
| |
| - Fix a bug in the ``compiler`` package that caused invalid code to be |
| generated for nested functions. |
| |
| |
| Extension Modules |
| ----------------- |
| |
| - Patch #1511317: don't crash on invalid hostname (alias) info. |
| |
| - Patch #1535500: fix segfault in BZ2File.writelines and make sure it |
| raises the correct exceptions. |
| |
| - Patch # 1536908: enable building ctypes on OpenBSD/AMD64. The |
| '-no-stack-protector' compiler flag for OpenBSD has been removed. |
| |
| - Patch #1532975 was applied, which fixes Bug #1533481: ctypes now |
| uses the _as_parameter_ attribute when objects are passed to foreign |
| function calls. The ctypes version number was changed to 1.0.1. |
| |
| - Bug #1530559, struct.pack raises TypeError where it used to convert. |
| Passing float arguments to struct.pack when integers are expected |
| now triggers a DeprecationWarning. |
| |
| |
| Tests |
| ----- |
| |
| - test_socketserver should now work on cygwin and not fail sporadically |
| on other platforms. |
| |
| - test_mailbox should now work on cygwin versions 2006-08-10 and later. |
| |
| - Bug #1535182: really test the xreadlines() method of bz2 objects. |
| |
| - test_threading now skips testing alternate thread stack sizes on |
| platforms that don't support changing thread stack size. |
| |
| |
| Documentation |
| ------------- |
| |
| - Patch #1534922: unittest docs were corrected and enhanced. |
| |
| |
| Build |
| ----- |
| |
| - Bug #1535502, build _hashlib on Windows, and use masm assembler |
| code in OpenSSL. |
| |
| - Bug #1534738, win32 debug version of _msi should be _msi_d.pyd. |
| |
| - Bug #1530448, ctypes build failure on Solaris 10 was fixed. |
| |
| |
| C API |
| ----- |
| |
| - New API for Unicode rich comparisons: PyUnicode_RichCompare() |
| |
| - Bug #1069160. Internal correctness changes were made to |
| ``PyThreadState_SetAsyncExc()``. A test case was added, and |
| the documentation was changed to state that the return value |
| is always 1 (normal) or 0 (if the specified thread wasn't found). |
| |
| |
| What's New in Python 2.5 beta 3? |
| ================================ |
| |
| *Release date: 03-AUG-2006* |
| |
| Core and builtins |
| ----------------- |
| |
| - _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t; it previously |
| returned a long (see PEP 353). |
| |
| - Bug #1515471: string.replace() accepts character buffers again. |
| |
| - Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn(). |
| This provides the proper warning for struct.pack(). |
| PyErr_Warn() is now deprecated in favor of PyErr_WarnEx(). |
| |
| - Patch #1531113: Fix augmented assignment with yield expressions. |
| Also fix a SystemError when trying to assign to yield expressions. |
| |
| - Bug #1529871: The speed enhancement patch #921466 broke Python's compliance |
| with PEP 302. This was fixed by adding an ``imp.NullImporter`` type that is |
| used in ``sys.path_importer_cache`` to cache non-directory paths and avoid |
| excessive filesystem operations during imports. |
| |
| - Bug #1521947: When checking for overflow, ``PyOS_strtol()`` used some |
| operations on signed longs that are formally undefined by C. |
| Unfortunately, at least one compiler now cares about that, so complicated |
| the code to make that compiler happy again. |
| |
| - Bug #1524310: Properly report errors from FindNextFile in os.listdir. |
| |
| - Patch #1232023: Stop including current directory in search |
| path on Windows. |
| |
| - Fix some potential crashes found with failmalloc. |
| |
| - Fix warnings reported by Klocwork's static analysis tool. |
| |
| - Bug #1512814, Fix incorrect lineno's when code within a function |
| had more than 255 blank lines. |
| |
| - Patch #1521179: Python now accepts the standard options ``--help`` and |
| ``--version`` as well as ``/?`` on Windows. |
| |
| - Bug #1520864: unpacking singleton tuples in a 'for' loop (for x, in) works |
| again. Fixing this problem required changing the .pyc magic number. |
| This means that .pyc files generated before 2.5b3 will be regenerated. |
| |
| - Bug #1524317: Compiling Python ``--without-threads`` failed. |
| The Python core compiles again, and, in a build without threads, the |
| new ``sys._current_frames()`` returns a dictionary with one entry, |
| mapping the faux "thread id" 0 to the current frame. |
| |
| - Bug #1525447: build on MacOS X on a case-sensitive filesystem. |
| |
| |
| Library |
| ------- |
| |
| - Fix #1693149. Now you can pass several modules separated by |
| comma to trace.py in the same --ignore-module option. |
| |
| - Correction of patch #1455898: In the mbcs decoder, set final=False |
| for stream decoder, but final=True for the decode function. |
| |
| - os.urandom no longer masks unrelated exceptions like SystemExit or |
| KeyboardInterrupt. |
| |
| - Bug #1525866: Don't copy directory stat times in |
| shutil.copytree on Windows |
| |
| - Bug #1002398: The documentation for os.path.sameopenfile now correctly |
| refers to file descriptors, not file objects. |
| |
| - The renaming of the xml package to xmlcore, and the import hackery done |
| to make it appear at both names, has been removed. Bug #1511497, |
| #1513611, and probably others. |
| |
| - Bug #1441397: The compiler module now recognizes module and function |
| docstrings correctly as it did in Python 2.4. |
| |
| - Bug #1529297: The rewrite of doctest for Python 2.4 unintentionally |
| lost that tests are sorted by name before being run. This rarely |
| matters for well-written tests, but can create baffling symptoms if |
| side effects from one test to the next affect outcomes. ``DocTestFinder`` |
| has been changed to sort the list of tests it returns. |
| |
| - The distutils version has been changed to 2.5.0, and is now kept |
| in sync with sys.version_info[:3]. |
| |
| - Bug #978833: Really close underlying socket in _socketobject.close. |
| |
| - Bug #1459963: urllib and urllib2 now normalize HTTP header names with |
| title(). |
| |
| - Patch #1525766: In pkgutil.walk_packages, correctly pass the onerror callback |
| to recursive calls and call it with the failing package name. |
| |
| - Bug #1525817: Don't truncate short lines in IDLE's tool tips. |
| |
| - Patch #1515343: Fix printing of deprecated string exceptions with a |
| value in the traceback module. |
| |
| - Resync optparse with Optik 1.5.3: minor tweaks for/to tests. |
| |
| - Patch #1524429: Use repr() instead of backticks in Tkinter again. |
| |
| - Bug #1520914: Change time.strftime() to accept a zero for any position in its |
| argument tuple. For arguments where zero is illegal, the value is forced to |
| the minimum value that is correct. This is to support an undocumented but |
| common way people used to fill in inconsequential information in the time |
| tuple pre-2.4. |
| |
| - Patch #1220874: Update the binhex module for Mach-O. |
| |
| - The email package has improved RFC 2231 support, specifically for |
| recognizing the difference between encoded (name*0*=<blah>) and non-encoded |
| (name*0=<blah>) parameter continuations. This may change the types of |
| values returned from email.message.Message.get_param() and friends. |
| Specifically in some cases where non-encoded continuations were used, |
| get_param() used to return a 3-tuple of (None, None, string) whereas now it |
| will just return the string (since non-encoded continuations don't have |
| charset and language parts). |
| |
| Also, whereas % values were decoded in all parameter continuations, they are |
| now only decoded in encoded parameter parts. |
| |
| - Bug #1517990: IDLE keybindings on MacOS X now work correctly |
| |
| - Bug #1517996: IDLE now longer shows the default Tk menu when a |
| path browser, class browser or debugger is the frontmost window on MacOS X |
| |
| - Patch #1520294: Support for getset and member descriptors in types.py, |
| inspect.py, and pydoc.py. Specifically, this allows for querying the type |
| of an object against these built-in types and more importantly, for getting |
| their docstrings printed in the interactive interpreter's help() function. |
| |
| |
| Extension Modules |
| ----------------- |
| |
| - Patch #1519025 and bug #926423: If a KeyboardInterrupt occurs during |
| a socket operation on a socket with a timeout, the exception will be |
| caught correctly. Previously, the exception was not caught. |
| |
| - Patch #1529514: The _ctypes extension is now compiled on more |
| openbsd target platforms. |
| |
| - The ``__reduce__()`` method of the new ``collections.defaultdict`` had |
| a memory leak, affecting pickles and deep copies. |
| |
| - Bug #1471938: Fix curses module build problem on Solaris 8; patch by |
| Paul Eggert. |
| |
| - Patch #1448199: Release interpreter lock in _winreg.ConnectRegistry. |
| |
| - Patch #1521817: Index range checking on ctypes arrays containing |
| exactly one element enabled again. This allows iterating over these |
| arrays, without the need to check the array size before. |
| |
| - Bug #1521375: When the code in ctypes.util.find_library was |
| run with root privileges, it could overwrite or delete |
| /dev/null in certain cases; this is now fixed. |
| |
| - Bug #1467450: On Mac OS X 10.3, RTLD_GLOBAL is now used as the |
| default mode for loading shared libraries in ctypes. |
| |
| - Because of a misspelled preprocessor symbol, ctypes was always |
| compiled without thread support; this is now fixed. |
| |
| - pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename |
| methods now allow their database parameter to be None as the |
| sleepycat API allows. |
| |
| - Bug #1526460: Fix socketmodule compile on NetBSD as it has a different |
| bluetooth API compared with Linux and FreeBSD. |
| |
| Tests |
| ----- |
| |
| - Bug #1501330: Change test_ossaudiodev to be much more tolerant in terms of |
| how long the test file should take to play. Now accepts taking 2.93 secs |
| (exact time) +/- 10% instead of the hard-coded 3.1 sec. |
| |
| - Patch #1529686: The standard tests ``test_defaultdict``, ``test_iterlen``, |
| ``test_uuid`` and ``test_email_codecs`` didn't actually run any tests when |
| run via ``regrtest.py``. Now they do. |
| |
| Build |
| ----- |
| |
| - Bug #1439538: Drop usage of test -e in configure as it is not portable. |
| |
| Mac |
| --- |
| |
| - PythonLauncher now works correctly when the path to the script contains |
| characters that are treated specially by the shell (such as quotes). |
| |
| - Bug #1527397: PythonLauncher now launches scripts with the working directory |
| set to the directory that contains the script instead of the user home |
| directory. That latter was an implementation accident and not what users |
| expect. |
| |
| |
| What's New in Python 2.5 beta 2? |
| ================================ |
| |
| *Release date: 11-JUL-2006* |
| |
| Core and builtins |
| ----------------- |
| |
| - Bug #1441486: The literal representation of -(sys.maxint - 1) |
| again evaluates to a int object, not a long. |
| |
| - Bug #1501934: The scope of global variables that are locally assigned |
| using augmented assignment is now correctly determined. |
| |
| - Bug #927248: Recursive method-wrapper objects can now safely |
| be released. |
| |
| - Bug #1417699: Reject locale-specific decimal point in float() |
| and atof(). |
| |
| - Bug #1511381: codec_getstreamcodec() in codec.c is corrected to |
| omit a default "error" argument for NULL pointer. This allows |
| the parser to take a codec from cjkcodecs again. |
| |
| - Bug #1519018: 'as' is now validated properly in import statements. |
| |
| - On 64 bit systems, int literals that use less than 64 bits are |
| now ints rather than longs. |
| |
| - Bug #1512814, Fix incorrect lineno's when code at module scope |
| started after line 256. |
| |
| - New function ``sys._current_frames()`` returns a dict mapping thread |
| id to topmost thread stack frame. This is for expert use, and is |
| especially useful for debugging application deadlocks. The functionality |
| was previously available in Fazal Majid's ``threadframe`` extension |
| module, but it wasn't possible to do this in a wholly threadsafe way from |
| an extension. |
| |
| Library |
| ------- |
| |
| - Bug #1257728: Mention Cygwin in distutils error message about a missing |
| VS 2003. |
| |
| - Patch #1519566: Update turtle demo, make begin_fill idempotent. |
| |
| - Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK |
| environment variable to be set in order to the SDK environment |
| for finding the compiler, include files, etc. |
| |
| - Bug #1515998: Properly generate logical ids for files in bdist_msi. |
| |
| - warnings.py now ignores ImportWarning by default |
| |
| - string.Template() now correctly handles tuple-values. Previously, |
| multi-value tuples would raise an exception and single-value tuples would |
| be treated as the value they contain, instead. |
| |
| - Bug #822974: Honor timeout in telnetlib.{expect,read_until} |
| even if some data are received. |
| |
| - Bug #1267547: Put proper recursive setup.py call into the |
| spec file generated by bdist_rpm. |
| |
| - Bug #1514693: Update turtle's heading when switching between |
| degrees and radians. |
| |
| - Reimplement turtle.circle using a polyline, to allow correct |
| filling of arcs. |
| |
| - Bug #1514703: Only setup canvas window in turtle when the canvas |
| is created. |
| |
| - Bug #1513223: .close() of a _socketobj now releases the underlying |
| socket again, which then gets closed as it becomes unreferenced. |
| |
| - Bug #1504333: Make sgmllib support angle brackets in quoted |
| attribute values. |
| |
| - Bug #853506: Fix IPv6 address parsing in unquoted attributes in |
| sgmllib ('[' and ']' were not accepted). |
| |
| - Fix a bug in the turtle module's end_fill function. |
| |
| - Bug #1510580: The 'warnings' module improperly required that a Warning |
| category be either a types.ClassType and a subclass of Warning. The proper |
| check is just that it is a subclass with Warning as the documentation states. |
| |
| - The compiler module now correctly compiles the new try-except-finally |
| statement (bug #1509132). |
| |
| - The wsgiref package is now installed properly on Unix. |
| |
| - A bug was fixed in logging.config.fileConfig() which caused a crash on |
| shutdown when fileConfig() was called multiple times. |
| |
| - The sqlite3 module did cut off data from the SQLite database at the first |
| null character before sending it to a custom converter. This has been fixed |
| now. |
| |
| Extension Modules |
| ----------------- |
| |
| - #1494314: Fix a regression with high-numbered sockets in 2.4.3. This |
| means that select() on sockets > FD_SETSIZE (typically 1024) work again. |
| The patch makes sockets use poll() internally where available. |
| |
| - Assigning None to pointer type fields in ctypes structures possible |
| overwrote the wrong fields, this is fixed now. |
| |
| - Fixed a segfault in _ctypes when ctypes.wintypes were imported |
| on non-Windows platforms. |
| |
| - Bug #1518190: The ctypes.c_void_p constructor now accepts any |
| integer or long, without range checking. |
| |
| - Patch #1517790: It is now possible to use custom objects in the ctypes |
| foreign function argtypes sequence as long as they provide a from_param |
| method, no longer is it required that the object is a ctypes type. |
| |
| - The '_ctypes' extension module now works when Python is configured |
| with the --without-threads option. |
| |
| - Bug #1513646: os.access on Windows now correctly determines write |
| access, again. |
| |
| - Bug #1512695: cPickle.loads could crash if it was interrupted with |
| a KeyboardInterrupt. |
| |
| - Bug #1296433: parsing XML with a non-default encoding and |
| a CharacterDataHandler could crash the interpreter in pyexpat. |
| |
| - Patch #1516912: improve Modules support for OpenVMS. |
| |
| Build |
| ----- |
| |
| - Automate Windows build process for the Win64 SSL module. |
| |
| - 'configure' now detects the zlib library the same way as distutils. |
| Previously, the slight difference could cause compilation errors of the |
| 'zlib' module on systems with more than one version of zlib. |
| |
| - The MSI compileall step was fixed to also support a TARGETDIR |
| with spaces in it. |
| |
| - Bug #1517388: sqlite3.dll is now installed on Windows independent |
| of Tcl/Tk. |
| |
| - Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old |
| trying to be installed even though it's empty. |
| |
| Tests |
| ----- |
| |
| - Call os.waitpid() at the end of tests that spawn child processes in order |
| to minimize resources (zombies). |
| |
| Documentation |
| ------------- |
| |
| - Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the |
| documentation for the warnings module. |
| |
| - Patch #1509163: MS Toolkit Compiler no longer available. |
| |
| - Patch #1504046: Add documentation for xml.etree. |
| |
| |
| What's New in Python 2.5 beta 1? |
| ================================ |
| |
| *Release date: 20-JUN-2006* |
| |
| Core and builtins |
| ----------------- |
| |
| - Patch #1507676: Error messages returned by invalid abstract object operations |
| (such as iterating over an integer) have been improved and now include the |
| type of the offending object to help with debugging. |
| |
| - Bug #992017: A classic class that defined a __coerce__() method that returned |
| its arguments swapped would infinitely recurse and segfault the interpreter. |
| |
| - Fix the socket tests so they can be run concurrently. |
| |
| - Removed 5 integers from C frame objects (PyFrameObject). |
| f_nlocals, f_ncells, f_nfreevars, f_stack_size, f_restricted. |
| |
| - Bug #532646: object.__call__() will continue looking for the __call__ |
| attribute on objects until one without one is found. This leads to recursion |
| when you take a class and set its __call__ attribute to an instance of the |
| class. Originally fixed for classic classes, but this fix is for new-style. |
| Removes the infinite_rec_3 crasher. |
| |
| - The string and unicode methods startswith() and endswith() now accept |
| a tuple of prefixes/suffixes to look for. Implements RFE #1491485. |
| |
| - Buffer objects, at the C level, never used the char buffer |
| implementation even when the char buffer for the wrapped object was |
| explicitly requested (originally returned the read or write buffer). |
| Now a TypeError is raised if the char buffer is not present but is |
| requested. |
| |
| - Patch #1346214: Statements like "if 0: suite" are now again optimized |
| away like they were in Python 2.4. |
| |
| - Builtin exceptions are now full-blown new-style classes instead of |
| instances pretending to be classes, which speeds up exception handling |
| by about 80% in comparison to 2.5a2. |
| |
| - Patch #1494554: Update unicodedata.numeric and unicode.isnumeric to |
| Unicode 4.1. |
| |
| - Patch #921466: sys.path_importer_cache is now used to cache valid and |
| invalid file paths for the built-in import machinery which leads to |
| fewer open calls on startup. |
| |
| - Patch #1442927: ``long(str, base)`` is now up to 6x faster for non-power- |
| of-2 bases. The largest speedup is for inputs with about 1000 decimal |
| digits. Conversion from non-power-of-2 bases remains quadratic-time in |
| the number of input digits (it was and remains linear-time for bases |
| 2, 4, 8, 16 and 32). |
| |
| - Bug #1334662: ``int(string, base)`` could deliver a wrong answer |
| when ``base`` was not 2, 4, 8, 10, 16 or 32, and ``string`` represented |
| an integer close to ``sys.maxint``. This was repaired by patch |
| #1335972, which also gives a nice speedup. |
| |
| - Patch #1337051: reduced size of frame objects. |
| |
| - PyErr_NewException now accepts a tuple of base classes as its |
| "base" parameter. |
| |
| - Patch #876206: function call speedup by retaining allocated frame |
| objects. |
| |
| - Bug #1462152: file() now checks more thoroughly for invalid mode |
| strings and removes a possible "U" before passing the mode to the |
| C library function. |
| |
| - Patch #1488312, Fix memory alignment problem on SPARC in unicode |
| |
| - Bug #1487966: Fix SystemError with conditional expression in assignment |
| |
| - WindowsError now has two error code attributes: errno, which carries |
| the error values from errno.h, and winerror, which carries the error |
| values from winerror.h. Previous versions put the winerror.h values |
| (from GetLastError()) into the errno attribute. |
| |
| - Patch #1475845: Raise IndentationError for unexpected indent. |
| |
| - Patch #1479181: split open() and file() from being aliases for each other. |
| |
| - Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()`` |
| methods were always silently ignored by dictionaries when comparing keys. |
| They are now passed through (except when using the C API function |
| ``PyDict_GetItem()``, whose semantics did not change). |
| |
| - Bug #1456209: In some obscure cases it was possible for a class with a |
| custom ``__eq__()`` method to confuse dict internals when class instances |
| were used as a dict's keys and the ``__eq__()`` method mutated the dict. |
| No, you don't have any code that did this ;-) |
| |
| Extension Modules |
| ----------------- |
| |
| - Bug #1295808: expat symbols should be namespaced in pyexpat |
| |
| - Patch #1462338: Upgrade pyexpat to expat 2.0.0 |
| |
| - Change binascii.hexlify to accept a read-only buffer instead of only a char |
| buffer and actually follow its documentation. |
| |
| - Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder. |
| |
| - Patch #1478788 (modified version): The functional extension module has |
| been renamed to _functools and a functools Python wrapper module added. |
| This provides a home for additional function related utilities that are |
| not specifically about functional programming. See PEP 309. |
| |
| - Patch #1493701: performance enhancements for struct module. |
| |
| - Patch #1490224: time.altzone is now set correctly on Cygwin. |
| |
| - Patch #1435422: zlib's compress and decompress objects now have a |
| copy() method. |
| |
| - Patch #1454481: thread stack size is now tunable at runtime for thread |
| enabled builds on Windows and systems with Posix threads support. |
| |
| - On Win32, os.listdir now supports arbitrarily-long Unicode path names |
| (up to the system limit of 32K characters). |
| |
| - Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,utime}. |
| As a result, these functions now raise WindowsError instead of OSError. |
| |
| - ``time.clock()`` on Win64 should use the high-performance Windows |
| ``QueryPerformanceCounter()`` now (as was already the case on 32-bit |
| Windows platforms). |
| |
| - Calling Tk_Init twice is refused if the first call failed as that |
| may deadlock. |
| |
| - bsddb: added the DB_ARCH_REMOVE flag and fixed db.DBEnv.log_archive() to |
| accept it without potentially using an uninitialized pointer. |
| |
| - bsddb: added support for the DBEnv.log_stat() and DBEnv.lsn_reset() methods |
| assuming BerkeleyDB >= 4.0 and 4.4 respectively. [pybsddb project SF |
| patch numbers 1494885 and 1494902] |
| |
| - bsddb: added an interface for the BerkeleyDB >= 4.3 DBSequence class. |
| [pybsddb project SF patch number 1466734] |
| |
| - bsddb: fix DBCursor.pget() bug with keyword argument names when no data |
| parameter is supplied. [SF pybsddb bug #1477863] |
| |
| - bsddb: the __len__ method of a DB object has been fixed to return correct |
| results. It could previously incorrectly return 0 in some cases. |
| Fixes SF bug 1493322 (pybsddb bug 1184012). |
| |
| - bsddb: the bsddb.dbtables Modify method now raises the proper error and |
| aborts the db transaction safely when a modifier callback fails. |
| Fixes SF python patch/bug #1408584. |
| |
| - bsddb: multithreaded DB access using the simple bsddb module interface |
| now works reliably. It has been updated to use automatic BerkeleyDB |
| deadlock detection and the bsddb.dbutils.DeadlockWrap wrapper to retry |
| database calls that would previously deadlock. [SF python bug #775414] |
| |
| - Patch #1446489: add support for the ZIP64 extensions to zipfile. |
| |
| - Patch #1506645: add Python wrappers for the curses functions |
| is_term_resized, resize_term and resizeterm. |
| |
| Library |
| ------- |
| |
| - Patch #815924: Restore ability to pass type= and icon= in tkMessageBox |
| functions. |
| |
| - Patch #812986: Update turtle output even if not tracing. |
| |
| - Patch #1494750: Destroy master after deleting children in |
| Tkinter.BaseWidget. |
| |
| - Patch #1096231: Add ``default`` argument to Tkinter.Wm.wm_iconbitmap. |
| |
| - Patch #763580: Add name and value arguments to Tkinter variable |
| classes. |
| |
| - Bug #1117556: SimpleHTTPServer now tries to find and use the system's |
| mime.types file for determining MIME types. |
| |
| - Bug #1339007: Shelf objects now don't raise an exception in their |
| __del__ method when initialization failed. |
| |
| - Patch #1455898: The MBCS codec now supports the incremental mode for |
| double-byte encodings. |
| |
| - ``difflib``'s ``SequenceMatcher.get_matching_blocks()`` was changed to |
| guarantee that adjacent triples in the return list always describe |
| non-adjacent blocks. Previously, a pair of matching blocks could end |
| up being described by multiple adjacent triples that formed a partition |
| of the matching pair. |
| |
| - Bug #1498146: fix optparse to handle Unicode strings in option help, |
| description, and epilog. |
| |
| - Bug #1366250: minor optparse documentation error. |
| |
| - Bug #1361643: fix textwrap.dedent() so it handles tabs appropriately; |
| clarify docs. |
| |
| - The wsgiref package has been added to the standard library. |
| |
| - The functions update_wrapper() and wraps() have been added to the functools |
| module. These make it easier to copy relevant metadata from the original |
| function when writing wrapper functions. |
| |
| - The optional ``isprivate`` argument to ``doctest.testmod()``, and the |
| ``doctest.is_private()`` function, both deprecated in 2.4, were removed. |
| |
| - Patch #1359618: Speed up charmap encoder by using a trie structure |
| for lookup. |
| |
| - The functions in the ``pprint`` module now sort dictionaries by key |
| before computing the display. Before 2.5, ``pprint`` sorted a dictionary |
| if and only if its display required more than one line, although that |
| wasn't documented. The new behavior increases predictability; e.g., |
| using ``pprint.pprint(a_dict)`` in a doctest is now reliable. |
| |
| - Patch #1497027: try HTTP digest auth before basic auth in urllib2 |
| (thanks for J. J. Lee). |
| |
| - Patch #1496206: improve urllib2 handling of passwords with respect to |
| default HTTP and HTTPS ports. |
| |
| - Patch #1080727: add "encoding" parameter to doctest.DocFileSuite. |
| |
| - Patch #1281707: speed up gzip.readline. |
| |
| - Patch #1180296: Two new functions were added to the locale module: |
| format_string() to get the effect of "format % items" but locale-aware, |
| and currency() to format a monetary number with currency sign. |
| |
| - Patch #1486962: Several bugs in the turtle Tk demo module were fixed |
| and several features added, such as speed and geometry control. |
| |
| - Patch #1488881: add support for external file objects in bz2 compressed |
| tarfiles. |
| |
| - Patch #721464: pdb.Pdb instances can now be given explicit stdin and |
| stdout arguments, making it possible to redirect input and output |
| for remote debugging. |
| |
| - Patch #1484695: Update the tarfile module to version 0.8. This fixes |
| a couple of issues, notably handling of long file names using the |
| GNU LONGNAME extension. |
| |
| - Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a |
| new flag when ``name`` is already the name of an option flag. |
| |
| - Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler |
| package. |
| |
| - Patch #1472854: make the rlcompleter.Completer class usable on non- |
| UNIX platforms. |
| |
| - Patch #1470846: fix urllib2 ProxyBasicAuthHandler. |
| |
| - Bug #1472827: correctly escape newlines and tabs in attribute values in |
| the saxutils.XMLGenerator class. |
| |
| |
| Build |
| ----- |
| |
| - Bug #1502728: Correctly link against librt library on HP-UX. |
| |
| - OpenBSD 3.9 is supported now. |
| |
| - Patch #1492356: Port to Windows CE. |
| |
| - Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64. |
| |
| - Patch #1471883: Add --enable-universalsdk. |
| |
| C API |
| ----- |
| |
| Tests |
| ----- |
| |
| Tools |
| ----- |
| |
| Documentation |
| ------------- |
| |
| |
| |
| What's New in Python 2.5 alpha 2? |
| ================================= |
| |
| *Release date: 27-APR-2006* |
| |
| Core and builtins |
| ----------------- |
| |
| - Bug #1465834: 'bdist_wininst preinstall script support' was fixed |
| by converting these apis from macros into exported functions again: |
| |
| PyParser_SimpleParseFile PyParser_SimpleParseString PyRun_AnyFile |
| PyRun_AnyFileEx PyRun_AnyFileFlags PyRun_File PyRun_FileEx |
| PyRun_FileFlags PyRun_InteractiveLoop PyRun_InteractiveOne |
| PyRun_SimpleFile PyRun_SimpleFileEx PyRun_SimpleString |
| PyRun_String Py_CompileString |
| |
| - Under COUNT_ALLOCS, types are not necessarily immortal anymore. |
| |
| - All uses of PyStructSequence_InitType have been changed to initialize |
| the type objects only once, even if the interpreter is initialized |
| multiple times. |
| |
| - Bug #1454485, array.array('u') could crash the interpreter. This was |
| due to PyArgs_ParseTuple(args, 'u#', ...) trying to convert buffers (strings) |
| to unicode when it didn't make sense. 'u#' now requires a unicode string. |
| |
| - Py_UNICODE is unsigned. It was always documented as unsigned, but |
| due to a bug had a signed value in previous versions. |
| |
| - Patch #837242: ``id()`` of any Python object always gives a positive |
| number now, which might be a long integer. ``PyLong_FromVoidPtr`` and |
| ``PyLong_AsVoidPtr`` have been changed accordingly. Note that it has |
| never been correct to implement a ``__hash()__`` method that returns the |
| ``id()`` of an object: |
| |
| def __hash__(self): |
| return id(self) # WRONG |
| |
| because a hash result must be a (short) Python int but it was always |
| possible for ``id()`` to return a Python long. However, because ``id()`` |
| could return negative values before, on a 32-bit box an ``id()`` result |
| was always usable as a hash value before this patch. That's no longer |
| necessarily so. |
| |
| - Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c) |
| to load extension modules and now provides the dl module. As a result, |
| sys.setdlopenflags() now works correctly on these systems. (SF patch |
| #1454844) |
| |
| - Patch #1463867: enhanced garbage collection to allow cleanup of cycles |
| involving generators that have paused outside of any ``try`` or ``with`` |
| blocks. (In 2.5a1, a paused generator that was part of a reference |
| cycle could not be garbage collected, regardless of whether it was |
| paused in a ``try`` or ``with`` block.) |
| |
| Extension Modules |
| ----------------- |
| |
| - Patch #1191065: Fix preprocessor problems on systems where recvfrom |
| is a macro. |
| |
| - Bug #1467952: os.listdir() now correctly raises an error if readdir() |
| fails with an error condition. |
| |
| - Fixed bsddb.db.DBError derived exceptions so they can be unpickled. |
| |
| - Bug #1117761: bsddb.*open() no longer raises an exception when using |
| the cachesize parameter. |
| |
| - Bug #1149413: bsddb.*open() no longer raises an exception when using |
| a temporary db (file=None) with the 'n' flag to truncate on open. |
| |
| - Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3 |
| as older versions cause excessive test failures. |
| |
| - Patch #1062014: AF_UNIX sockets under Linux have a special |
| abstract namespace that is now fully supported. |
| |
| Library |
| ------- |
| |
| - Bug #1223937: subprocess.CalledProcessError reports the exit status |
| of the process using the returncode attribute, instead of |
| abusing errno. |
| |
| - Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes |
| a doctest to be skipped (the code is not run, and the expected output |
| or exception is ignored). |
| |
| - Fixed contextlib.nested to cope with exceptions being raised and |
| caught inside exit handlers. |
| |
| - Updated optparse module to Optik 1.5.1 (allow numeric constants in |
| hex, octal, or binary; add ``append_const`` action; keep going if |
| gettext cannot be imported; added ``OptionParser.destroy()`` method; |
| added ``epilog`` for better help generation). |
| |
| - Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when |
| called from a thread spawned as a side effect of importing a module. |
| |
| - The pydoc module now supports documenting packages contained in |
| .zip or .egg files. |
| |
| - The pkgutil module now has several new utility functions, such |
| as ``walk_packages()`` to support working with packages that are either |
| in the filesystem or zip files. |
| |
| - The mailbox module can now modify and delete messages from |
| mailboxes, in addition to simply reading them. Thanks to Gregory |
| K. Johnson for writing the code, and to the 2005 Google Summer of |
| Code for funding his work. |
| |
| - The ``__del__`` method of class ``local`` in module ``_threading_local`` |
| returned before accomplishing any of its intended cleanup. |
| |
| - Patch #790710: Add breakpoint command lists in pdb. |
| |
| - Patch #1063914: Add Tkinter.Misc.clipboard_get(). |
| |
| - Patch #1191700: Adjust column alignment in bdb breakpoint lists. |
| |
| - SimpleXMLRPCServer relied on the fcntl module, which is unavailable on |
| Windows. Bug #1469163. |
| |
| - The warnings, linecache, inspect, traceback, site, and doctest modules |
| were updated to work correctly with modules imported from zipfiles or |
| via other PEP 302 __loader__ objects. |
| |
| - Patch #1467770: Reduce usage of subprocess._active to processes which |
| the application hasn't waited on. |
| |
| - Patch #1462222: Fix Tix.Grid. |
| |
| - Fix exception when doing glob.glob('anything*/') |
| |
| - The pstats.Stats class accepts an optional stream keyword argument to |
| direct output to an alternate file-like object. |
| |
| Build |
| ----- |
| |
| - The Makefile now has a reindent target, which runs reindent.py on |
| the library. |
| |
| - Patch #1470875: Building Python with MS Free Compiler |
| |
| - Patch #1161914: Add a python-config script. |
| |
| - Patch #1324762:Remove ccpython.cc; replace --with-cxx with |
| --with-cxx-main. Link with C++ compiler only if --with-cxx-main was |
| specified. (Can be overridden by explicitly setting LINKCC.) Decouple |
| CXX from --with-cxx-main, see description in README. |
| |
| - Patch #1429775: Link extension modules with the shared libpython. |
| |
| - Fixed a libffi build problem on MIPS systems. |
| |
| - ``PyString_FromFormat``, ``PyErr_Format``, and ``PyString_FromFormatV`` |
| now accept formats "%u" for unsigned ints, "%lu" for unsigned longs, |
| and "%zu" for unsigned integers of type ``size_t``. |
| |
| Tests |
| ----- |
| |
| - test_contextlib now checks contextlib.nested can cope with exceptions |
| being raised and caught inside exit handlers. |
| |
| - test_cmd_line now checks operation of the -m and -c command switches |
| |
| - The test_contextlib test in 2.5a1 wasn't actually run unless you ran |
| it separately and by hand. It also wasn't cleaning up its changes to |
| the current Decimal context. |
| |
| - regrtest.py now has a -M option to run tests that test the new limits of |
| containers, on 64-bit architectures. Running these tests is only sensible |
| on 64-bit machines with more than two gigabytes of memory. The argument |
| passed is the maximum amount of memory for the tests to use. |
| |
| Tools |
| ----- |
| |
| - Added the Python benchmark suite pybench to the Tools/ directory; |
| contributed by Marc-Andre Lemburg. |
| |
| Documentation |
| ------------- |
| |
| - Patch #1473132: Improve docs for ``tp_clear`` and ``tp_traverse``. |
| |
| - PEP 343: Added Context Types section to the library reference |
| and attempted to bring other PEP 343 related documentation into |
| line with the implementation and/or python-dev discussions. |
| |
| - Bug #1337990: clarified that ``doctest`` does not support examples |
| requiring both expected output and an exception. |
| |
| |
| What's New in Python 2.5 alpha 1? |
| ================================= |
| |
| *Release date: 05-APR-2006* |
| |
| Core and builtins |
| ----------------- |
| |
| - PEP 338: -m command line switch now delegates to runpy.run_module |
| allowing it to support modules in packages and zipfiles |
| |
| - On Windows, .DLL is not an accepted file name extension for |
| extension modules anymore; extensions are only found if they |
| end in .PYD. |
| |
| - Bug #1421664: sys.stderr.encoding is now set to the same value as |
| sys.stdout.encoding. |
| |
| - __import__ accepts keyword arguments. |
| |
| - Patch #1460496: round() now accepts keyword arguments. |
| |
| - Fixed bug #1459029 - unicode reprs were double-escaped. |
| |
| - Patch #1396919: The system scope threads are reenabled on FreeBSD |
| 5.4 and later versions. |
| |
| - Bug #1115379: Compiling a Unicode string with an encoding declaration |
| now gives a SyntaxError. |
| |
| - Previously, Python code had no easy way to access the contents of a |
| cell object. Now, a ``cell_contents`` attribute has been added |
| (closes patch #1170323). |
| |
| - Patch #1123430: Python's small-object allocator now returns an arena to |
| the system ``free()`` when all memory within an arena becomes unused |
| again. Prior to Python 2.5, arenas (256KB chunks of memory) were never |
| freed. Some applications will see a drop in virtual memory size now, |
| especially long-running applications that, from time to time, temporarily |
| use a large number of small objects. Note that when Python returns an |
| arena to the platform C's ``free()``, there's no guarantee that the |
| platform C library will in turn return that memory to the operating system. |
| The effect of the patch is to stop making that impossible, and in tests it |
| appears to be effective at least on Microsoft C and gcc-based systems. |
| Thanks to Evan Jones for hard work and patience. |
| |
| - Patch #1434038: property() now uses the getter's docstring if there is |
| no "doc" argument given. This makes it possible to legitimately use |
| property() as a decorator to produce a read-only property. |
| |
| - PEP 357, patch 1436368: add an __index__ method to int/long and a matching |
| nb_index slot to the PyNumberMethods struct. The slot is consulted instead |
| of requiring an int or long in slicing and a few other contexts, enabling |
| other objects (e.g. Numeric Python's integers) to be used as slice indices. |
| |
| - Fixed various bugs reported by Coverity's Prevent tool. |
| |
| - PEP 352, patch #1104669: Make exceptions new-style objects. Introduced the |
| new exception base class, BaseException, which has a new message attribute. |
| KeyboardInterrupt and SystemExit to directly inherit from BaseException now. |
| Raising a string exception now raises a DeprecationWarning. |
| |
| - Patch #1438387, PEP 328: relative and absolute imports. Imports can now be |
| explicitly relative, using 'from .module import name' to mean 'from the same |
| package as this module is in. Imports without dots still default to the |
| old relative-then-absolute, unless 'from __future__ import |
| absolute_import' is used. |
| |
| - Properly check if 'warnings' raises an exception (usually when a filter set |
| to "error" is triggered) when raising a warning for raising string |
| exceptions. |
| |
| - CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default. |
| The name was removed from Include/code.h. |
| |
| - PEP 308: conditional expressions were added: (x if cond else y). |
| |
| - Patch 1433928: |
| - The copy module now "copies" function objects (as atomic objects). |
| - dict.__getitem__ now looks for a __missing__ hook before raising |
| KeyError. |
| |
| - PEP 343: with statement implemented. Needs ``from __future__ import |
| with_statement``. Use of 'with' as a variable will generate a warning. |
| Use of 'as' as a variable will also generate a warning (unless it's |
| part of an import statement). |
| The following objects have __context__ methods: |
| - The built-in file type. |
| - The thread.LockType type. |
| - The following types defined by the threading module: |
| Lock, RLock, Condition, Semaphore, BoundedSemaphore. |
| - The decimal.Context class. |
| |
| - Fix the encodings package codec search function to only search |
| inside its own package. Fixes problem reported in patch #1433198. |
| |
| Note: Codec packages should implement and register their own |
| codec search function. PEP 100 has the details. |
| |
| - PEP 353: Using ``Py_ssize_t`` as the index type. |
| |
| - ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging |
| info to each allocated block, since the ``Py_ssize_t`` changes (PEP 353) |
| now allow Python to make use of memory blocks exceeding 2**32 bytes for |
| some purposes on 64-bit boxes. A ``PYMALLOC_DEBUG`` build was limited |
| to 4-byte allocations before. |
| |
| - Patch #1400181, fix unicode string formatting to not use the locale. |
| This is how string objects work. u'%f' could use , instead of . |
| for the decimal point. Now both strings and unicode always use periods. |
| |
| - Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8. |
| configure would break checking curses.h. |
| |
| - Bug #959576: The pwd module is now builtin. This allows Python to be |
| built on UNIX platforms without $HOME set. |
| |
| - Bug #1072182, fix some potential problems if characters are signed. |
| |
| - Bug #889500, fix line number on SyntaxWarning for global declarations. |
| |
| - Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter. |
| |
| - Support for converting hex strings to floats no longer works. |
| This was not portable. float('0x3') now raises a ValueError. |
| |
| - Patch #1382163: Expose Subversion revision number to Python. New C API |
| function Py_GetBuildNumber(). New attribute sys.subversion. Build number |
| is now displayed in interactive prompt banner. |
| |
| - Implementation of PEP 341 - Unification of try/except and try/finally. |
| "except" clauses can now be written together with a "finally" clause in |
| one try statement instead of two nested ones. Patch #1355913. |
| |
| - Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec |
| now encodes backslash correctly. |
| |
| - Patch #1350409: Work around signal handling bug in Visual Studio 2005. |
| |
| - Bug #1281408: Py_BuildValue now works correctly even with unsigned longs |
| and long longs. |
| |
| - SF Bug #1350188, "setdlopenflags" leads to crash upon "import" |
| It was possible for dlerror() to return a NULL pointer, so |
| it will now use a default error message in this case. |
| |
| - Replaced most Unicode charmap codecs with new ones using the |
| new Unicode translate string feature in the builtin charmap |
| codec; the codecs were created from the mapping tables available |
| at ftp.unicode.org and contain a few updates (e.g. the Mac OS |
| encodings now include a mapping for the Apple logo) |
| |
| - Added a few more codecs for Mac OS encodings |
| |
| - Sped up some Unicode operations. |
| |
| - A new AST parser implementation was completed. The abstract |
| syntax tree is available for read-only (non-compile) access |
| to Python code; an _ast module was added. |
| |
| - SF bug #1167751: fix incorrect code being produced for generator expressions. |
| The following code now raises a SyntaxError: foo(a = i for i in range(10)) |
| |
| - SF Bug #976608: fix SystemError when mtime of an imported file is -1. |
| |
| - SF Bug #887946: fix segfault when redirecting stdin from a directory. |
| Provide a warning when a directory is passed on the command line. |
| |
| - Fix segfault with invalid coding. |
| |
| - SF bug #772896: unknown encoding results in MemoryError. |
| |
| - All iterators now have a Boolean value of True. Formerly, some iterators |
| supported a __len__() method which evaluated to False when the iterator |
| was empty. |
| |
| - On 64-bit platforms, when __len__() returns a value that cannot be |
| represented as a C int, raise OverflowError. |
| |
| - test__locale is skipped on OS X < 10.4 (only partial locale support is |
| present). |
| |
| - SF bug #893549: parsing keyword arguments was broken with a few format |
| codes. |
| |
| - Changes donated by Elemental Security to make it work on AIX 5.3 |
| with IBM's 64-bit compiler (SF patch #1284289). This also closes SF |
| bug #105470: test_pwd fails on 64bit system (Opteron). |
| |
| - Changes donated by Elemental Security to make it work on HP-UX 11 on |
| Itanium2 with HP's 64-bit compiler (SF patch #1225212). |
| |
| - Disallow keyword arguments for type constructors that don't use them |
| (fixes bug #1119418). |
| |
| - Forward UnicodeDecodeError into SyntaxError for source encoding errors. |
| |
| - SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for |
| exceptions that cause a function to exit. |
| |
| - The implementation of set() and frozenset() was revised to use its |
| own internal data structure. Memory consumption is reduced by 1/3 |
| and there are modest speed-ups as well. The API is unchanged. |
| |
| - SF bug #1238681: freed pointer is used in longobject.c:long_pow(). |
| |
| - SF bug #1229429: PyObject_CallMethod failed to decrement some |
| reference counts in some error exit cases. |
| |
| - SF bug #1185883: Python's small-object memory allocator took over |
| a block managed by the platform C library whenever a realloc specified |
| a small new size. However, there's no portable way to know then how |
| much of the address space following the pointer is valid, so there's no |
| portable way to copy data from the C-managed block into Python's |
| small-object space without risking a memory fault. Python's small-object |
| realloc now leaves such blocks under the control of the platform C |
| realloc. |
| |
| - SF bug #1232517: An overflow error was not detected properly when |
| attempting to convert a large float to an int in os.utime(). |
| |
| - SF bug #1224347: hex longs now print with lowercase letters just |
| like their int counterparts. |
| |
| - SF bug #1163563: the original fix for bug #1010677 ("thread Module |
| Breaks PyGILState_Ensure()") broke badly in the case of multiple |
| interpreter states; back out that fix and do a better job (see |
| http://mail.python.org/pipermail/python-dev/2005-June/054258.html |
| for a longer write-up of the problem). |
| |
| - SF patch #1180995: marshal now uses a binary format by default when |
| serializing floats. |
| |
| - SF patch #1181301: on platforms that appear to use IEEE 754 floats, |
| the routines that promise to produce IEEE 754 binary representations |
| of floats now simply copy bytes around. |
| |
| - bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP |
| 278. |
| |
| - patch #1109424: int, long, float, complex, and unicode now check for the |
| proper magic slot for type conversions when subclassed. Previously the |
| magic slot was ignored during conversion. Semantics now match the way |
| subclasses of str always behaved. int/long/float, conversion of an instance |
| to the base class has been moved to the proper nb_* magic slot and out of |
| PyNumber_*(). |
| Thanks Walter D�rwald. |
| |
| - Descriptors defined in C with a PyGetSetDef structure, where the setter is |
| NULL, now raise an AttributeError when attempting to set or delete the |
| attribute. Previously a TypeError was raised, but this was inconsistent |
| with the equivalent pure-Python implementation. |
| |
| - It is now safe to call PyGILState_Release() before |
| PyEval_InitThreads() (note that if there is reason to believe there |
| are multiple threads around you still must call PyEval_InitThreads() |
| before using the Python API; this fix is for extension modules that |
| have no way of knowing if Python is multi-threaded yet). |
| |
| - Typing Ctrl-C whilst raw_input() was waiting in a build with threads |
| disabled caused a crash. |
| |
| - Bug #1165306: instancemethod_new allowed the creation of a method |
| with im_class == im_self == NULL, which caused a crash when called. |
| |
| - Move exception finalisation later in the shutdown process - this |
| fixes the crash seen in bug #1165761 |
| |
| - Added two new builtins, any() and all(). |
| |
| - Defining a class with empty parentheses is now allowed |
| (e.g., ``class C(): pass`` is no longer a syntax error). |
| Patch #1176012 added support to the 'parser' module and 'compiler' package |
| (thanks to logistix for that added support). |
| |
| - Patch #1115086: Support PY_LONGLONG in structmember. |
| |
| - Bug #1155938: new style classes did not check that __init__() was |
| returning None. |
| |
| - Patch #802188: Report characters after line continuation character |
| ('\') with a specific error message. |
| |
| - Bug #723201: Raise a TypeError for passing bad objects to 'L' format. |
| |
| - Bug #1124295: the __name__ attribute of file objects was |
| inadvertently made inaccessible in restricted mode. |
| |
| - Bug #1074011: closing sys.std{out,err} now causes a flush() and |
| an ferror() call. |
| |
| - min() and max() now support key= arguments with the same meaning as in |
| list.sort(). |
| |
| - The peephole optimizer now performs simple constant folding in expressions: |
| (2+3) --> (5). |
| |
| - set and frozenset objects can now be marshalled. SF #1098985. |
| |
| - Bug #1077106: Poor argument checking could cause memory corruption |
| in calls to os.read(). |
| |
| - The parser did not complain about future statements in illegal |
| positions. It once again reports a syntax error if a future |
| statement occurs after anything other than a doc string. |
| |
| - Change the %s format specifier for str objects so that it returns a |
| unicode instance if the argument is not an instance of basestring and |
| calling __str__ on the argument returns a unicode instance. |
| |
| - Patch #1413181: changed ``PyThreadState_Delete()`` to forget about the |
| current thread state when the auto-GIL-state machinery knows about |
| it (since the thread state is being deleted, continuing to remember it |
| can't help, but can hurt if another thread happens to get created with |
| the same thread id). |
| |
| Extension Modules |
| ----------------- |
| |
| - Patch #1380952: fix SSL objects timing out on consecutive read()s |
| |
| - Patch #1309579: wait3 and wait4 were added to the posix module. |
| |
| - Patch #1231053: The audioop module now supports encoding/decoding of alaw. |
| In addition, the existing ulaw code was updated. |
| |
| - RFE #567972: Socket objects' family, type and proto properties are |
| now exposed via new attributes. |
| |
| - Everything under lib-old was removed. This includes the following modules: |
| Para, addpack, cmp, cmpcache, codehack, dircmp, dump, find, fmt, grep, |
| lockfile, newdir, ni, packmail, poly, rand, statcache, tb, tzparse, |
| util, whatsound, whrandom, zmod |
| |
| - The following modules were removed: regsub, reconvert, regex, regex_syntax. |
| |
| - re and sre were swapped, so help(re) provides full help. importing sre |
| is deprecated. The undocumented re.engine variable no longer exists. |
| |
| - Bug #1448490: Fixed a bug that ISO-2022 codecs could not handle |
| SS2 (single-shift 2) escape sequences correctly. |
| |
| - The unicodedata module was updated to the 4.1 version of the Unicode |
| database. The 3.2 version is still available as unicodedata.db_3_2_0 |
| for applications that require this specific version (such as IDNA). |
| |
| - The timing module is no longer built by default. It was deprecated |
| in PEP 4 in Python 2.0 or earlier. |
| |
| - Patch 1433928: Added a new type, defaultdict, to the collections module. |
| This uses the new __missing__ hook behavior added to dict (see above). |
| |
| - Bug #854823: socketmodule now builds on Sun platforms even when |
| INET_ADDRSTRLEN is not defined. |
| |
| - Patch #1393157: os.startfile() now has an optional argument to specify |
| a "command verb" to invoke on the file. |
| |
| - Bug #876637, prevent stack corruption when socket descriptor |
| is larger than FD_SETSIZE. |
| |
| - Patch #1407135, bug #1424041: harmonize mmap behavior of anonymous memory. |
| mmap.mmap(-1, size) now returns anonymous memory in both Unix and Windows. |
| mmap.mmap(0, size) should not be used on Windows for anonymous memory. |
| |
| - Patch #1422385: The nis module now supports access to domains other |
| than the system default domain. |
| |
| - Use Win32 API to implement os.stat/fstat. As a result, subsecond timestamps |
| are reported, the limit on path name lengths is removed, and stat reports |
| WindowsError now (instead of OSError). |
| |
| - Add bsddb.db.DBEnv.set_tx_timestamp allowing time based database recovery. |
| |
| - Bug #1413192, fix seg fault in bsddb if a transaction was deleted |
| before the env. |
| |
| - Patch #1103116: Basic AF_NETLINK support. |
| |
| - Bug #1402308, (possible) segfault when using mmap.mmap(-1, ...) |
| |
| - Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints. |
| Also fix ungetmouse() which did not accept arguments properly. |
| The code now conforms to the documented signature. |
| |
| - Bug #1400115, Fix segfault when calling curses.panel.userptr() |
| without prior setting of the userptr. |
| |
| - Fix 64-bit problems in bsddb. |
| |
| - Patch #1365916: fix some unsafe 64-bit mmap methods. |
| |
| - Bug #1290333: Added a workaround for cjkcodecs' _codecs_cn build |
| problem on AIX. |
| |
| - Bug #869197: os.setgroups rejects long integer arguments |
| |
| - Bug #1346533, select.poll() doesn't raise an error if timeout > sys.maxint |
| |
| - Bug #1344508, Fix UNIX mmap leaking file descriptors |
| |
| - Patch #1338314, Bug #1336623: fix tarfile so it can extract |
| REGTYPE directories from tarfiles written by old programs. |
| |
| - Patch #1407992, fixes broken bsddb module db associate when using |
| BerkeleyDB 3.3, 4.0 or 4.1. |
| |
| - Get bsddb module to build with BerkeleyDB version 4.4 |
| |
| - Get bsddb module to build with BerkeleyDB version 3.2 |
| |
| - Patch #1309009, Fix segfault in pyexpat when the XML document is in latin_1, |
| but Python incorrectly assumes it is in UTF-8 format |
| |
| - Fix parse errors in the readline module when compiling without threads. |
| |
| - Patch #1288833: Removed thread lock from socket.getaddrinfo on |
| FreeBSD 5.3 and later versions which got thread-safe getaddrinfo(3). |
| |
| - Patches #1298449 and #1298499: Add some missing checks for error |
| returns in cStringIO.c. |
| |
| - Patch #1297028: fix segfault if call type on MultibyteCodec, |
| MultibyteStreamReader, or MultibyteStreamWriter |
| |
| - Fix memory leak in posix.access(). |
| |
| - Patch #1213831: Fix typo in unicodedata._getcode. |
| |
| - Bug #1007046: os.startfile() did not accept unicode strings encoded in |
| the file system encoding. |
| |
| - Patch #756021: Special-case socket.inet_aton('255.255.255.255') for |
| platforms that don't have inet_aton(). |
| |
| - Bug #1215928: Fix bz2.BZ2File.seek() for 64-bit file offsets. |
| |
| - Bug #1191043: Fix bz2.BZ2File.(x)readlines for files containing one |
| line without newlines. |
| |
| - Bug #728515: mmap.resize() now resizes the file on Unix as it did |
| on Windows. |
| |
| - Patch #1180695: Add nanosecond stat resolution, and st_gen, |
| st_birthtime for FreeBSD. |
| |
| - Patch #1231069: The fcntl.ioctl function now uses the 'I' code for |
| the request code argument, which results in more C-like behaviour |
| for large or negative values. |
| |
| - Bug #1234979: For the argument of thread.Lock.acquire, the Windows |
| implementation treated all integer values except 1 as false. |
| |
| - Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly. |
| |
| - Patch #1212117: os.stat().st_flags is now accessible as a attribute |
| if available on the platform. |
| |
| - Patch #1103951: Expose O_SHLOCK and O_EXLOCK in the posix module if |
| available on the platform. |
| |
| - Bug #1166660: The readline module could segfault if hook functions |
| were set in a different thread than that which called readline. |
| |
| - collections.deque objects now support a remove() method. |
| |
| - operator.itemgetter() and operator.attrgetter() now support retrieving |
| multiple fields. This provides direct support for sorting on multiple |
| keys (primary, secondary, etc). |
| |
| - os.access now supports Unicode path names on non-Win32 systems. |
| |
| - Patches #925152, #1118602: Avoid reading after the end of the buffer |
| in pyexpat.GetInputContext. |
| |
| - Patches #749830, #1144555: allow UNIX mmap size to default to current |
| file size. |
| |
| - Added functional.partial(). See PEP309. |
| |
| - Patch #1093585: raise a ValueError for negative history items in readline. |
| {remove_history,replace_history} |
| |
| - The spwd module has been added, allowing access to the shadow password |
| database. |
| |
| - stat_float_times is now True. |
| |
| - array.array objects are now picklable. |
| |
| - the cPickle module no longer accepts the deprecated None option in the |
| args tuple returned by __reduce__(). |
| |
| - itertools.islice() now accepts None for the start and step arguments. |
| This allows islice() to work more readily with slices: |
| islice(s.start, s.stop, s.step) |
| |
| - datetime.datetime() now has a strptime class method which can be used to |
| create datetime object using a string and format. |
| |
| - Patch #1117961: Replace the MD5 implementation from RSA Data Security Inc |
| with the implementation from http://sourceforge.net/projects/libmd5-rfc/. |
| |
| Library |
| ------- |
| |
| - Patch #1388073: Numerous __-prefixed attributes of unittest.TestCase have |
| been renamed to have only a single underscore prefix. This was done to |
| make subclassing easier. |
| |
| - PEP 338: new module runpy defines a run_module function to support |
| executing modules which provide access to source code or a code object |
| via the PEP 302 import mechanisms. |
| |
| - The email module's parsedate_tz function now sets the daylight savings |
| flag to -1 (unknown) since it can't tell from the date whether it should |
| be set. |
| |
| - Patch #624325: urlparse.urlparse() and urlparse.urlsplit() results |
| now sport attributes that provide access to the parts of the result. |
| |
| - Patch #1462498: sgmllib now handles entity and character references |
| in attribute values. |
| |
| - Added the sqlite3 package. This is based on pysqlite2.1.3, and provides |
| a DB-API interface in the standard library. You'll need sqlite 3.0.8 or |
| later to build this - if you have an earlier version, the C extension |
| module will not be built. |
| |
| - Bug #1460340: ``random.sample(dict)`` failed in various ways. Dicts |
| aren't officially supported here, and trying to use them will probably |
| raise an exception some day. But dicts have been allowed, and "mostly |
| worked", so support for them won't go away without warning. |
| |
| - Bug #1445068: getpass.getpass() can now be given an explicit stream |
| argument to specify where to write the prompt. |
| |
| - Patch #1462313, bug #1443328: the pickle modules now can handle classes |
| that have __private names in their __slots__. |
| |
| - Bug #1250170: mimetools now handles socket.gethostname() failures gracefully. |
| |
| - patch #1457316: "setup.py upload" now supports --identity to select the |
| key to be used for signing the uploaded code. |
| |
| - Queue.Queue objects now support .task_done() and .join() methods |
| to make it easier to monitor when daemon threads have completed |
| processing all enqueued tasks. Patch #1455676. |
| |
| - popen2.Popen objects now preserve the command in a .cmd attribute. |
| |
| - Added the ctypes ffi package. |
| |
| - email 4.0 package now integrated. This is largely the same as the email 3.0 |
| package that was included in Python 2.3, except that PEP 8 module names are |
| now used (e.g. mail.message instead of email.Message). The MIME classes |
| have been moved to a subpackage (e.g. email.mime.text instead of |
| email.MIMEText). The old names are still supported for now. Several |
| deprecated Message methods have been removed and lots of bugs have been |
| fixed. More details can be found in the email package documentation. |
| |
| - Patches #1436130/#1443155: codecs.lookup() now returns a CodecInfo object |
| (a subclass of tuple) that provides incremental decoders and encoders |
| (a way to use stateful codecs without the stream API). Python functions |
| codecs.getincrementaldecoder() and codecs.getincrementalencoder() as well |
| as C functions PyCodec_IncrementalEncoder() and PyCodec_IncrementalDecoder() |
| have been added. |
| |
| - Patch #1359365: Calling next() on a closed StringIO.String object raises |
| a ValueError instead of a StopIteration now (like file and cString.String do). |
| cStringIO.StringIO.isatty() will raise a ValueError now if close() has been |
| called before (like file and StringIO.StringIO do). |
| |
| - A regrtest option -w was added to re-run failed tests in verbose mode. |
| |
| - Patch #1446372: quit and exit can now be called from the interactive |
| interpreter to exit. |
| |
| - The function get_count() has been added to the gc module, and gc.collect() |
| grew an optional 'generation' argument. |
| |
| - A library msilib to generate Windows Installer files, and a distutils |
| command bdist_msi have been added. |
| |
| - PEP 343: new module contextlib.py defines decorator @contextmanager |
| and helpful context managers nested() and closing(). |
| |
| - The compiler package now supports future imports after the module docstring. |
| |
| - Bug #1413790: zipfile now sanitizes absolute archive names that are |
| not allowed by the specs. |
| |
| - Patch #1215184: FileInput now can be given an opening hook which can |
| be used to control how files are opened. |
| |
| - Patch #1212287: fileinput.input() now has a mode parameter for |
| specifying the file mode input files should be opened with. |
| |
| - Patch #1215184: fileinput now has a fileno() function for getting the |
| current file number. |
| |
| - Patch #1349274: gettext.install() now optionally installs additional |
| translation functions other than _() in the builtin namespace. |
| |
| - Patch #1337756: fileinput now accepts Unicode filenames. |
| |
| - Patch #1373643: The chunk module can now read chunks larger than |
| two gigabytes. |
| |
| - Patch #1417555: SimpleHTTPServer now returns Last-Modified headers. |
| |
| - Bug #1430298: It is now possible to send a mail with an empty |
| return address using smtplib. |
| |
| - Bug #1432260: The names of lambda functions are now properly displayed |
| in pydoc. |
| |
| - Patch #1412872: zipfile now sets the creator system to 3 (Unix) |
| unless the system is Win32. |
| |
| - Patch #1349118: urllib now supports user:pass@ style proxy |
| specifications, raises IOErrors when proxies for unsupported protocols |
| are defined, and uses the https proxy on https redirections. |
| |
| - Bug #902075: urllib2 now supports 'host:port' style proxy specifications. |
| |
| - Bug #1407902: Add support for sftp:// URIs to urlparse. |
| |
| - Bug #1371247: Update Windows locale identifiers in locale.py. |
| |
| - Bug #1394565: SimpleHTTPServer now doesn't choke on query parameters |
| any more. |
| |
| - Bug #1403410: The warnings module now doesn't get confused |
| when it can't find out the module name it generates a warning for. |
| |
| - Patch #1177307: Added a new codec utf_8_sig for UTF-8 with a BOM signature. |
| |
| - Patch #1157027: cookielib mishandles RFC 2109 cookies in Netscape mode |
| |
| - Patch #1117398: cookielib.LWPCookieJar and .MozillaCookieJar now raise |
| LoadError as documented, instead of IOError. For compatibility, |
| LoadError subclasses IOError. |
| |
| - Added the hashlib module. It provides secure hash functions for MD5 and |
| SHA1, 224, 256, 384, and 512. Note that recent developments make the |
| historic MD5 and SHA1 unsuitable for cryptographic-strength applications. |
| In <http://mail.python.org/pipermail/python-dev/2005-December/058850.html> |
| Ronald L. Rivest offered this advice for Python: |
| |
| "The consensus of researchers in this area (at least as |
| expressed at the NIST Hash Function Workshop 10/31/05), |
| is that SHA-256 is a good choice for the time being, but |
| that research should continue, and other alternatives may |
| arise from this research. The larger SHA's also seem OK." |
| |
| - Added a subset of Fredrik Lundh's ElementTree package. Available |
| modules are xml.etree.ElementTree, xml.etree.ElementPath, and |
| xml.etree.ElementInclude, from ElementTree 1.2.6. |
| |
| - Patch #1162825: Support non-ASCII characters in IDLE window titles. |
| |
| - Bug #1365984: urllib now opens "data:" URLs again. |
| |
| - Patch #1314396: prevent deadlock for threading.Thread.join() when an exception |
| is raised within the method itself on a previous call (e.g., passing in an |
| illegal argument) |
| |
| - Bug #1340337: change time.strptime() to always return ValueError when there |
| is an error in the format string. |
| |
| - Patch #754022: Greatly enhanced webbrowser.py (by Oleg Broytmann). |
| |
| - Bug #729103: pydoc.py: Fix docother() method to accept additional |
| "parent" argument. |
| |
| - Patch #1300515: xdrlib.py: Fix pack_fstring() to really use null bytes |
| for padding. |
| |
| - Bug #1296004: httplib.py: Limit maximal amount of data read from the |
| socket to avoid a MemoryError on Windows. |
| |
| - Patch #1166948: locale.py: Prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE |
| to get the correct encoding. |
| |
| - Patch #1166938: locale.py: Parse LANGUAGE as a colon separated list of |
| languages. |
| |
| - Patch #1268314: Cache lines in StreamReader.readlines for performance. |
| |
| - Bug #1290505: Fix clearing the regex cache for time.strptime(). |
| |
| - Bug #1167128: Fix size of a symlink in a tarfile to be 0. |
| |
| - Patch #810023: Fix off-by-one bug in urllib.urlretrieve reporthook |
| functionality. |
| |
| - Bug #1163178: Make IDNA return an empty string when the input is empty. |
| |
| - Patch #848017: Make Cookie more RFC-compliant. Use CRLF as default output |
| separator and do not output trailing semicolon. |
| |
| - Patch #1062060: urllib.urlretrieve() now raises a new exception, named |
| ContentTooShortException, when the actually downloaded size does not |
| match the Content-Length header. |
| |
| - Bug #1121494: distutils.dir_utils.mkpath now accepts Unicode strings. |
| |
| - Bug #1178484: Return complete lines from codec stream readers |
| even if there is an exception in later lines, resulting in |
| correct line numbers for decoding errors in source code. |
| |
| - Bug #1192315: Disallow negative arguments to clear() in pdb. |
| |
| - Patch #827386: Support absolute source paths in msvccompiler.py. |
| |
| - Patch #1105730: Apply the new implementation of commonprefix in posixpath |
| to ntpath, macpath, os2emxpath and riscospath. |
| |
| - Fix a problem in Tkinter introduced by SF patch #869468: delete bogus |
| __hasattr__ and __delattr__ methods on class Tk that were breaking |
| Tkdnd. |
| |
| - Bug #1015140: disambiguated the term "article id" in nntplib docs and |
| docstrings to either "article number" or "message id". |
| |
| - Bug #1238170: threading.Thread.__init__ no longer has "kwargs={}" as a |
| parameter, but uses the usual "kwargs=None". |
| |
| - textwrap now processes text chunks at O(n) speed instead of O(n**2). |
| Patch #1209527 (Contributed by Connelly). |
| |
| - urllib2 has now an attribute 'httpresponses' mapping from HTTP status code |
| to W3C name (404 -> 'Not Found'). RFE #1216944. |
| |
| - Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom, |
| as this can cause problems with apps closing all file descriptors. |
| |
| - Bug #839151: Fix an attempt to access sys.argv in the warnings module; |
| it can be missing in embedded interpreters |
| |
| - Bug #1155638: Fix a bug which affected HTTP 0.9 responses in httplib. |
| |
| - Bug #1100201: Cross-site scripting was possible on BaseHTTPServer via |
| error messages. |
| |
| - Bug #1108948: Cookie.py produced invalid JavaScript code. |
| |
| - The tokenize module now detects and reports indentation errors. |
| Bug #1224621. |
| |
| - The tokenize module has a new untokenize() function to support a full |
| roundtrip from lexed tokens back to Python source code. In addition, |
| the generate_tokens() function now accepts a callable argument that |
| terminates by raising StopIteration. |
| |
| - Bug #1196315: fix weakref.WeakValueDictionary constructor. |
| |
| - Bug #1213894: os.path.realpath didn't resolve symlinks that were the first |
| component of the path. |
| |
| - Patch #1120353: The xmlrpclib module provides better, more transparent, |
| support for datetime.{datetime,date,time} objects. With use_datetime set |
| to True, applications shouldn't have to fiddle with the DateTime wrapper |
| class at all. |
| |
| - distutils.commands.upload was added to support uploading distribution |
| files to PyPI. |
| |
| - distutils.commands.register now encodes the data as UTF-8 before posting |
| them to PyPI. |
| |
| - decimal operator and comparison methods now return NotImplemented |
| instead of raising a TypeError when interacting with other types. This |
| allows other classes to implement __radd__ style methods and have them |
| work as expected. |
| |
| - Bug #1163325: Decimal infinities failed to hash. Attempting to |
| hash a NaN raised an InvalidOperation instead of a TypeError. |
| |
| - Patch #918101: Add tarfile open mode r|* for auto-detection of the |
| stream compression; add, for symmetry reasons, r:* as a synonym of r. |
| |
| - Patch #1043890: Add extractall method to tarfile. |
| |
| - Patch #1075887: Don't require MSVC in distutils if there is nothing |
| to build. |
| |
| - Patch #1103407: Properly deal with tarfile iterators when untarring |
| symbolic links on Windows. |
| |
| - Patch #645894: Use getrusage for computing the time consumption in |
| profile.py if available. |
| |
| - Patch #1046831: Use get_python_version where appropriate in sysconfig.py. |
| |
| - Patch #1117454: Remove code to special-case cookies without values |
| in LWPCookieJar. |
| |
| - Patch #1117339: Add cookielib special name tests. |
| |
| - Patch #1112812: Make bsddb/__init__.py more friendly for modulefinder. |
| |
| - Patch #1110248: SYNC_FLUSH the zlib buffer for GZipFile.flush. |
| |
| - Patch #1107973: Allow to iterate over the lines of a tarfile.ExFileObject. |
| |
| - Patch #1104111: Alter setup.py --help and --help-commands. |
| |
| - Patch #1121234: Properly cleanup _exit and tkerror commands. |
| |
| - Patch #1049151: xdrlib now unpacks booleans as True or False. |
| |
| - Fixed bug in a NameError bug in cookielib. Patch #1116583. |
| |
| - Applied a security fix to SimpleXMLRPCserver (PSF-2005-001). This |
| disables recursive traversal through instance attributes, which can |
| be exploited in various ways. |
| |
| - Bug #1222790: in SimpleXMLRPCServer, set the reuse-address and close-on-exec |
| flags on the HTTP listening socket. |
| |
| - Bug #792570: SimpleXMLRPCServer had problems if the request grew too large. |
| Fixed by reading the HTTP body in chunks instead of one big socket.read(). |
| |
| - Patches #893642, #1039083: add allow_none, encoding arguments to |
| constructors of SimpleXMLRPCServer and CGIXMLRPCRequestHandler. |
| |
| - Bug #1110478: Revert os.environ.update to do putenv again. |
| |
| - Bug #1103844: fix distutils.install.dump_dirs() with negated options. |
| |
| - os.{SEEK_SET, SEEK_CUR, SEEK_END} have been added for convenience. |
| |
| - Enhancements to the csv module: |
| |
| + Dialects are now validated by the underlying C code, better |
| reflecting its capabilities, and improving its compliance with |
| PEP 305. |
| + Dialect parameter parsing has been re-implemented to improve error |
| reporting. |
| + quotechar=None and quoting=QUOTE_NONE now work the way PEP 305 |
| dictates. |
| + the parser now removes the escapechar prefix from escaped characters. |
| + when quoting=QUOTE_NONNUMERIC, the writer now tests for numeric |
| types, rather than any object that can be represented as a numeric. |
| + when quoting=QUOTE_NONNUMERIC, the reader now casts unquoted fields |
| to floats. |
| + reader now allows \r characters to be quoted (previously it only allowed |
| \n to be quoted). |
| + writer doublequote handling improved. |
| + Dialect classes passed to the module are no longer instantiated by |
| the module before being parsed (the former validation scheme required |
| this, but the mechanism was unreliable). |
| + The dialect registry now contains instances of the internal |
| C-coded dialect type, rather than references to python objects. |
| + the internal c-coded dialect type is now immutable. |
| + register_dialect now accepts the same keyword dialect specifications |
| as the reader and writer, allowing the user to register dialects |
| without first creating a dialect class. |
| + a configurable limit to the size of parsed fields has been added - |
| previously, an unmatched quote character could result in the entire |
| file being read into the field buffer before an error was reported. |
| + A new module method csv.field_size_limit() has been added that sets |
| the parser field size limit (returning the former limit). The initial |
| limit is 128kB. |
| + A line_num attribute has been added to the reader object, which tracks |
| the number of lines read from the source iterator. This is not |
| the same as the number of records returned, as records can span |
| multiple lines. |
| + reader and writer objects were not being registered with the cyclic-GC. |
| This has been fixed. |
| |
| - _DummyThread objects in the threading module now delete self.__block that is |
| inherited from _Thread since it uses up a lock allocated by 'thread'. The |
| lock primitives tend to be limited in number and thus should not be wasted on |
| a _DummyThread object. Fixes bug #1089632. |
| |
| - The imghdr module now detects Exif files. |
| |
| - StringIO.truncate() now correctly adjusts the size attribute. |
| (Bug #951915). |
| |
| - locale.py now uses an updated locale alias table (built using |
| Tools/i18n/makelocalealias.py, a tool to parse the X11 locale |
| alias file); the encoding lookup was enhanced to use Python's |
| encoding alias table. |
| |
| - moved deprecated modules to Lib/lib-old: whrandom, tzparse, statcache. |
| |
| - the pickle module no longer accepts the deprecated None option in the |
| args tuple returned by __reduce__(). |
| |
| - optparse now optionally imports gettext. This allows its use in setup.py. |
| |
| - the pickle module no longer uses the deprecated bin parameter. |
| |
| - the shelve module no longer uses the deprecated binary parameter. |
| |
| - the pstats module no longer uses the deprecated ignore() method. |
| |
| - the filecmp module no longer uses the deprecated use_statcache argument. |
| |
| - unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully |
| extended or overridden by subclasses. Formerly, the subclassed method would |
| be ignored by the rest of the module. (Bug #1078905). |
| |
| - heapq.nsmallest() and heapq.nlargest() now support key= arguments with |
| the same meaning as in list.sort(). |
| |
| - Bug #1076985: ``codecs.StreamReader.readline()`` now calls ``read()`` only |
| once when a size argument is given. This prevents a buffer overflow in the |
| tokenizer with very long source lines. |
| |
| - Bug #1083110: ``zlib.decompress.flush()`` would segfault if called |
| immediately after creating the object, without any intervening |
| ``.decompress()`` calls. |
| |
| - The reconvert.quote function can now emit triple-quoted strings. The |
| reconvert module now has some simple documentation. |
| |
| - ``UserString.MutableString`` now supports negative indices in |
| ``__setitem__`` and ``__delitem__`` |
| |
| - Bug #1149508: ``textwrap`` now handles hyphenated numbers (eg. "2004-03-05") |
| correctly. |
| |
| - Partial fixes for SF bugs #1163244 and #1175396: If a chunk read by |
| ``codecs.StreamReader.readline()`` has a trailing "\r", read one more |
| character even if the user has passed a size parameter to get a proper |
| line ending. Remove the special handling of a "\r\n" that has been split |
| between two lines. |
| |
| - Bug #1251300: On UCS-4 builds the "unicode-internal" codec will now complain |
| about illegal code points. The codec now supports PEP 293 style error |
| handlers. |
| |
| - Bug #1235646: ``codecs.StreamRecoder.next()`` now reencodes the data it reads |
| from the input stream, so that the output is a byte string in the correct |
| encoding instead of a unicode string. |
| |
| - Bug #1202493: Fixing SRE parser to handle '{}' as perl does, rather than |
| considering it exactly like a '*'. |
| |
| - Bug #1245379: Add "unicode-1-1-utf-7" as an alias for "utf-7" to |
| ``encodings.aliases``. |
| |
| - ` uu.encode()`` and ``uu.decode()`` now support unicode filenames. |
| |
| - Patch #1413711: Certain patterns of differences were making difflib |
| touch the recursion limit. |
| |
| - Bug #947906: An object oriented interface has been added to the calendar |
| module. It's possible to generate HTML calendar now and the module can be |
| called as a script (e.g. via ``python -mcalendar``). Localized month and |
| weekday names can be ouput (even if an exotic encoding is used) using |
| special classes that use unicode. |
| |
| Build |
| ----- |
| |
| - Fix test_float, test_long, and test_struct failures on Tru64 with gcc |
| by using -mieee gcc option. |
| |
| - Patch #1432345: Make python compile on DragonFly. |
| |
| - Build support for Win64-AMD64 was added. |
| |
| - Patch #1428494: Prefer linking against ncursesw over ncurses library. |
| |
| - Patch #881820: look for openpty and forkpty also in libbsd. |
| |
| - The sources of zlib are now part of the Python distribution (zlib 1.2.3). |
| The zlib module is now builtin on Windows. |
| |
| - Use -xcode=pic32 for CCSHARED on Solaris with SunPro. |
| |
| - Bug #1189330: configure did not correctly determine the necessary |
| value of LINKCC if python was built with GCC 4.0. |
| |
| - Upgrade Windows build to zlib 1.2.3 which eliminates a potential security |
| vulnerability in zlib 1.2.1 and 1.2.2. |
| |
| - EXTRA_CFLAGS has been introduced as an environment variable to hold compiler |
| flags that change binary compatibility. Changes were also made to |
| distutils.sysconfig to also use the environment variable when used during |
| compilation of the interpreter and of C extensions through distutils. |
| |
| - SF patch 1171735: Darwin 8's headers are anal about POSIX compliance, |
| and linking has changed (prebinding is now deprecated, and libcc_dynamic |
| no longer exists). This configure patch makes things right. |
| |
| - Bug #1158607: Build with --disable-unicode again. |
| |
| - spwdmodule.c is built only if either HAVE_GETSPNAM or HAVE_HAVE_GETSPENT is |
| defined. Discovered as a result of not being able to build on OS X. |
| |
| - setup.py now uses the directories specified in LDFLAGS using the -L option |
| and in CPPFLAGS using the -I option for adding library and include |
| directories, respectively, for compiling extension modules against. This has |
| led to the core being compiled using the values in CPPFLAGS. It also removes |
| the need for the special-casing of both DarwinPorts and Fink for darwin since |
| the proper directories can be specified in LDFLAGS (``-L/sw/lib`` for Fink, |
| ``-L/opt/local/lib`` for DarwinPorts) and CPPFLAGS (``-I/sw/include`` for |
| Fink, ``-I/opt/local/include`` for DarwinPorts). |
| |
| - Test in configure.in that checks for tzset no longer dependent on tm->tm_zone |
| to exist in the struct (not required by either ISO C nor the UNIX 2 spec). |
| Tests for sanity in tzname when HAVE_TZNAME defined were also defined. |
| Closes bug #1096244. Thanks Gregory Bond. |
| |
| C API |
| ----- |
| |
| - ``PyMem_{Del, DEL}`` and ``PyMem_{Free, FREE}`` no longer map to |
| ``PyObject_{Free, FREE}``. They map to the system ``free()`` now. If memory |
| is obtained via the ``PyObject_`` family, it must be released via the |
| ``PyObject_`` family, and likewise for the ``PyMem_`` family. This has |
| always been officially true, but when Python's small-object allocator was |
| introduced, an attempt was made to cater to a few extension modules |
| discovered at the time that obtained memory via ``PyObject_New`` but |
| released it via ``PyMem_DEL``. It's years later, and if such code still |
| exists it will fail now (probably with segfaults, but calling wrong |
| low-level memory management functions can yield many symptoms). |
| |
| - Added a C API for set and frozenset objects. |
| |
| - Removed PyRange_New(). |
| |
| - Patch #1313939: PyUnicode_DecodeCharmap() accepts a unicode string as the |
| mapping argument now. This string is used as a mapping table. Byte values |
| greater than the length of the string and 0xFFFE are treated as undefined |
| mappings. |
| |
| |
| Tests |
| ----- |
| |
| - In test_os, st_?time is now truncated before comparing it with ST_?TIME. |
| |
| - Patch #1276356: New resource "urlfetch" is implemented. This enables |
| even impatient people to run tests that require remote files. |
| |
| |
| Documentation |
| ------------- |
| |
| - Bug #1402224: Add warning to dl docs about crashes. |
| |
| - Bug #1396471: Document that Windows' ftell() can return invalid |
| values for text files with UNIX-style line endings. |
| |
| - Bug #1274828: Document os.path.splitunc(). |
| |
| - Bug #1190204: Clarify which directories are searched by site.py. |
| |
| - Bug #1193849: Clarify os.path.expanduser() documentation. |
| |
| - Bug #1243192: re.UNICODE and re.LOCALE affect \d, \D, \s and \S. |
| |
| - Bug #755617: Document the effects of os.chown() on Windows. |
| |
| - Patch #1180012: The documentation for modulefinder is now in the library reference. |
| |
| - Patch #1213031: Document that os.chown() accepts argument values of -1. |
| |
| - Bug #1190563: Document os.waitpid() return value with WNOHANG flag. |
| |
| - Bug #1175022: Correct the example code for property(). |
| |
| - Document the IterableUserDict class in the UserDict module. |
| Closes bug #1166582. |
| |
| - Remove all latent references for "Macintosh" that referred to semantics for |
| Mac OS 9 and change to reflect the state for OS X. |
| Closes patch #1095802. Thanks Jack Jansen. |
| |
| Mac |
| --- |
| |
| |
| New platforms |
| ------------- |
| |
| - FreeBSD 7 support is added. |
| |
| |
| Tools/Demos |
| ----------- |
| |
| - Created Misc/Vim/vim_syntax.py to auto-generate a python.vim file in that |
| directory for syntax highlighting in Vim. Vim directory was added and placed |
| vimrc to it (was previous up a level). |
| |
| - Added two new files to Tools/scripts: pysource.py, which recursively |
| finds Python source files, and findnocoding.py, which finds Python |
| source files that need an encoding declaration. |
| Patch #784089, credits to Oleg Broytmann. |
| |
| - Bug #1072853: pindent.py used an uninitialized variable. |
| |
| - Patch #1177597: Correct Complex.__init__. |
| |
| - Fixed a display glitch in Pynche, which could cause the right arrow to |
| wiggle over by a pixel. |
| |
| ---- |
| |
| **(For information about older versions, consult the HISTORY file.)** |