| 1 | +++++++++++
|
|---|
| 2 | Python News
|
|---|
| 3 | +++++++++++
|
|---|
| 4 |
|
|---|
| 5 | (editors: check NEWS.help for information about editing NEWS using ReST.)
|
|---|
| 6 |
|
|---|
| 7 | What's New in Python 2.5 (final)
|
|---|
| 8 | ================================
|
|---|
| 9 |
|
|---|
| 10 | *Release date: 19-SEP-2006*
|
|---|
| 11 |
|
|---|
| 12 | No changes since release candidate 2.
|
|---|
| 13 |
|
|---|
| 14 | What's New in Python 2.5 release candidate 2?
|
|---|
| 15 | =============================================
|
|---|
| 16 |
|
|---|
| 17 | *Release date: 12-SEP-2006*
|
|---|
| 18 |
|
|---|
| 19 | Core and builtins
|
|---|
| 20 | -----------------
|
|---|
| 21 |
|
|---|
| 22 | - Make _PyGILState_NoteThreadState() static, it was not used anywhere
|
|---|
| 23 | outside of pystate.c and should not be necessary.
|
|---|
| 24 |
|
|---|
| 25 | - Bug #1551432: Exceptions do not define an explicit __unicode__ method. This
|
|---|
| 26 | allows calling unicode() on exceptions classes directly to succeed.
|
|---|
| 27 |
|
|---|
| 28 | - Bug #1542051: Exceptions now correctly call PyObject_GC_UnTrack.
|
|---|
| 29 | Also make sure that every exception class has __module__ set to
|
|---|
| 30 | 'exceptions'.
|
|---|
| 31 |
|
|---|
| 32 | - Bug #1550983: emit better error messages for erroneous relative
|
|---|
| 33 | imports (if not in package and if beyond toplevel package).
|
|---|
| 34 |
|
|---|
| 35 | - Overflow checking code in integer division ran afoul of new gcc
|
|---|
| 36 | optimizations. Changed to be more standard-conforming.
|
|---|
| 37 |
|
|---|
| 38 | - Patch #1541585: fix buffer overrun when performing repr() on
|
|---|
| 39 | a unicode string in a build with wide unicode (UCS-4) support.
|
|---|
| 40 |
|
|---|
| 41 | - Patch #1546288: fix seg fault in dict_equal due to ref counting bug.
|
|---|
| 42 |
|
|---|
| 43 | - The return tuple from str.rpartition(sep) is (tail, sep, head) where
|
|---|
| 44 | head is the original string if sep was not found.
|
|---|
| 45 |
|
|---|
| 46 | - Bug #1520864: unpacking singleton tuples in list comprehensions and
|
|---|
| 47 | generator expressions (x for x, in ... ) works again. Fixing this problem
|
|---|
| 48 | required changing the .pyc magic number. This means that .pyc files
|
|---|
| 49 | generated before 2.5c2 will be regenerated.
|
|---|
| 50 |
|
|---|
| 51 |
|
|---|
| 52 | Library
|
|---|
| 53 | -------
|
|---|
| 54 |
|
|---|
| 55 | - Reverted patch #1504333 because it introduced an infinite loop.
|
|---|
| 56 |
|
|---|
| 57 | - Patch #1553314: Fix the inspect.py slowdown that was hurting IPython & SAGE
|
|---|
| 58 | by adding smarter caching in inspect.getmodule().
|
|---|
| 59 |
|
|---|
| 60 | - Fix missing import of the types module in logging.config.
|
|---|
| 61 |
|
|---|
| 62 | - Patch #1550886: Fix decimal module context management implementation
|
|---|
| 63 | to match the localcontext() example from PEP 343.
|
|---|
| 64 |
|
|---|
| 65 | - Bug #1541863: uuid.uuid1 failed to generate unique identifiers
|
|---|
| 66 | on systems with low clock resolution.
|
|---|
| 67 |
|
|---|
| 68 | - Bug #1543303, patch #1543897: remove NUL padding from tarfiles.
|
|---|
| 69 |
|
|---|
| 70 | - Bug #1531862: Do not close standard file descriptors in subprocess.
|
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 | Extension Modules
|
|---|
| 74 | -----------------
|
|---|
| 75 |
|
|---|
| 76 | - Fix bugs in ctypes:
|
|---|
| 77 | - anonymous structure fields that have a bit-width specified did not work
|
|---|
| 78 | - cast function did not accept c_char_p or c_wchar_p instances as first arg
|
|---|
| 79 |
|
|---|
| 80 | - Bug #1551427: fix a wrong NULL pointer check in the win32 version
|
|---|
| 81 | of os.urandom().
|
|---|
| 82 |
|
|---|
| 83 | - Bug #1548092: fix curses.tparm seg fault on invalid input.
|
|---|
| 84 |
|
|---|
| 85 | - Bug #1550714: fix SystemError from itertools.tee on negative value for n.
|
|---|
| 86 |
|
|---|
| 87 | - Fixed a few bugs on cjkcodecs:
|
|---|
| 88 | - gbk and gb18030 codec now handle U+30FB KATAKANA MIDDLE DOT correctly.
|
|---|
| 89 | - iso2022_jp_2 codec now encodes into G0 for KS X 1001, GB2312
|
|---|
| 90 | codepoints to conform the standard.
|
|---|
| 91 | - iso2022_jp_3 and iso2022_jp_2004 codec can encode JIS X 0213:2
|
|---|
| 92 | codepoints now.
|
|---|
| 93 |
|
|---|
| 94 | Tests
|
|---|
| 95 | -----
|
|---|
| 96 |
|
|---|
| 97 | - Fix bsddb test_basics.test06_Transactions to check the version
|
|---|
| 98 | number properly.
|
|---|
| 99 |
|
|---|
| 100 |
|
|---|
| 101 | Documentation
|
|---|
| 102 | -------------
|
|---|
| 103 |
|
|---|
| 104 | - Bug #1541682: Fix example in the "Refcount details" API docs.
|
|---|
| 105 | Additionally, remove a faulty example showing PySequence_SetItem applied
|
|---|
| 106 | to a newly created list object and add notes that this isn't a good idea.
|
|---|
| 107 |
|
|---|
| 108 |
|
|---|
| 109 | Tools
|
|---|
| 110 | -----
|
|---|
| 111 |
|
|---|
| 112 | - Bug #1546372: Fixed small bugglet in pybench that caused a missing
|
|---|
| 113 | file not to get reported properly.
|
|---|
| 114 |
|
|---|
| 115 |
|
|---|
| 116 | Build
|
|---|
| 117 | -----
|
|---|
| 118 |
|
|---|
| 119 | - Patch #1540470, for OpenBSD 4.0.
|
|---|
| 120 |
|
|---|
| 121 | - Patch #1545507: Exclude ctypes package in Win64 MSI file.
|
|---|
| 122 |
|
|---|
| 123 | - Fix OpenSSL debug build process.
|
|---|
| 124 |
|
|---|
| 125 |
|
|---|
| 126 | C API
|
|---|
| 127 | -----
|
|---|
| 128 |
|
|---|
| 129 | - Bug #1542693: remove semi-colon at end of PyImport_ImportModuleEx macro
|
|---|
| 130 | so it can be used as an expression.
|
|---|
| 131 |
|
|---|
| 132 |
|
|---|
| 133 | What's New in Python 2.5 release candidate 1?
|
|---|
| 134 | =============================================
|
|---|
| 135 |
|
|---|
| 136 | *Release date: 17-AUG-2006*
|
|---|
| 137 |
|
|---|
| 138 | Core and builtins
|
|---|
| 139 | -----------------
|
|---|
| 140 |
|
|---|
| 141 | - Fix infinite recursion when subclassing long and overriding __hash__.
|
|---|
| 142 |
|
|---|
| 143 | - Fix concatenation (+=) of long strings.
|
|---|
| 144 |
|
|---|
| 145 | - Unicode objects will no longer raise an exception when being
|
|---|
| 146 | compared equal or unequal to a string and a UnicodeDecodeError
|
|---|
| 147 | exception occurs, e.g. as result of a decoding failure.
|
|---|
| 148 |
|
|---|
| 149 | Instead, the equal (==) and unequal (!=) comparison operators will
|
|---|
| 150 | now issue a UnicodeWarning and interpret the two objects as
|
|---|
| 151 | unequal. The UnicodeWarning can be filtered as desired using
|
|---|
| 152 | the warning framework, e.g. silenced completely, turned into an
|
|---|
| 153 | exception, logged, etc.
|
|---|
| 154 |
|
|---|
| 155 | Note that compare operators other than equal and unequal will still
|
|---|
| 156 | raise UnicodeDecodeError exceptions as they've always done.
|
|---|
| 157 |
|
|---|
| 158 | - Fix segfault when doing string formatting on subclasses of long.
|
|---|
| 159 |
|
|---|
| 160 | - Fix bug related to __len__ functions using values > 2**32 on 64-bit machines
|
|---|
| 161 | with new-style classes.
|
|---|
| 162 |
|
|---|
| 163 | - Fix bug related to __len__ functions returning negative values with
|
|---|
| 164 | classic classes.
|
|---|
| 165 |
|
|---|
| 166 | - Patch #1538606, Fix __index__() clipping. There were some problems
|
|---|
| 167 | discovered with the API and how integers that didn't fit into Py_ssize_t
|
|---|
| 168 | were handled. This patch attempts to provide enough alternatives
|
|---|
| 169 | to effectively use __index__.
|
|---|
| 170 |
|
|---|
| 171 | - Bug #1536021: __hash__ may now return long int; the final hash
|
|---|
| 172 | value is obtained by invoking hash on the long int.
|
|---|
| 173 |
|
|---|
| 174 | - Bug #1536786: buffer comparison could emit a RuntimeWarning.
|
|---|
| 175 |
|
|---|
| 176 | - Bug #1535165: fixed a segfault in input() and raw_input() when
|
|---|
| 177 | sys.stdin is closed.
|
|---|
| 178 |
|
|---|
| 179 | - On Windows, the PyErr_Warn function is now exported from
|
|---|
| 180 | the Python dll again.
|
|---|
| 181 |
|
|---|
| 182 | - Bug #1191458: tracing over for loops now produces a line event
|
|---|
| 183 | on each iteration. Fixing this problem required changing the .pyc
|
|---|
| 184 | magic number. This means that .pyc files generated before 2.5c1
|
|---|
| 185 | will be regenerated.
|
|---|
| 186 |
|
|---|
| 187 | - Bug #1333982: string/number constants were inappropriately stored
|
|---|
| 188 | in the byte code and co_consts even if they were not used, ie
|
|---|
| 189 | immediately popped off the stack.
|
|---|
| 190 |
|
|---|
| 191 | - Fixed a reference-counting problem in property().
|
|---|
| 192 |
|
|---|
| 193 |
|
|---|
| 194 | Library
|
|---|
| 195 | -------
|
|---|
| 196 |
|
|---|
| 197 | - Fix a bug in the ``compiler`` package that caused invalid code to be
|
|---|
| 198 | generated for generator expressions.
|
|---|
| 199 |
|
|---|
| 200 | - The distutils version has been changed to 2.5.0. The change to
|
|---|
| 201 | keep it programmatically in sync with the Python version running
|
|---|
| 202 | the code (introduced in 2.5b3) has been reverted. It will continue
|
|---|
| 203 | to be maintained manually as static string literal.
|
|---|
| 204 |
|
|---|
| 205 | - If the Python part of a ctypes callback function returns None,
|
|---|
| 206 | and this cannot be converted to the required C type, an exception is
|
|---|
| 207 | printed with PyErr_WriteUnraisable. Before this change, the C
|
|---|
| 208 | callback returned arbitrary values to the calling code.
|
|---|
| 209 |
|
|---|
| 210 | - The __repr__ method of a NULL ctypes.py_object() no longer raises
|
|---|
| 211 | an exception.
|
|---|
| 212 |
|
|---|
| 213 | - uuid.UUID now has a bytes_le attribute. This returns the UUID in
|
|---|
| 214 | little-endian byte order for Windows. In addition, uuid.py gained some
|
|---|
| 215 | workarounds for clocks with low resolution, to stop the code yielding
|
|---|
| 216 | duplicate UUIDs.
|
|---|
| 217 |
|
|---|
| 218 | - Patch #1540892: site.py Quitter() class attempts to close sys.stdin
|
|---|
| 219 | before raising SystemExit, allowing IDLE to honor quit() and exit().
|
|---|
| 220 |
|
|---|
| 221 | - Bug #1224621: make tabnanny recognize IndentationErrors raised by tokenize.
|
|---|
| 222 |
|
|---|
| 223 | - Patch #1536071: trace.py should now find the full module name of a
|
|---|
| 224 | file correctly even on Windows.
|
|---|
| 225 |
|
|---|
| 226 | - logging's atexit hook now runs even if the rest of the module has
|
|---|
| 227 | already been cleaned up.
|
|---|
| 228 |
|
|---|
| 229 | - Bug #1112549, fix DoS attack on cgi.FieldStorage.
|
|---|
| 230 |
|
|---|
| 231 | - Bug #1531405, format_exception no longer raises an exception if
|
|---|
| 232 | str(exception) raised an exception.
|
|---|
| 233 |
|
|---|
| 234 | - Fix a bug in the ``compiler`` package that caused invalid code to be
|
|---|
| 235 | generated for nested functions.
|
|---|
| 236 |
|
|---|
| 237 |
|
|---|
| 238 | Extension Modules
|
|---|
| 239 | -----------------
|
|---|
| 240 |
|
|---|
| 241 | - Ignore data that arrives before the opening start tag in C etree.
|
|---|
| 242 |
|
|---|
| 243 | - Patch #1511317: don't crash on invalid hostname (alias) info.
|
|---|
| 244 |
|
|---|
| 245 | - Patch #1535500: fix segfault in BZ2File.writelines and make sure it
|
|---|
| 246 | raises the correct exceptions.
|
|---|
| 247 |
|
|---|
| 248 | - Patch # 1536908: enable building ctypes on OpenBSD/AMD64. The
|
|---|
| 249 | '-no-stack-protector' compiler flag for OpenBSD has been removed.
|
|---|
| 250 |
|
|---|
| 251 | - Patch #1532975 was applied, which fixes Bug #1533481: ctypes now
|
|---|
| 252 | uses the _as_parameter_ attribute when objects are passed to foreign
|
|---|
| 253 | function calls. The ctypes version number was changed to 1.0.1.
|
|---|
| 254 |
|
|---|
| 255 | - Bug #1530559, struct.pack raises TypeError where it used to convert.
|
|---|
| 256 | Passing float arguments to struct.pack when integers are expected
|
|---|
| 257 | now triggers a DeprecationWarning.
|
|---|
| 258 |
|
|---|
| 259 |
|
|---|
| 260 | Tests
|
|---|
| 261 | -----
|
|---|
| 262 |
|
|---|
| 263 | - test_socketserver should now work on cygwin and not fail sporadically
|
|---|
| 264 | on other platforms.
|
|---|
| 265 |
|
|---|
| 266 | - test_mailbox should now work on cygwin versions 2006-08-10 and later.
|
|---|
| 267 |
|
|---|
| 268 | - Bug #1535182: really test the xreadlines() method of bz2 objects.
|
|---|
| 269 |
|
|---|
| 270 | - test_threading now skips testing alternate thread stack sizes on
|
|---|
| 271 | platforms that don't support changing thread stack size.
|
|---|
| 272 |
|
|---|
| 273 |
|
|---|
| 274 | Documentation
|
|---|
| 275 | -------------
|
|---|
| 276 |
|
|---|
| 277 | - Patch #1534922: unittest docs were corrected and enhanced.
|
|---|
| 278 |
|
|---|
| 279 |
|
|---|
| 280 | Build
|
|---|
| 281 | -----
|
|---|
| 282 |
|
|---|
| 283 | - Bug #1535502, build _hashlib on Windows, and use masm assembler
|
|---|
| 284 | code in OpenSSL.
|
|---|
| 285 |
|
|---|
| 286 | - Bug #1534738, win32 debug version of _msi should be _msi_d.pyd.
|
|---|
| 287 |
|
|---|
| 288 | - Bug #1530448, ctypes build failure on Solaris 10 was fixed.
|
|---|
| 289 |
|
|---|
| 290 |
|
|---|
| 291 | C API
|
|---|
| 292 | -----
|
|---|
| 293 |
|
|---|
| 294 | - New API for Unicode rich comparisons: PyUnicode_RichCompare()
|
|---|
| 295 |
|
|---|
| 296 | - Bug #1069160. Internal correctness changes were made to
|
|---|
| 297 | ``PyThreadState_SetAsyncExc()``. A test case was added, and
|
|---|
| 298 | the documentation was changed to state that the return value
|
|---|
| 299 | is always 1 (normal) or 0 (if the specified thread wasn't found).
|
|---|
| 300 |
|
|---|
| 301 |
|
|---|
| 302 | What's New in Python 2.5 beta 3?
|
|---|
| 303 | ================================
|
|---|
| 304 |
|
|---|
| 305 | *Release date: 03-AUG-2006*
|
|---|
| 306 |
|
|---|
| 307 | Core and builtins
|
|---|
| 308 | -----------------
|
|---|
| 309 |
|
|---|
| 310 | - _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t; it previously
|
|---|
| 311 | returned a long (see PEP 353).
|
|---|
| 312 |
|
|---|
| 313 | - Bug #1515471: string.replace() accepts character buffers again.
|
|---|
| 314 |
|
|---|
| 315 | - Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
|
|---|
| 316 | This provides the proper warning for struct.pack().
|
|---|
| 317 | PyErr_Warn() is now deprecated in favor of PyErr_WarnEx().
|
|---|
| 318 |
|
|---|
| 319 | - Patch #1531113: Fix augmented assignment with yield expressions.
|
|---|
| 320 | Also fix a SystemError when trying to assign to yield expressions.
|
|---|
| 321 |
|
|---|
| 322 | - Bug #1529871: The speed enhancement patch #921466 broke Python's compliance
|
|---|
| 323 | with PEP 302. This was fixed by adding an ``imp.NullImporter`` type that is
|
|---|
| 324 | used in ``sys.path_importer_cache`` to cache non-directory paths and avoid
|
|---|
| 325 | excessive filesystem operations during imports.
|
|---|
| 326 |
|
|---|
| 327 | - Bug #1521947: When checking for overflow, ``PyOS_strtol()`` used some
|
|---|
| 328 | operations on signed longs that are formally undefined by C.
|
|---|
| 329 | Unfortunately, at least one compiler now cares about that, so complicated
|
|---|
| 330 | the code to make that compiler happy again.
|
|---|
| 331 |
|
|---|
| 332 | - Bug #1524310: Properly report errors from FindNextFile in os.listdir.
|
|---|
| 333 |
|
|---|
| 334 | - Patch #1232023: Stop including current directory in search
|
|---|
| 335 | path on Windows.
|
|---|
| 336 |
|
|---|
| 337 | - Fix some potential crashes found with failmalloc.
|
|---|
| 338 |
|
|---|
| 339 | - Fix warnings reported by Klocwork's static analysis tool.
|
|---|
| 340 |
|
|---|
| 341 | - Bug #1512814, Fix incorrect lineno's when code within a function
|
|---|
| 342 | had more than 255 blank lines.
|
|---|
| 343 |
|
|---|
| 344 | - Patch #1521179: Python now accepts the standard options ``--help`` and
|
|---|
| 345 | ``--version`` as well as ``/?`` on Windows.
|
|---|
| 346 |
|
|---|
| 347 | - Bug #1520864: unpacking singleton tuples in a 'for' loop (for x, in) works
|
|---|
| 348 | again. Fixing this problem required changing the .pyc magic number.
|
|---|
| 349 | This means that .pyc files generated before 2.5b3 will be regenerated.
|
|---|
| 350 |
|
|---|
| 351 | - Bug #1524317: Compiling Python ``--without-threads`` failed.
|
|---|
| 352 | The Python core compiles again, and, in a build without threads, the
|
|---|
| 353 | new ``sys._current_frames()`` returns a dictionary with one entry,
|
|---|
| 354 | mapping the faux "thread id" 0 to the current frame.
|
|---|
| 355 |
|
|---|
| 356 | - Bug #1525447: build on MacOS X on a case-sensitive filesystem.
|
|---|
| 357 |
|
|---|
| 358 |
|
|---|
| 359 | Library
|
|---|
| 360 | -------
|
|---|
| 361 |
|
|---|
| 362 | - Correction of patch #1455898: In the mbcs decoder, set final=False
|
|---|
| 363 | for stream decoder, but final=True for the decode function.
|
|---|
| 364 |
|
|---|
| 365 | - os.urandom no longer masks unrelated exceptions like SystemExit or
|
|---|
| 366 | KeyboardInterrupt.
|
|---|
| 367 |
|
|---|
| 368 | - Bug #1525866: Don't copy directory stat times in
|
|---|
| 369 | shutil.copytree on Windows
|
|---|
| 370 |
|
|---|
| 371 | - Bug #1002398: The documentation for os.path.sameopenfile now correctly
|
|---|
| 372 | refers to file descriptors, not file objects.
|
|---|
| 373 |
|
|---|
| 374 | - The renaming of the xml package to xmlcore, and the import hackery done
|
|---|
| 375 | to make it appear at both names, has been removed. Bug #1511497,
|
|---|
| 376 | #1513611, and probably others.
|
|---|
| 377 |
|
|---|
| 378 | - Bug #1441397: The compiler module now recognizes module and function
|
|---|
| 379 | docstrings correctly as it did in Python 2.4.
|
|---|
| 380 |
|
|---|
| 381 | - Bug #1529297: The rewrite of doctest for Python 2.4 unintentionally
|
|---|
| 382 | lost that tests are sorted by name before being run. This rarely
|
|---|
| 383 | matters for well-written tests, but can create baffling symptoms if
|
|---|
| 384 | side effects from one test to the next affect outcomes. ``DocTestFinder``
|
|---|
| 385 | has been changed to sort the list of tests it returns.
|
|---|
| 386 |
|
|---|
| 387 | - The distutils version has been changed to 2.5.0, and is now kept
|
|---|
| 388 | in sync with sys.version_info[:3].
|
|---|
| 389 |
|
|---|
| 390 | - Bug #978833: Really close underlying socket in _socketobject.close.
|
|---|
| 391 |
|
|---|
| 392 | - Bug #1459963: urllib and urllib2 now normalize HTTP header names with
|
|---|
| 393 | title().
|
|---|
| 394 |
|
|---|
| 395 | - Patch #1525766: In pkgutil.walk_packages, correctly pass the onerror callback
|
|---|
| 396 | to recursive calls and call it with the failing package name.
|
|---|
| 397 |
|
|---|
| 398 | - Bug #1525817: Don't truncate short lines in IDLE's tool tips.
|
|---|
| 399 |
|
|---|
| 400 | - Patch #1515343: Fix printing of deprecated string exceptions with a
|
|---|
| 401 | value in the traceback module.
|
|---|
| 402 |
|
|---|
| 403 | - Resync optparse with Optik 1.5.3: minor tweaks for/to tests.
|
|---|
| 404 |
|
|---|
| 405 | - Patch #1524429: Use repr() instead of backticks in Tkinter again.
|
|---|
| 406 |
|
|---|
| 407 | - Bug #1520914: Change time.strftime() to accept a zero for any position in its
|
|---|
| 408 | argument tuple. For arguments where zero is illegal, the value is forced to
|
|---|
| 409 | the minimum value that is correct. This is to support an undocumented but
|
|---|
| 410 | common way people used to fill in inconsequential information in the time
|
|---|
| 411 | tuple pre-2.4.
|
|---|
| 412 |
|
|---|
| 413 | - Patch #1220874: Update the binhex module for Mach-O.
|
|---|
| 414 |
|
|---|
| 415 | - The email package has improved RFC 2231 support, specifically for
|
|---|
| 416 | recognizing the difference between encoded (name*0*=<blah>) and non-encoded
|
|---|
| 417 | (name*0=<blah>) parameter continuations. This may change the types of
|
|---|
| 418 | values returned from email.message.Message.get_param() and friends.
|
|---|
| 419 | Specifically in some cases where non-encoded continuations were used,
|
|---|
| 420 | get_param() used to return a 3-tuple of (None, None, string) whereas now it
|
|---|
| 421 | will just return the string (since non-encoded continuations don't have
|
|---|
| 422 | charset and language parts).
|
|---|
| 423 |
|
|---|
| 424 | Also, whereas % values were decoded in all parameter continuations, they are
|
|---|
| 425 | now only decoded in encoded parameter parts.
|
|---|
| 426 |
|
|---|
| 427 | - Bug #1517990: IDLE keybindings on MacOS X now work correctly
|
|---|
| 428 |
|
|---|
| 429 | - Bug #1517996: IDLE now longer shows the default Tk menu when a
|
|---|
| 430 | path browser, class browser or debugger is the frontmost window on MacOS X
|
|---|
| 431 |
|
|---|
| 432 | - Patch #1520294: Support for getset and member descriptors in types.py,
|
|---|
| 433 | inspect.py, and pydoc.py. Specifically, this allows for querying the type
|
|---|
| 434 | of an object against these built-in types and more importantly, for getting
|
|---|
| 435 | their docstrings printed in the interactive interpreter's help() function.
|
|---|
| 436 |
|
|---|
| 437 |
|
|---|
| 438 | Extension Modules
|
|---|
| 439 | -----------------
|
|---|
| 440 |
|
|---|
| 441 | - Patch #1519025 and bug #926423: If a KeyboardInterrupt occurs during
|
|---|
| 442 | a socket operation on a socket with a timeout, the exception will be
|
|---|
| 443 | caught correctly. Previously, the exception was not caught.
|
|---|
| 444 |
|
|---|
| 445 | - Patch #1529514: The _ctypes extension is now compiled on more
|
|---|
| 446 | openbsd target platforms.
|
|---|
| 447 |
|
|---|
| 448 | - The ``__reduce__()`` method of the new ``collections.defaultdict`` had
|
|---|
| 449 | a memory leak, affecting pickles and deep copies.
|
|---|
| 450 |
|
|---|
| 451 | - Bug #1471938: Fix curses module build problem on Solaris 8; patch by
|
|---|
| 452 | Paul Eggert.
|
|---|
| 453 |
|
|---|
| 454 | - Patch #1448199: Release interpreter lock in _winreg.ConnectRegistry.
|
|---|
| 455 |
|
|---|
| 456 | - Patch #1521817: Index range checking on ctypes arrays containing
|
|---|
| 457 | exactly one element enabled again. This allows iterating over these
|
|---|
| 458 | arrays, without the need to check the array size before.
|
|---|
| 459 |
|
|---|
| 460 | - Bug #1521375: When the code in ctypes.util.find_library was
|
|---|
| 461 | run with root privileges, it could overwrite or delete
|
|---|
| 462 | /dev/null in certain cases; this is now fixed.
|
|---|
| 463 |
|
|---|
| 464 | - Bug #1467450: On Mac OS X 10.3, RTLD_GLOBAL is now used as the
|
|---|
| 465 | default mode for loading shared libraries in ctypes.
|
|---|
| 466 |
|
|---|
| 467 | - Because of a misspelled preprocessor symbol, ctypes was always
|
|---|
| 468 | compiled without thread support; this is now fixed.
|
|---|
| 469 |
|
|---|
| 470 | - pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
|
|---|
| 471 | methods now allow their database parameter to be None as the
|
|---|
| 472 | sleepycat API allows.
|
|---|
| 473 |
|
|---|
| 474 | - Bug #1526460: Fix socketmodule compile on NetBSD as it has a different
|
|---|
| 475 | bluetooth API compared with Linux and FreeBSD.
|
|---|
| 476 |
|
|---|
| 477 | Tests
|
|---|
| 478 | -----
|
|---|
| 479 |
|
|---|
| 480 | - Bug #1501330: Change test_ossaudiodev to be much more tolerant in terms of
|
|---|
| 481 | how long the test file should take to play. Now accepts taking 2.93 secs
|
|---|
| 482 | (exact time) +/- 10% instead of the hard-coded 3.1 sec.
|
|---|
| 483 |
|
|---|
| 484 | - Patch #1529686: The standard tests ``test_defaultdict``, ``test_iterlen``,
|
|---|
| 485 | ``test_uuid`` and ``test_email_codecs`` didn't actually run any tests when
|
|---|
| 486 | run via ``regrtest.py``. Now they do.
|
|---|
| 487 |
|
|---|
| 488 | Build
|
|---|
| 489 | -----
|
|---|
| 490 |
|
|---|
| 491 | - Bug #1439538: Drop usage of test -e in configure as it is not portable.
|
|---|
| 492 |
|
|---|
| 493 | Mac
|
|---|
| 494 | ---
|
|---|
| 495 |
|
|---|
| 496 | - PythonLauncher now works correctly when the path to the script contains
|
|---|
| 497 | characters that are treated specially by the shell (such as quotes).
|
|---|
| 498 |
|
|---|
| 499 | - Bug #1527397: PythonLauncher now launches scripts with the working directory
|
|---|
| 500 | set to the directory that contains the script instead of the user home
|
|---|
| 501 | directory. That latter was an implementation accident and not what users
|
|---|
| 502 | expect.
|
|---|
| 503 |
|
|---|
| 504 |
|
|---|
| 505 | What's New in Python 2.5 beta 2?
|
|---|
| 506 | ================================
|
|---|
| 507 |
|
|---|
| 508 | *Release date: 11-JUL-2006*
|
|---|
| 509 |
|
|---|
| 510 | Core and builtins
|
|---|
| 511 | -----------------
|
|---|
| 512 |
|
|---|
| 513 | - Bug #1441486: The literal representation of -(sys.maxint - 1)
|
|---|
| 514 | again evaluates to a int object, not a long.
|
|---|
| 515 |
|
|---|
| 516 | - Bug #1501934: The scope of global variables that are locally assigned
|
|---|
| 517 | using augmented assignment is now correctly determined.
|
|---|
| 518 |
|
|---|
| 519 | - Bug #927248: Recursive method-wrapper objects can now safely
|
|---|
| 520 | be released.
|
|---|
| 521 |
|
|---|
| 522 | - Bug #1417699: Reject locale-specific decimal point in float()
|
|---|
| 523 | and atof().
|
|---|
| 524 |
|
|---|
| 525 | - Bug #1511381: codec_getstreamcodec() in codec.c is corrected to
|
|---|
| 526 | omit a default "error" argument for NULL pointer. This allows
|
|---|
| 527 | the parser to take a codec from cjkcodecs again.
|
|---|
| 528 |
|
|---|
| 529 | - Bug #1519018: 'as' is now validated properly in import statements.
|
|---|
| 530 |
|
|---|
| 531 | - On 64 bit systems, int literals that use less than 64 bits are
|
|---|
| 532 | now ints rather than longs.
|
|---|
| 533 |
|
|---|
| 534 | - Bug #1512814, Fix incorrect lineno's when code at module scope
|
|---|
| 535 | started after line 256.
|
|---|
| 536 |
|
|---|
| 537 | - New function ``sys._current_frames()`` returns a dict mapping thread
|
|---|
| 538 | id to topmost thread stack frame. This is for expert use, and is
|
|---|
| 539 | especially useful for debugging application deadlocks. The functionality
|
|---|
| 540 | was previously available in Fazal Majid's ``threadframe`` extension
|
|---|
| 541 | module, but it wasn't possible to do this in a wholly threadsafe way from
|
|---|
| 542 | an extension.
|
|---|
| 543 |
|
|---|
| 544 | Library
|
|---|
| 545 | -------
|
|---|
| 546 |
|
|---|
| 547 | - Bug #1257728: Mention Cygwin in distutils error message about a missing
|
|---|
| 548 | VS 2003.
|
|---|
| 549 |
|
|---|
| 550 | - Patch #1519566: Update turtle demo, make begin_fill idempotent.
|
|---|
| 551 |
|
|---|
| 552 | - Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK
|
|---|
| 553 | environment variable to be set in order to the SDK environment
|
|---|
| 554 | for finding the compiler, include files, etc.
|
|---|
| 555 |
|
|---|
| 556 | - Bug #1515998: Properly generate logical ids for files in bdist_msi.
|
|---|
| 557 |
|
|---|
| 558 | - warnings.py now ignores ImportWarning by default
|
|---|
| 559 |
|
|---|
| 560 | - string.Template() now correctly handles tuple-values. Previously,
|
|---|
| 561 | multi-value tuples would raise an exception and single-value tuples would
|
|---|
| 562 | be treated as the value they contain, instead.
|
|---|
| 563 |
|
|---|
| 564 | - Bug #822974: Honor timeout in telnetlib.{expect,read_until}
|
|---|
| 565 | even if some data are received.
|
|---|
| 566 |
|
|---|
| 567 | - Bug #1267547: Put proper recursive setup.py call into the
|
|---|
| 568 | spec file generated by bdist_rpm.
|
|---|
| 569 |
|
|---|
| 570 | - Bug #1514693: Update turtle's heading when switching between
|
|---|
| 571 | degrees and radians.
|
|---|
| 572 |
|
|---|
| 573 | - Reimplement turtle.circle using a polyline, to allow correct
|
|---|
| 574 | filling of arcs.
|
|---|
| 575 |
|
|---|
| 576 | - Bug #1514703: Only setup canvas window in turtle when the canvas
|
|---|
| 577 | is created.
|
|---|
| 578 |
|
|---|
| 579 | - Bug #1513223: .close() of a _socketobj now releases the underlying
|
|---|
| 580 | socket again, which then gets closed as it becomes unreferenced.
|
|---|
| 581 |
|
|---|
| 582 | - Bug #1504333: Make sgmllib support angle brackets in quoted
|
|---|
| 583 | attribute values.
|
|---|
| 584 |
|
|---|
| 585 | - Bug #853506: Fix IPv6 address parsing in unquoted attributes in
|
|---|
| 586 | sgmllib ('[' and ']' were not accepted).
|
|---|
| 587 |
|
|---|
| 588 | - Fix a bug in the turtle module's end_fill function.
|
|---|
| 589 |
|
|---|
| 590 | - Bug #1510580: The 'warnings' module improperly required that a Warning
|
|---|
| 591 | category be either a types.ClassType and a subclass of Warning. The proper
|
|---|
| 592 | check is just that it is a subclass with Warning as the documentation states.
|
|---|
| 593 |
|
|---|
| 594 | - The compiler module now correctly compiles the new try-except-finally
|
|---|
| 595 | statement (bug #1509132).
|
|---|
| 596 |
|
|---|
| 597 | - The wsgiref package is now installed properly on Unix.
|
|---|
| 598 |
|
|---|
| 599 | - A bug was fixed in logging.config.fileConfig() which caused a crash on
|
|---|
| 600 | shutdown when fileConfig() was called multiple times.
|
|---|
| 601 |
|
|---|
| 602 | - The sqlite3 module did cut off data from the SQLite database at the first
|
|---|
| 603 | null character before sending it to a custom converter. This has been fixed
|
|---|
| 604 | now.
|
|---|
| 605 |
|
|---|
| 606 | Extension Modules
|
|---|
| 607 | -----------------
|
|---|
| 608 |
|
|---|
| 609 | - #1494314: Fix a regression with high-numbered sockets in 2.4.3. This
|
|---|
| 610 | means that select() on sockets > FD_SETSIZE (typically 1024) work again.
|
|---|
| 611 | The patch makes sockets use poll() internally where available.
|
|---|
| 612 |
|
|---|
| 613 | - Assigning None to pointer type fields in ctypes structures possible
|
|---|
| 614 | overwrote the wrong fields, this is fixed now.
|
|---|
| 615 |
|
|---|
| 616 | - Fixed a segfault in _ctypes when ctypes.wintypes were imported
|
|---|
| 617 | on non-Windows platforms.
|
|---|
| 618 |
|
|---|
| 619 | - Bug #1518190: The ctypes.c_void_p constructor now accepts any
|
|---|
| 620 | integer or long, without range checking.
|
|---|
| 621 |
|
|---|
| 622 | - Patch #1517790: It is now possible to use custom objects in the ctypes
|
|---|
| 623 | foreign function argtypes sequence as long as they provide a from_param
|
|---|
| 624 | method, no longer is it required that the object is a ctypes type.
|
|---|
| 625 |
|
|---|
| 626 | - The '_ctypes' extension module now works when Python is configured
|
|---|
| 627 | with the --without-threads option.
|
|---|
| 628 |
|
|---|
| 629 | - Bug #1513646: os.access on Windows now correctly determines write
|
|---|
| 630 | access, again.
|
|---|
| 631 |
|
|---|
| 632 | - Bug #1512695: cPickle.loads could crash if it was interrupted with
|
|---|
| 633 | a KeyboardInterrupt.
|
|---|
| 634 |
|
|---|
| 635 | - Bug #1296433: parsing XML with a non-default encoding and
|
|---|
| 636 | a CharacterDataHandler could crash the interpreter in pyexpat.
|
|---|
| 637 |
|
|---|
| 638 | - Patch #1516912: improve Modules support for OpenVMS.
|
|---|
| 639 |
|
|---|
| 640 | Build
|
|---|
| 641 | -----
|
|---|
| 642 |
|
|---|
| 643 | - Automate Windows build process for the Win64 SSL module.
|
|---|
| 644 |
|
|---|
| 645 | - 'configure' now detects the zlib library the same way as distutils.
|
|---|
| 646 | Previously, the slight difference could cause compilation errors of the
|
|---|
| 647 | 'zlib' module on systems with more than one version of zlib.
|
|---|
| 648 |
|
|---|
| 649 | - The MSI compileall step was fixed to also support a TARGETDIR
|
|---|
| 650 | with spaces in it.
|
|---|
| 651 |
|
|---|
| 652 | - Bug #1517388: sqlite3.dll is now installed on Windows independent
|
|---|
| 653 | of Tcl/Tk.
|
|---|
| 654 |
|
|---|
| 655 | - Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old
|
|---|
| 656 | trying to be installed even though it's empty.
|
|---|
| 657 |
|
|---|
| 658 | Tests
|
|---|
| 659 | -----
|
|---|
| 660 |
|
|---|
| 661 | - Call os.waitpid() at the end of tests that spawn child processes in order
|
|---|
| 662 | to minimize resources (zombies).
|
|---|
| 663 |
|
|---|
| 664 | Documentation
|
|---|
| 665 | -------------
|
|---|
| 666 |
|
|---|
| 667 | - Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the
|
|---|
| 668 | documentation for the warnings module.
|
|---|
| 669 |
|
|---|
| 670 | - Patch #1509163: MS Toolkit Compiler no longer available.
|
|---|
| 671 |
|
|---|
| 672 | - Patch #1504046: Add documentation for xml.etree.
|
|---|
| 673 |
|
|---|
| 674 |
|
|---|
| 675 | What's New in Python 2.5 beta 1?
|
|---|
| 676 | ================================
|
|---|
| 677 |
|
|---|
| 678 | *Release date: 20-JUN-2006*
|
|---|
| 679 |
|
|---|
| 680 | Core and builtins
|
|---|
| 681 | -----------------
|
|---|
| 682 |
|
|---|
| 683 | - Patch #1507676: Error messages returned by invalid abstract object operations
|
|---|
| 684 | (such as iterating over an integer) have been improved and now include the
|
|---|
| 685 | type of the offending object to help with debugging.
|
|---|
| 686 |
|
|---|
| 687 | - Bug #992017: A classic class that defined a __coerce__() method that returned
|
|---|
| 688 | its arguments swapped would infinitely recurse and segfault the interpreter.
|
|---|
| 689 |
|
|---|
| 690 | - Fix the socket tests so they can be run concurrently.
|
|---|
| 691 |
|
|---|
| 692 | - Removed 5 integers from C frame objects (PyFrameObject).
|
|---|
| 693 | f_nlocals, f_ncells, f_nfreevars, f_stack_size, f_restricted.
|
|---|
| 694 |
|
|---|
| 695 | - Bug #532646: object.__call__() will continue looking for the __call__
|
|---|
| 696 | attribute on objects until one without one is found. This leads to recursion
|
|---|
| 697 | when you take a class and set its __call__ attribute to an instance of the
|
|---|
| 698 | class. Originally fixed for classic classes, but this fix is for new-style.
|
|---|
| 699 | Removes the infinite_rec_3 crasher.
|
|---|
| 700 |
|
|---|
| 701 | - The string and unicode methods startswith() and endswith() now accept
|
|---|
| 702 | a tuple of prefixes/suffixes to look for. Implements RFE #1491485.
|
|---|
| 703 |
|
|---|
| 704 | - Buffer objects, at the C level, never used the char buffer
|
|---|
| 705 | implementation even when the char buffer for the wrapped object was
|
|---|
| 706 | explicitly requested (originally returned the read or write buffer).
|
|---|
| 707 | Now a TypeError is raised if the char buffer is not present but is
|
|---|
| 708 | requested.
|
|---|
| 709 |
|
|---|
| 710 | - Patch #1346214: Statements like "if 0: suite" are now again optimized
|
|---|
| 711 | away like they were in Python 2.4.
|
|---|
| 712 |
|
|---|
| 713 | - Builtin exceptions are now full-blown new-style classes instead of
|
|---|
| 714 | instances pretending to be classes, which speeds up exception handling
|
|---|
| 715 | by about 80% in comparison to 2.5a2.
|
|---|
| 716 |
|
|---|
| 717 | - Patch #1494554: Update unicodedata.numeric and unicode.isnumeric to
|
|---|
| 718 | Unicode 4.1.
|
|---|
| 719 |
|
|---|
| 720 | - Patch #921466: sys.path_importer_cache is now used to cache valid and
|
|---|
| 721 | invalid file paths for the built-in import machinery which leads to
|
|---|
| 722 | fewer open calls on startup.
|
|---|
| 723 |
|
|---|
| 724 | - Patch #1442927: ``long(str, base)`` is now up to 6x faster for non-power-
|
|---|
| 725 | of-2 bases. The largest speedup is for inputs with about 1000 decimal
|
|---|
| 726 | digits. Conversion from non-power-of-2 bases remains quadratic-time in
|
|---|
| 727 | the number of input digits (it was and remains linear-time for bases
|
|---|
| 728 | 2, 4, 8, 16 and 32).
|
|---|
| 729 |
|
|---|
| 730 | - Bug #1334662: ``int(string, base)`` could deliver a wrong answer
|
|---|
| 731 | when ``base`` was not 2, 4, 8, 10, 16 or 32, and ``string`` represented
|
|---|
| 732 | an integer close to ``sys.maxint``. This was repaired by patch
|
|---|
| 733 | #1335972, which also gives a nice speedup.
|
|---|
| 734 |
|
|---|
| 735 | - Patch #1337051: reduced size of frame objects.
|
|---|
| 736 |
|
|---|
| 737 | - PyErr_NewException now accepts a tuple of base classes as its
|
|---|
| 738 | "base" parameter.
|
|---|
| 739 |
|
|---|
| 740 | - Patch #876206: function call speedup by retaining allocated frame
|
|---|
| 741 | objects.
|
|---|
| 742 |
|
|---|
| 743 | - Bug #1462152: file() now checks more thoroughly for invalid mode
|
|---|
| 744 | strings and removes a possible "U" before passing the mode to the
|
|---|
| 745 | C library function.
|
|---|
| 746 |
|
|---|
| 747 | - Patch #1488312, Fix memory alignment problem on SPARC in unicode
|
|---|
| 748 |
|
|---|
| 749 | - Bug #1487966: Fix SystemError with conditional expression in assignment
|
|---|
| 750 |
|
|---|
| 751 | - WindowsError now has two error code attributes: errno, which carries
|
|---|
| 752 | the error values from errno.h, and winerror, which carries the error
|
|---|
| 753 | values from winerror.h. Previous versions put the winerror.h values
|
|---|
| 754 | (from GetLastError()) into the errno attribute.
|
|---|
| 755 |
|
|---|
| 756 | - Patch #1475845: Raise IndentationError for unexpected indent.
|
|---|
| 757 |
|
|---|
| 758 | - Patch #1479181: split open() and file() from being aliases for each other.
|
|---|
| 759 |
|
|---|
| 760 | - Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()``
|
|---|
| 761 | methods were always silently ignored by dictionaries when comparing keys.
|
|---|
| 762 | They are now passed through (except when using the C API function
|
|---|
| 763 | ``PyDict_GetItem()``, whose semantics did not change).
|
|---|
| 764 |
|
|---|
| 765 | - Bug #1456209: In some obscure cases it was possible for a class with a
|
|---|
| 766 | custom ``__eq__()`` method to confuse dict internals when class instances
|
|---|
| 767 | were used as a dict's keys and the ``__eq__()`` method mutated the dict.
|
|---|
| 768 | No, you don't have any code that did this ;-)
|
|---|
| 769 |
|
|---|
| 770 | Extension Modules
|
|---|
| 771 | -----------------
|
|---|
| 772 |
|
|---|
| 773 | - Bug #1295808: expat symbols should be namespaced in pyexpat
|
|---|
| 774 |
|
|---|
| 775 | - Patch #1462338: Upgrade pyexpat to expat 2.0.0
|
|---|
| 776 |
|
|---|
| 777 | - Change binascii.hexlify to accept a read-only buffer instead of only a char
|
|---|
| 778 | buffer and actually follow its documentation.
|
|---|
| 779 |
|
|---|
| 780 | - Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
|
|---|
| 781 |
|
|---|
| 782 | - Patch #1478788 (modified version): The functional extension module has
|
|---|
| 783 | been renamed to _functools and a functools Python wrapper module added.
|
|---|
| 784 | This provides a home for additional function related utilities that are
|
|---|
| 785 | not specifically about functional programming. See PEP 309.
|
|---|
| 786 |
|
|---|
| 787 | - Patch #1493701: performance enhancements for struct module.
|
|---|
| 788 |
|
|---|
| 789 | - Patch #1490224: time.altzone is now set correctly on Cygwin.
|
|---|
| 790 |
|
|---|
| 791 | - Patch #1435422: zlib's compress and decompress objects now have a
|
|---|
| 792 | copy() method.
|
|---|
| 793 |
|
|---|
| 794 | - Patch #1454481: thread stack size is now tunable at runtime for thread
|
|---|
| 795 | enabled builds on Windows and systems with Posix threads support.
|
|---|
| 796 |
|
|---|
| 797 | - On Win32, os.listdir now supports arbitrarily-long Unicode path names
|
|---|
| 798 | (up to the system limit of 32K characters).
|
|---|
| 799 |
|
|---|
| 800 | - Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,utime}.
|
|---|
| 801 | As a result, these functions now raise WindowsError instead of OSError.
|
|---|
| 802 |
|
|---|
| 803 | - ``time.clock()`` on Win64 should use the high-performance Windows
|
|---|
| 804 | ``QueryPerformanceCounter()`` now (as was already the case on 32-bit
|
|---|
| 805 | Windows platforms).
|
|---|
| 806 |
|
|---|
| 807 | - Calling Tk_Init twice is refused if the first call failed as that
|
|---|
| 808 | may deadlock.
|
|---|
| 809 |
|
|---|
| 810 | - bsddb: added the DB_ARCH_REMOVE flag and fixed db.DBEnv.log_archive() to
|
|---|
| 811 | accept it without potentially using an uninitialized pointer.
|
|---|
| 812 |
|
|---|
| 813 | - bsddb: added support for the DBEnv.log_stat() and DBEnv.lsn_reset() methods
|
|---|
| 814 | assuming BerkeleyDB >= 4.0 and 4.4 respectively. [pybsddb project SF
|
|---|
| 815 | patch numbers 1494885 and 1494902]
|
|---|
| 816 |
|
|---|
| 817 | - bsddb: added an interface for the BerkeleyDB >= 4.3 DBSequence class.
|
|---|
| 818 | [pybsddb project SF patch number 1466734]
|
|---|
| 819 |
|
|---|
| 820 | - bsddb: fix DBCursor.pget() bug with keyword argument names when no data
|
|---|
| 821 | parameter is supplied. [SF pybsddb bug #1477863]
|
|---|
| 822 |
|
|---|
| 823 | - bsddb: the __len__ method of a DB object has been fixed to return correct
|
|---|
| 824 | results. It could previously incorrectly return 0 in some cases.
|
|---|
| 825 | Fixes SF bug 1493322 (pybsddb bug 1184012).
|
|---|
| 826 |
|
|---|
| 827 | - bsddb: the bsddb.dbtables Modify method now raises the proper error and
|
|---|
| 828 | aborts the db transaction safely when a modifier callback fails.
|
|---|
| 829 | Fixes SF python patch/bug #1408584.
|
|---|
| 830 |
|
|---|
| 831 | - bsddb: multithreaded DB access using the simple bsddb module interface
|
|---|
| 832 | now works reliably. It has been updated to use automatic BerkeleyDB
|
|---|
| 833 | deadlock detection and the bsddb.dbutils.DeadlockWrap wrapper to retry
|
|---|
| 834 | database calls that would previously deadlock. [SF python bug #775414]
|
|---|
| 835 |
|
|---|
| 836 | - Patch #1446489: add support for the ZIP64 extensions to zipfile.
|
|---|
| 837 |
|
|---|
| 838 | - Patch #1506645: add Python wrappers for the curses functions
|
|---|
| 839 | is_term_resized, resize_term and resizeterm.
|
|---|
| 840 |
|
|---|
| 841 | Library
|
|---|
| 842 | -------
|
|---|
| 843 |
|
|---|
| 844 | - Patch #815924: Restore ability to pass type= and icon= in tkMessageBox
|
|---|
| 845 | functions.
|
|---|
| 846 |
|
|---|
| 847 | - Patch #812986: Update turtle output even if not tracing.
|
|---|
| 848 |
|
|---|
| 849 | - Patch #1494750: Destroy master after deleting children in
|
|---|
| 850 | Tkinter.BaseWidget.
|
|---|
| 851 |
|
|---|
| 852 | - Patch #1096231: Add ``default`` argument to Tkinter.Wm.wm_iconbitmap.
|
|---|
| 853 |
|
|---|
| 854 | - Patch #763580: Add name and value arguments to Tkinter variable
|
|---|
| 855 | classes.
|
|---|
| 856 |
|
|---|
| 857 | - Bug #1117556: SimpleHTTPServer now tries to find and use the system's
|
|---|
| 858 | mime.types file for determining MIME types.
|
|---|
| 859 |
|
|---|
| 860 | - Bug #1339007: Shelf objects now don't raise an exception in their
|
|---|
| 861 | __del__ method when initialization failed.
|
|---|
| 862 |
|
|---|
| 863 | - Patch #1455898: The MBCS codec now supports the incremental mode for
|
|---|
| 864 | double-byte encodings.
|
|---|
| 865 |
|
|---|
| 866 | - ``difflib``'s ``SequenceMatcher.get_matching_blocks()`` was changed to
|
|---|
| 867 | guarantee that adjacent triples in the return list always describe
|
|---|
| 868 | non-adjacent blocks. Previously, a pair of matching blocks could end
|
|---|
| 869 | up being described by multiple adjacent triples that formed a partition
|
|---|
| 870 | of the matching pair.
|
|---|
| 871 |
|
|---|
| 872 | - Bug #1498146: fix optparse to handle Unicode strings in option help,
|
|---|
| 873 | description, and epilog.
|
|---|
| 874 |
|
|---|
| 875 | - Bug #1366250: minor optparse documentation error.
|
|---|
| 876 |
|
|---|
| 877 | - Bug #1361643: fix textwrap.dedent() so it handles tabs appropriately;
|
|---|
| 878 | clarify docs.
|
|---|
| 879 |
|
|---|
| 880 | - The wsgiref package has been added to the standard library.
|
|---|
| 881 |
|
|---|
| 882 | - The functions update_wrapper() and wraps() have been added to the functools
|
|---|
| 883 | module. These make it easier to copy relevant metadata from the original
|
|---|
| 884 | function when writing wrapper functions.
|
|---|
| 885 |
|
|---|
| 886 | - The optional ``isprivate`` argument to ``doctest.testmod()``, and the
|
|---|
| 887 | ``doctest.is_private()`` function, both deprecated in 2.4, were removed.
|
|---|
| 888 |
|
|---|
| 889 | - Patch #1359618: Speed up charmap encoder by using a trie structure
|
|---|
| 890 | for lookup.
|
|---|
| 891 |
|
|---|
| 892 | - The functions in the ``pprint`` module now sort dictionaries by key
|
|---|
| 893 | before computing the display. Before 2.5, ``pprint`` sorted a dictionary
|
|---|
| 894 | if and only if its display required more than one line, although that
|
|---|
| 895 | wasn't documented. The new behavior increases predictability; e.g.,
|
|---|
| 896 | using ``pprint.pprint(a_dict)`` in a doctest is now reliable.
|
|---|
| 897 |
|
|---|
| 898 | - Patch #1497027: try HTTP digest auth before basic auth in urllib2
|
|---|
| 899 | (thanks for J. J. Lee).
|
|---|
| 900 |
|
|---|
| 901 | - Patch #1496206: improve urllib2 handling of passwords with respect to
|
|---|
| 902 | default HTTP and HTTPS ports.
|
|---|
| 903 |
|
|---|
| 904 | - Patch #1080727: add "encoding" parameter to doctest.DocFileSuite.
|
|---|
| 905 |
|
|---|
| 906 | - Patch #1281707: speed up gzip.readline.
|
|---|
| 907 |
|
|---|
| 908 | - Patch #1180296: Two new functions were added to the locale module:
|
|---|
| 909 | format_string() to get the effect of "format % items" but locale-aware,
|
|---|
| 910 | and currency() to format a monetary number with currency sign.
|
|---|
| 911 |
|
|---|
| 912 | - Patch #1486962: Several bugs in the turtle Tk demo module were fixed
|
|---|
| 913 | and several features added, such as speed and geometry control.
|
|---|
| 914 |
|
|---|
| 915 | - Patch #1488881: add support for external file objects in bz2 compressed
|
|---|
| 916 | tarfiles.
|
|---|
| 917 |
|
|---|
| 918 | - Patch #721464: pdb.Pdb instances can now be given explicit stdin and
|
|---|
| 919 | stdout arguments, making it possible to redirect input and output
|
|---|
| 920 | for remote debugging.
|
|---|
| 921 |
|
|---|
| 922 | - Patch #1484695: Update the tarfile module to version 0.8. This fixes
|
|---|
| 923 | a couple of issues, notably handling of long file names using the
|
|---|
| 924 | GNU LONGNAME extension.
|
|---|
| 925 |
|
|---|
| 926 | - Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a
|
|---|
| 927 | new flag when ``name`` is already the name of an option flag.
|
|---|
| 928 |
|
|---|
| 929 | - Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler
|
|---|
| 930 | package.
|
|---|
| 931 |
|
|---|
| 932 | - Patch #1472854: make the rlcompleter.Completer class usable on non-
|
|---|
| 933 | UNIX platforms.
|
|---|
| 934 |
|
|---|
| 935 | - Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
|
|---|
| 936 |
|
|---|
| 937 | - Bug #1472827: correctly escape newlines and tabs in attribute values in
|
|---|
| 938 | the saxutils.XMLGenerator class.
|
|---|
| 939 |
|
|---|
| 940 |
|
|---|
| 941 | Build
|
|---|
| 942 | -----
|
|---|
| 943 |
|
|---|
| 944 | - Bug #1502728: Correctly link against librt library on HP-UX.
|
|---|
| 945 |
|
|---|
| 946 | - OpenBSD 3.9 is supported now.
|
|---|
| 947 |
|
|---|
| 948 | - Patch #1492356: Port to Windows CE.
|
|---|
| 949 |
|
|---|
| 950 | - Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
|
|---|
| 951 |
|
|---|
| 952 | - Patch #1471883: Add --enable-universalsdk.
|
|---|
| 953 |
|
|---|
| 954 | C API
|
|---|
| 955 | -----
|
|---|
| 956 |
|
|---|
| 957 | Tests
|
|---|
| 958 | -----
|
|---|
| 959 |
|
|---|
| 960 | Tools
|
|---|
| 961 | -----
|
|---|
| 962 |
|
|---|
| 963 | Documentation
|
|---|
| 964 | -------------
|
|---|
| 965 |
|
|---|
| 966 |
|
|---|
| 967 |
|
|---|
| 968 | What's New in Python 2.5 alpha 2?
|
|---|
| 969 | =================================
|
|---|
| 970 |
|
|---|
| 971 | *Release date: 27-APR-2006*
|
|---|
| 972 |
|
|---|
| 973 | Core and builtins
|
|---|
| 974 | -----------------
|
|---|
| 975 |
|
|---|
| 976 | - Bug #1465834: 'bdist_wininst preinstall script support' was fixed
|
|---|
| 977 | by converting these apis from macros into exported functions again:
|
|---|
| 978 |
|
|---|
| 979 | PyParser_SimpleParseFile PyParser_SimpleParseString PyRun_AnyFile
|
|---|
| 980 | PyRun_AnyFileEx PyRun_AnyFileFlags PyRun_File PyRun_FileEx
|
|---|
| 981 | PyRun_FileFlags PyRun_InteractiveLoop PyRun_InteractiveOne
|
|---|
| 982 | PyRun_SimpleFile PyRun_SimpleFileEx PyRun_SimpleString
|
|---|
| 983 | PyRun_String Py_CompileString
|
|---|
| 984 |
|
|---|
| 985 | - Under COUNT_ALLOCS, types are not necessarily immortal anymore.
|
|---|
| 986 |
|
|---|
| 987 | - All uses of PyStructSequence_InitType have been changed to initialize
|
|---|
| 988 | the type objects only once, even if the interpreter is initialized
|
|---|
| 989 | multiple times.
|
|---|
| 990 |
|
|---|
| 991 | - Bug #1454485, array.array('u') could crash the interpreter. This was
|
|---|
| 992 | due to PyArgs_ParseTuple(args, 'u#', ...) trying to convert buffers (strings)
|
|---|
| 993 | to unicode when it didn't make sense. 'u#' now requires a unicode string.
|
|---|
| 994 |
|
|---|
| 995 | - Py_UNICODE is unsigned. It was always documented as unsigned, but
|
|---|
| 996 | due to a bug had a signed value in previous versions.
|
|---|
| 997 |
|
|---|
| 998 | - Patch #837242: ``id()`` of any Python object always gives a positive
|
|---|
| 999 | number now, which might be a long integer. ``PyLong_FromVoidPtr`` and
|
|---|
| 1000 | ``PyLong_AsVoidPtr`` have been changed accordingly. Note that it has
|
|---|
| 1001 | never been correct to implement a ``__hash()__`` method that returns the
|
|---|
| 1002 | ``id()`` of an object:
|
|---|
| 1003 |
|
|---|
| 1004 | def __hash__(self):
|
|---|
| 1005 | return id(self) # WRONG
|
|---|
| 1006 |
|
|---|
| 1007 | because a hash result must be a (short) Python int but it was always
|
|---|
| 1008 | possible for ``id()`` to return a Python long. However, because ``id()``
|
|---|
| 1009 | could return negative values before, on a 32-bit box an ``id()`` result
|
|---|
| 1010 | was always usable as a hash value before this patch. That's no longer
|
|---|
| 1011 | necessarily so.
|
|---|
| 1012 |
|
|---|
| 1013 | - Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
|
|---|
| 1014 | to load extension modules and now provides the dl module. As a result,
|
|---|
| 1015 | sys.setdlopenflags() now works correctly on these systems. (SF patch
|
|---|
| 1016 | #1454844)
|
|---|
| 1017 |
|
|---|
| 1018 | - Patch #1463867: enhanced garbage collection to allow cleanup of cycles
|
|---|
| 1019 | involving generators that have paused outside of any ``try`` or ``with``
|
|---|
| 1020 | blocks. (In 2.5a1, a paused generator that was part of a reference
|
|---|
| 1021 | cycle could not be garbage collected, regardless of whether it was
|
|---|
| 1022 | paused in a ``try`` or ``with`` block.)
|
|---|
| 1023 |
|
|---|
| 1024 | Extension Modules
|
|---|
| 1025 | -----------------
|
|---|
| 1026 |
|
|---|
| 1027 | - Patch #1191065: Fix preprocessor problems on systems where recvfrom
|
|---|
| 1028 | is a macro.
|
|---|
| 1029 |
|
|---|
| 1030 | - Bug #1467952: os.listdir() now correctly raises an error if readdir()
|
|---|
| 1031 | fails with an error condition.
|
|---|
| 1032 |
|
|---|
| 1033 | - Fixed bsddb.db.DBError derived exceptions so they can be unpickled.
|
|---|
| 1034 |
|
|---|
| 1035 | - Bug #1117761: bsddb.*open() no longer raises an exception when using
|
|---|
| 1036 | the cachesize parameter.
|
|---|
| 1037 |
|
|---|
| 1038 | - Bug #1149413: bsddb.*open() no longer raises an exception when using
|
|---|
| 1039 | a temporary db (file=None) with the 'n' flag to truncate on open.
|
|---|
| 1040 |
|
|---|
| 1041 | - Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3
|
|---|
| 1042 | as older versions cause excessive test failures.
|
|---|
| 1043 |
|
|---|
| 1044 | - Patch #1062014: AF_UNIX sockets under Linux have a special
|
|---|
| 1045 | abstract namespace that is now fully supported.
|
|---|
| 1046 |
|
|---|
| 1047 | Library
|
|---|
| 1048 | -------
|
|---|
| 1049 |
|
|---|
| 1050 | - Bug #1223937: subprocess.CalledProcessError reports the exit status
|
|---|
| 1051 | of the process using the returncode attribute, instead of
|
|---|
| 1052 | abusing errno.
|
|---|
| 1053 |
|
|---|
| 1054 | - Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes
|
|---|
| 1055 | a doctest to be skipped (the code is not run, and the expected output
|
|---|
| 1056 | or exception is ignored).
|
|---|
| 1057 |
|
|---|
| 1058 | - Fixed contextlib.nested to cope with exceptions being raised and
|
|---|
| 1059 | caught inside exit handlers.
|
|---|
| 1060 |
|
|---|
| 1061 | - Updated optparse module to Optik 1.5.1 (allow numeric constants in
|
|---|
| 1062 | hex, octal, or binary; add ``append_const`` action; keep going if
|
|---|
| 1063 | gettext cannot be imported; added ``OptionParser.destroy()`` method;
|
|---|
| 1064 | added ``epilog`` for better help generation).
|
|---|
| 1065 |
|
|---|
| 1066 | - Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when
|
|---|
| 1067 | called from a thread spawned as a side effect of importing a module.
|
|---|
| 1068 |
|
|---|
| 1069 | - The pydoc module now supports documenting packages contained in
|
|---|
| 1070 | .zip or .egg files.
|
|---|
| 1071 |
|
|---|
| 1072 | - The pkgutil module now has several new utility functions, such
|
|---|
| 1073 | as ``walk_packages()`` to support working with packages that are either
|
|---|
| 1074 | in the filesystem or zip files.
|
|---|
| 1075 |
|
|---|
| 1076 | - The mailbox module can now modify and delete messages from
|
|---|
| 1077 | mailboxes, in addition to simply reading them. Thanks to Gregory
|
|---|
| 1078 | K. Johnson for writing the code, and to the 2005 Google Summer of
|
|---|
| 1079 | Code for funding his work.
|
|---|
| 1080 |
|
|---|
| 1081 | - The ``__del__`` method of class ``local`` in module ``_threading_local``
|
|---|
| 1082 | returned before accomplishing any of its intended cleanup.
|
|---|
| 1083 |
|
|---|
| 1084 | - Patch #790710: Add breakpoint command lists in pdb.
|
|---|
| 1085 |
|
|---|
| 1086 | - Patch #1063914: Add Tkinter.Misc.clipboard_get().
|
|---|
| 1087 |
|
|---|
| 1088 | - Patch #1191700: Adjust column alignment in bdb breakpoint lists.
|
|---|
| 1089 |
|
|---|
| 1090 | - SimpleXMLRPCServer relied on the fcntl module, which is unavailable on
|
|---|
| 1091 | Windows. Bug #1469163.
|
|---|
| 1092 |
|
|---|
| 1093 | - The warnings, linecache, inspect, traceback, site, and doctest modules
|
|---|
| 1094 | were updated to work correctly with modules imported from zipfiles or
|
|---|
| 1095 | via other PEP 302 __loader__ objects.
|
|---|
| 1096 |
|
|---|
| 1097 | - Patch #1467770: Reduce usage of subprocess._active to processes which
|
|---|
| 1098 | the application hasn't waited on.
|
|---|
| 1099 |
|
|---|
| 1100 | - Patch #1462222: Fix Tix.Grid.
|
|---|
| 1101 |
|
|---|
| 1102 | - Fix exception when doing glob.glob('anything*/')
|
|---|
| 1103 |
|
|---|
| 1104 | - The pstats.Stats class accepts an optional stream keyword argument to
|
|---|
| 1105 | direct output to an alternate file-like object.
|
|---|
| 1106 |
|
|---|
| 1107 | Build
|
|---|
| 1108 | -----
|
|---|
| 1109 |
|
|---|
| 1110 | - The Makefile now has a reindent target, which runs reindent.py on
|
|---|
| 1111 | the library.
|
|---|
| 1112 |
|
|---|
| 1113 | - Patch #1470875: Building Python with MS Free Compiler
|
|---|
| 1114 |
|
|---|
| 1115 | - Patch #1161914: Add a python-config script.
|
|---|
| 1116 |
|
|---|
| 1117 | - Patch #1324762:Remove ccpython.cc; replace --with-cxx with
|
|---|
| 1118 | --with-cxx-main. Link with C++ compiler only if --with-cxx-main was
|
|---|
| 1119 | specified. (Can be overridden by explicitly setting LINKCC.) Decouple
|
|---|
| 1120 | CXX from --with-cxx-main, see description in README.
|
|---|
| 1121 |
|
|---|
| 1122 | - Patch #1429775: Link extension modules with the shared libpython.
|
|---|
| 1123 |
|
|---|
| 1124 | - Fixed a libffi build problem on MIPS systems.
|
|---|
| 1125 |
|
|---|
| 1126 | - ``PyString_FromFormat``, ``PyErr_Format``, and ``PyString_FromFormatV``
|
|---|
| 1127 | now accept formats "%u" for unsigned ints, "%lu" for unsigned longs,
|
|---|
| 1128 | and "%zu" for unsigned integers of type ``size_t``.
|
|---|
| 1129 |
|
|---|
| 1130 | Tests
|
|---|
| 1131 | -----
|
|---|
| 1132 |
|
|---|
| 1133 | - test_contextlib now checks contextlib.nested can cope with exceptions
|
|---|
| 1134 | being raised and caught inside exit handlers.
|
|---|
| 1135 |
|
|---|
| 1136 | - test_cmd_line now checks operation of the -m and -c command switches
|
|---|
| 1137 |
|
|---|
| 1138 | - The test_contextlib test in 2.5a1 wasn't actually run unless you ran
|
|---|
| 1139 | it separately and by hand. It also wasn't cleaning up its changes to
|
|---|
| 1140 | the current Decimal context.
|
|---|
| 1141 |
|
|---|
| 1142 | - regrtest.py now has a -M option to run tests that test the new limits of
|
|---|
| 1143 | containers, on 64-bit architectures. Running these tests is only sensible
|
|---|
| 1144 | on 64-bit machines with more than two gigabytes of memory. The argument
|
|---|
| 1145 | passed is the maximum amount of memory for the tests to use.
|
|---|
| 1146 |
|
|---|
| 1147 | Tools
|
|---|
| 1148 | -----
|
|---|
| 1149 |
|
|---|
| 1150 | - Added the Python benchmark suite pybench to the Tools/ directory;
|
|---|
| 1151 | contributed by Marc-Andre Lemburg.
|
|---|
| 1152 |
|
|---|
| 1153 | Documentation
|
|---|
| 1154 | -------------
|
|---|
| 1155 |
|
|---|
| 1156 | - Patch #1473132: Improve docs for ``tp_clear`` and ``tp_traverse``.
|
|---|
| 1157 |
|
|---|
| 1158 | - PEP 343: Added Context Types section to the library reference
|
|---|
| 1159 | and attempted to bring other PEP 343 related documentation into
|
|---|
| 1160 | line with the implementation and/or python-dev discussions.
|
|---|
| 1161 |
|
|---|
| 1162 | - Bug #1337990: clarified that ``doctest`` does not support examples
|
|---|
| 1163 | requiring both expected output and an exception.
|
|---|
| 1164 |
|
|---|
| 1165 |
|
|---|
| 1166 | What's New in Python 2.5 alpha 1?
|
|---|
| 1167 | =================================
|
|---|
| 1168 |
|
|---|
| 1169 | *Release date: 05-APR-2006*
|
|---|
| 1170 |
|
|---|
| 1171 | Core and builtins
|
|---|
| 1172 | -----------------
|
|---|
| 1173 |
|
|---|
| 1174 | - PEP 338: -m command line switch now delegates to runpy.run_module
|
|---|
| 1175 | allowing it to support modules in packages and zipfiles
|
|---|
| 1176 |
|
|---|
| 1177 | - On Windows, .DLL is not an accepted file name extension for
|
|---|
| 1178 | extension modules anymore; extensions are only found if they
|
|---|
| 1179 | end in .PYD.
|
|---|
| 1180 |
|
|---|
| 1181 | - Bug #1421664: sys.stderr.encoding is now set to the same value as
|
|---|
| 1182 | sys.stdout.encoding.
|
|---|
| 1183 |
|
|---|
| 1184 | - __import__ accepts keyword arguments.
|
|---|
| 1185 |
|
|---|
| 1186 | - Patch #1460496: round() now accepts keyword arguments.
|
|---|
| 1187 |
|
|---|
| 1188 | - Fixed bug #1459029 - unicode reprs were double-escaped.
|
|---|
| 1189 |
|
|---|
| 1190 | - Patch #1396919: The system scope threads are reenabled on FreeBSD
|
|---|
| 1191 | 5.4 and later versions.
|
|---|
| 1192 |
|
|---|
| 1193 | - Bug #1115379: Compiling a Unicode string with an encoding declaration
|
|---|
| 1194 | now gives a SyntaxError.
|
|---|
| 1195 |
|
|---|
| 1196 | - Previously, Python code had no easy way to access the contents of a
|
|---|
| 1197 | cell object. Now, a ``cell_contents`` attribute has been added
|
|---|
| 1198 | (closes patch #1170323).
|
|---|
| 1199 |
|
|---|
| 1200 | - Patch #1123430: Python's small-object allocator now returns an arena to
|
|---|
| 1201 | the system ``free()`` when all memory within an arena becomes unused
|
|---|
| 1202 | again. Prior to Python 2.5, arenas (256KB chunks of memory) were never
|
|---|
| 1203 | freed. Some applications will see a drop in virtual memory size now,
|
|---|
| 1204 | especially long-running applications that, from time to time, temporarily
|
|---|
| 1205 | use a large number of small objects. Note that when Python returns an
|
|---|
| 1206 | arena to the platform C's ``free()``, there's no guarantee that the
|
|---|
| 1207 | platform C library will in turn return that memory to the operating system.
|
|---|
| 1208 | The effect of the patch is to stop making that impossible, and in tests it
|
|---|
| 1209 | appears to be effective at least on Microsoft C and gcc-based systems.
|
|---|
| 1210 | Thanks to Evan Jones for hard work and patience.
|
|---|
| 1211 |
|
|---|
| 1212 | - Patch #1434038: property() now uses the getter's docstring if there is
|
|---|
| 1213 | no "doc" argument given. This makes it possible to legitimately use
|
|---|
| 1214 | property() as a decorator to produce a read-only property.
|
|---|
| 1215 |
|
|---|
| 1216 | - PEP 357, patch 1436368: add an __index__ method to int/long and a matching
|
|---|
| 1217 | nb_index slot to the PyNumberMethods struct. The slot is consulted instead
|
|---|
| 1218 | of requiring an int or long in slicing and a few other contexts, enabling
|
|---|
| 1219 | other objects (e.g. Numeric Python's integers) to be used as slice indices.
|
|---|
| 1220 |
|
|---|
| 1221 | - Fixed various bugs reported by Coverity's Prevent tool.
|
|---|
| 1222 |
|
|---|
| 1223 | - PEP 352, patch #1104669: Make exceptions new-style objects. Introduced the
|
|---|
| 1224 | new exception base class, BaseException, which has a new message attribute.
|
|---|
| 1225 | KeyboardInterrupt and SystemExit to directly inherit from BaseException now.
|
|---|
| 1226 | Raising a string exception now raises a DeprecationWarning.
|
|---|
| 1227 |
|
|---|
| 1228 | - Patch #1438387, PEP 328: relative and absolute imports. Imports can now be
|
|---|
| 1229 | explicitly relative, using 'from .module import name' to mean 'from the same
|
|---|
| 1230 | package as this module is in. Imports without dots still default to the
|
|---|
| 1231 | old relative-then-absolute, unless 'from __future__ import
|
|---|
| 1232 | absolute_import' is used.
|
|---|
| 1233 |
|
|---|
| 1234 | - Properly check if 'warnings' raises an exception (usually when a filter set
|
|---|
| 1235 | to "error" is triggered) when raising a warning for raising string
|
|---|
| 1236 | exceptions.
|
|---|
| 1237 |
|
|---|
| 1238 | - CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default.
|
|---|
| 1239 | The name was removed from Include/code.h.
|
|---|
| 1240 |
|
|---|
| 1241 | - PEP 308: conditional expressions were added: (x if cond else y).
|
|---|
| 1242 |
|
|---|
| 1243 | - Patch 1433928:
|
|---|
| 1244 | - The copy module now "copies" function objects (as atomic objects).
|
|---|
| 1245 | - dict.__getitem__ now looks for a __missing__ hook before raising
|
|---|
| 1246 | KeyError.
|
|---|
| 1247 |
|
|---|
| 1248 | - PEP 343: with statement implemented. Needs ``from __future__ import
|
|---|
| 1249 | with_statement``. Use of 'with' as a variable will generate a warning.
|
|---|
| 1250 | Use of 'as' as a variable will also generate a warning (unless it's
|
|---|
| 1251 | part of an import statement).
|
|---|
| 1252 | The following objects have __context__ methods:
|
|---|
| 1253 | - The built-in file type.
|
|---|
| 1254 | - The thread.LockType type.
|
|---|
| 1255 | - The following types defined by the threading module:
|
|---|
| 1256 | Lock, RLock, Condition, Semaphore, BoundedSemaphore.
|
|---|
| 1257 | - The decimal.Context class.
|
|---|
| 1258 |
|
|---|
| 1259 | - Fix the encodings package codec search function to only search
|
|---|
| 1260 | inside its own package. Fixes problem reported in patch #1433198.
|
|---|
| 1261 |
|
|---|
| 1262 | Note: Codec packages should implement and register their own
|
|---|
| 1263 | codec search function. PEP 100 has the details.
|
|---|
| 1264 |
|
|---|
| 1265 | - PEP 353: Using ``Py_ssize_t`` as the index type.
|
|---|
| 1266 |
|
|---|
| 1267 | - ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging
|
|---|
| 1268 | info to each allocated block, since the ``Py_ssize_t`` changes (PEP 353)
|
|---|
| 1269 | now allow Python to make use of memory blocks exceeding 2**32 bytes for
|
|---|
| 1270 | some purposes on 64-bit boxes. A ``PYMALLOC_DEBUG`` build was limited
|
|---|
| 1271 | to 4-byte allocations before.
|
|---|
| 1272 |
|
|---|
| 1273 | - Patch #1400181, fix unicode string formatting to not use the locale.
|
|---|
| 1274 | This is how string objects work. u'%f' could use , instead of .
|
|---|
| 1275 | for the decimal point. Now both strings and unicode always use periods.
|
|---|
| 1276 |
|
|---|
| 1277 | - Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
|
|---|
| 1278 | configure would break checking curses.h.
|
|---|
| 1279 |
|
|---|
| 1280 | - Bug #959576: The pwd module is now builtin. This allows Python to be
|
|---|
| 1281 | built on UNIX platforms without $HOME set.
|
|---|
| 1282 |
|
|---|
| 1283 | - Bug #1072182, fix some potential problems if characters are signed.
|
|---|
| 1284 |
|
|---|
| 1285 | - Bug #889500, fix line number on SyntaxWarning for global declarations.
|
|---|
| 1286 |
|
|---|
| 1287 | - Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
|
|---|
| 1288 |
|
|---|
| 1289 | - Support for converting hex strings to floats no longer works.
|
|---|
| 1290 | This was not portable. float('0x3') now raises a ValueError.
|
|---|
| 1291 |
|
|---|
| 1292 | - Patch #1382163: Expose Subversion revision number to Python. New C API
|
|---|
| 1293 | function Py_GetBuildNumber(). New attribute sys.subversion. Build number
|
|---|
| 1294 | is now displayed in interactive prompt banner.
|
|---|
| 1295 |
|
|---|
| 1296 | - Implementation of PEP 341 - Unification of try/except and try/finally.
|
|---|
| 1297 | "except" clauses can now be written together with a "finally" clause in
|
|---|
| 1298 | one try statement instead of two nested ones. Patch #1355913.
|
|---|
| 1299 |
|
|---|
| 1300 | - Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec
|
|---|
| 1301 | now encodes backslash correctly.
|
|---|
| 1302 |
|
|---|
| 1303 | - Patch #1350409: Work around signal handling bug in Visual Studio 2005.
|
|---|
| 1304 |
|
|---|
| 1305 | - Bug #1281408: Py_BuildValue now works correctly even with unsigned longs
|
|---|
| 1306 | and long longs.
|
|---|
| 1307 |
|
|---|
| 1308 | - SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
|
|---|
| 1309 | It was possible for dlerror() to return a NULL pointer, so
|
|---|
| 1310 | it will now use a default error message in this case.
|
|---|
| 1311 |
|
|---|
| 1312 | - Replaced most Unicode charmap codecs with new ones using the
|
|---|
| 1313 | new Unicode translate string feature in the builtin charmap
|
|---|
| 1314 | codec; the codecs were created from the mapping tables available
|
|---|
| 1315 | at ftp.unicode.org and contain a few updates (e.g. the Mac OS
|
|---|
| 1316 | encodings now include a mapping for the Apple logo)
|
|---|
| 1317 |
|
|---|
| 1318 | - Added a few more codecs for Mac OS encodings
|
|---|
| 1319 |
|
|---|
| 1320 | - Sped up some Unicode operations.
|
|---|
| 1321 |
|
|---|
| 1322 | - A new AST parser implementation was completed. The abstract
|
|---|
| 1323 | syntax tree is available for read-only (non-compile) access
|
|---|
| 1324 | to Python code; an _ast module was added.
|
|---|
| 1325 |
|
|---|
| 1326 | - SF bug #1167751: fix incorrect code being produced for generator expressions.
|
|---|
| 1327 | The following code now raises a SyntaxError: foo(a = i for i in range(10))
|
|---|
| 1328 |
|
|---|
| 1329 | - SF Bug #976608: fix SystemError when mtime of an imported file is -1.
|
|---|
| 1330 |
|
|---|
| 1331 | - SF Bug #887946: fix segfault when redirecting stdin from a directory.
|
|---|
| 1332 | Provide a warning when a directory is passed on the command line.
|
|---|
| 1333 |
|
|---|
| 1334 | - Fix segfault with invalid coding.
|
|---|
| 1335 |
|
|---|
| 1336 | - SF bug #772896: unknown encoding results in MemoryError.
|
|---|
| 1337 |
|
|---|
| 1338 | - All iterators now have a Boolean value of True. Formerly, some iterators
|
|---|
| 1339 | supported a __len__() method which evaluated to False when the iterator
|
|---|
| 1340 | was empty.
|
|---|
| 1341 |
|
|---|
| 1342 | - On 64-bit platforms, when __len__() returns a value that cannot be
|
|---|
| 1343 | represented as a C int, raise OverflowError.
|
|---|
| 1344 |
|
|---|
| 1345 | - test__locale is skipped on OS X < 10.4 (only partial locale support is
|
|---|
| 1346 | present).
|
|---|
| 1347 |
|
|---|
| 1348 | - SF bug #893549: parsing keyword arguments was broken with a few format
|
|---|
| 1349 | codes.
|
|---|
| 1350 |
|
|---|
| 1351 | - Changes donated by Elemental Security to make it work on AIX 5.3
|
|---|
| 1352 | with IBM's 64-bit compiler (SF patch #1284289). This also closes SF
|
|---|
| 1353 | bug #105470: test_pwd fails on 64bit system (Opteron).
|
|---|
| 1354 |
|
|---|
| 1355 | - Changes donated by Elemental Security to make it work on HP-UX 11 on
|
|---|
| 1356 | Itanium2 with HP's 64-bit compiler (SF patch #1225212).
|
|---|
| 1357 |
|
|---|
| 1358 | - Disallow keyword arguments for type constructors that don't use them
|
|---|
| 1359 | (fixes bug #1119418).
|
|---|
| 1360 |
|
|---|
| 1361 | - Forward UnicodeDecodeError into SyntaxError for source encoding errors.
|
|---|
| 1362 |
|
|---|
| 1363 | - SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
|
|---|
| 1364 | exceptions that cause a function to exit.
|
|---|
| 1365 |
|
|---|
| 1366 | - The implementation of set() and frozenset() was revised to use its
|
|---|
| 1367 | own internal data structure. Memory consumption is reduced by 1/3
|
|---|
| 1368 | and there are modest speed-ups as well. The API is unchanged.
|
|---|
| 1369 |
|
|---|
| 1370 | - SF bug #1238681: freed pointer is used in longobject.c:long_pow().
|
|---|
| 1371 |
|
|---|
| 1372 | - SF bug #1229429: PyObject_CallMethod failed to decrement some
|
|---|
| 1373 | reference counts in some error exit cases.
|
|---|
| 1374 |
|
|---|
| 1375 | - SF bug #1185883: Python's small-object memory allocator took over
|
|---|
| 1376 | a block managed by the platform C library whenever a realloc specified
|
|---|
| 1377 | a small new size. However, there's no portable way to know then how
|
|---|
| 1378 | much of the address space following the pointer is valid, so there's no
|
|---|
| 1379 | portable way to copy data from the C-managed block into Python's
|
|---|
| 1380 | small-object space without risking a memory fault. Python's small-object
|
|---|
| 1381 | realloc now leaves such blocks under the control of the platform C
|
|---|
| 1382 | realloc.
|
|---|
| 1383 |
|
|---|
| 1384 | - SF bug #1232517: An overflow error was not detected properly when
|
|---|
| 1385 | attempting to convert a large float to an int in os.utime().
|
|---|
| 1386 |
|
|---|
| 1387 | - SF bug #1224347: hex longs now print with lowercase letters just
|
|---|
| 1388 | like their int counterparts.
|
|---|
| 1389 |
|
|---|
| 1390 | - SF bug #1163563: the original fix for bug #1010677 ("thread Module
|
|---|
| 1391 | Breaks PyGILState_Ensure()") broke badly in the case of multiple
|
|---|
| 1392 | interpreter states; back out that fix and do a better job (see
|
|---|
| 1393 | http://mail.python.org/pipermail/python-dev/2005-June/054258.html
|
|---|
| 1394 | for a longer write-up of the problem).
|
|---|
| 1395 |
|
|---|
| 1396 | - SF patch #1180995: marshal now uses a binary format by default when
|
|---|
| 1397 | serializing floats.
|
|---|
| 1398 |
|
|---|
| 1399 | - SF patch #1181301: on platforms that appear to use IEEE 754 floats,
|
|---|
| 1400 | the routines that promise to produce IEEE 754 binary representations
|
|---|
| 1401 | of floats now simply copy bytes around.
|
|---|
| 1402 |
|
|---|
| 1403 | - bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP
|
|---|
| 1404 | 278.
|
|---|
| 1405 |
|
|---|
| 1406 | - patch #1109424: int, long, float, complex, and unicode now check for the
|
|---|
| 1407 | proper magic slot for type conversions when subclassed. Previously the
|
|---|
| 1408 | magic slot was ignored during conversion. Semantics now match the way
|
|---|
| 1409 | subclasses of str always behaved. int/long/float, conversion of an instance
|
|---|
| 1410 | to the base class has been moved to the proper nb_* magic slot and out of
|
|---|
| 1411 | PyNumber_*().
|
|---|
| 1412 | Thanks Walter Dᅵrwald.
|
|---|
| 1413 |
|
|---|
| 1414 | - Descriptors defined in C with a PyGetSetDef structure, where the setter is
|
|---|
| 1415 | NULL, now raise an AttributeError when attempting to set or delete the
|
|---|
| 1416 | attribute. Previously a TypeError was raised, but this was inconsistent
|
|---|
| 1417 | with the equivalent pure-Python implementation.
|
|---|
| 1418 |
|
|---|
| 1419 | - It is now safe to call PyGILState_Release() before
|
|---|
| 1420 | PyEval_InitThreads() (note that if there is reason to believe there
|
|---|
| 1421 | are multiple threads around you still must call PyEval_InitThreads()
|
|---|
| 1422 | before using the Python API; this fix is for extension modules that
|
|---|
| 1423 | have no way of knowing if Python is multi-threaded yet).
|
|---|
| 1424 |
|
|---|
| 1425 | - Typing Ctrl-C whilst raw_input() was waiting in a build with threads
|
|---|
| 1426 | disabled caused a crash.
|
|---|
| 1427 |
|
|---|
| 1428 | - Bug #1165306: instancemethod_new allowed the creation of a method
|
|---|
| 1429 | with im_class == im_self == NULL, which caused a crash when called.
|
|---|
| 1430 |
|
|---|
| 1431 | - Move exception finalisation later in the shutdown process - this
|
|---|
| 1432 | fixes the crash seen in bug #1165761
|
|---|
| 1433 |
|
|---|
| 1434 | - Added two new builtins, any() and all().
|
|---|
| 1435 |
|
|---|
| 1436 | - Defining a class with empty parentheses is now allowed
|
|---|
| 1437 | (e.g., ``class C(): pass`` is no longer a syntax error).
|
|---|
| 1438 | Patch #1176012 added support to the 'parser' module and 'compiler' package
|
|---|
| 1439 | (thanks to logistix for that added support).
|
|---|
| 1440 |
|
|---|
| 1441 | - Patch #1115086: Support PY_LONGLONG in structmember.
|
|---|
| 1442 |
|
|---|
| 1443 | - Bug #1155938: new style classes did not check that __init__() was
|
|---|
| 1444 | returning None.
|
|---|
| 1445 |
|
|---|
| 1446 | - Patch #802188: Report characters after line continuation character
|
|---|
| 1447 | ('\') with a specific error message.
|
|---|
| 1448 |
|
|---|
| 1449 | - Bug #723201: Raise a TypeError for passing bad objects to 'L' format.
|
|---|
| 1450 |
|
|---|
| 1451 | - Bug #1124295: the __name__ attribute of file objects was
|
|---|
| 1452 | inadvertently made inaccessible in restricted mode.
|
|---|
| 1453 |
|
|---|
| 1454 | - Bug #1074011: closing sys.std{out,err} now causes a flush() and
|
|---|
| 1455 | an ferror() call.
|
|---|
| 1456 |
|
|---|
| 1457 | - min() and max() now support key= arguments with the same meaning as in
|
|---|
| 1458 | list.sort().
|
|---|
| 1459 |
|
|---|
| 1460 | - The peephole optimizer now performs simple constant folding in expressions:
|
|---|
| 1461 | (2+3) --> (5).
|
|---|
| 1462 |
|
|---|
| 1463 | - set and frozenset objects can now be marshalled. SF #1098985.
|
|---|
| 1464 |
|
|---|
| 1465 | - Bug #1077106: Poor argument checking could cause memory corruption
|
|---|
| 1466 | in calls to os.read().
|
|---|
| 1467 |
|
|---|
| 1468 | - The parser did not complain about future statements in illegal
|
|---|
| 1469 | positions. It once again reports a syntax error if a future
|
|---|
| 1470 | statement occurs after anything other than a doc string.
|
|---|
| 1471 |
|
|---|
| 1472 | - Change the %s format specifier for str objects so that it returns a
|
|---|
| 1473 | unicode instance if the argument is not an instance of basestring and
|
|---|
| 1474 | calling __str__ on the argument returns a unicode instance.
|
|---|
| 1475 |
|
|---|
| 1476 | - Patch #1413181: changed ``PyThreadState_Delete()`` to forget about the
|
|---|
| 1477 | current thread state when the auto-GIL-state machinery knows about
|
|---|
| 1478 | it (since the thread state is being deleted, continuing to remember it
|
|---|
| 1479 | can't help, but can hurt if another thread happens to get created with
|
|---|
| 1480 | the same thread id).
|
|---|
| 1481 |
|
|---|
| 1482 | Extension Modules
|
|---|
| 1483 | -----------------
|
|---|
| 1484 |
|
|---|
| 1485 | - Patch #1380952: fix SSL objects timing out on consecutive read()s
|
|---|
| 1486 |
|
|---|
| 1487 | - Patch #1309579: wait3 and wait4 were added to the posix module.
|
|---|
| 1488 |
|
|---|
| 1489 | - Patch #1231053: The audioop module now supports encoding/decoding of alaw.
|
|---|
| 1490 | In addition, the existing ulaw code was updated.
|
|---|
| 1491 |
|
|---|
| 1492 | - RFE #567972: Socket objects' family, type and proto properties are
|
|---|
| 1493 | now exposed via new attributes.
|
|---|
| 1494 |
|
|---|
| 1495 | - Everything under lib-old was removed. This includes the following modules:
|
|---|
| 1496 | Para, addpack, cmp, cmpcache, codehack, dircmp, dump, find, fmt, grep,
|
|---|
| 1497 | lockfile, newdir, ni, packmail, poly, rand, statcache, tb, tzparse,
|
|---|
| 1498 | util, whatsound, whrandom, zmod
|
|---|
| 1499 |
|
|---|
| 1500 | - The following modules were removed: regsub, reconvert, regex, regex_syntax.
|
|---|
| 1501 |
|
|---|
| 1502 | - re and sre were swapped, so help(re) provides full help. importing sre
|
|---|
| 1503 | is deprecated. The undocumented re.engine variable no longer exists.
|
|---|
| 1504 |
|
|---|
| 1505 | - Bug #1448490: Fixed a bug that ISO-2022 codecs could not handle
|
|---|
| 1506 | SS2 (single-shift 2) escape sequences correctly.
|
|---|
| 1507 |
|
|---|
| 1508 | - The unicodedata module was updated to the 4.1 version of the Unicode
|
|---|
| 1509 | database. The 3.2 version is still available as unicodedata.db_3_2_0
|
|---|
| 1510 | for applications that require this specific version (such as IDNA).
|
|---|
| 1511 |
|
|---|
| 1512 | - The timing module is no longer built by default. It was deprecated
|
|---|
| 1513 | in PEP 4 in Python 2.0 or earlier.
|
|---|
| 1514 |
|
|---|
| 1515 | - Patch 1433928: Added a new type, defaultdict, to the collections module.
|
|---|
| 1516 | This uses the new __missing__ hook behavior added to dict (see above).
|
|---|
| 1517 |
|
|---|
| 1518 | - Bug #854823: socketmodule now builds on Sun platforms even when
|
|---|
| 1519 | INET_ADDRSTRLEN is not defined.
|
|---|
| 1520 |
|
|---|
| 1521 | - Patch #1393157: os.startfile() now has an optional argument to specify
|
|---|
| 1522 | a "command verb" to invoke on the file.
|
|---|
| 1523 |
|
|---|
| 1524 | - Bug #876637, prevent stack corruption when socket descriptor
|
|---|
| 1525 | is larger than FD_SETSIZE.
|
|---|
| 1526 |
|
|---|
| 1527 | - Patch #1407135, bug #1424041: harmonize mmap behavior of anonymous memory.
|
|---|
| 1528 | mmap.mmap(-1, size) now returns anonymous memory in both Unix and Windows.
|
|---|
| 1529 | mmap.mmap(0, size) should not be used on Windows for anonymous memory.
|
|---|
| 1530 |
|
|---|
| 1531 | - Patch #1422385: The nis module now supports access to domains other
|
|---|
| 1532 | than the system default domain.
|
|---|
| 1533 |
|
|---|
| 1534 | - Use Win32 API to implement os.stat/fstat. As a result, subsecond timestamps
|
|---|
| 1535 | are reported, the limit on path name lengths is removed, and stat reports
|
|---|
| 1536 | WindowsError now (instead of OSError).
|
|---|
| 1537 |
|
|---|
| 1538 | - Add bsddb.db.DBEnv.set_tx_timestamp allowing time based database recovery.
|
|---|
| 1539 |
|
|---|
| 1540 | - Bug #1413192, fix seg fault in bsddb if a transaction was deleted
|
|---|
| 1541 | before the env.
|
|---|
| 1542 |
|
|---|
| 1543 | - Patch #1103116: Basic AF_NETLINK support.
|
|---|
| 1544 |
|
|---|
| 1545 | - Bug #1402308, (possible) segfault when using mmap.mmap(-1, ...)
|
|---|
| 1546 |
|
|---|
| 1547 | - Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints.
|
|---|
| 1548 | Also fix ungetmouse() which did not accept arguments properly.
|
|---|
| 1549 | The code now conforms to the documented signature.
|
|---|
| 1550 |
|
|---|
| 1551 | - Bug #1400115, Fix segfault when calling curses.panel.userptr()
|
|---|
| 1552 | without prior setting of the userptr.
|
|---|
| 1553 |
|
|---|
| 1554 | - Fix 64-bit problems in bsddb.
|
|---|
| 1555 |
|
|---|
| 1556 | - Patch #1365916: fix some unsafe 64-bit mmap methods.
|
|---|
| 1557 |
|
|---|
| 1558 | - Bug #1290333: Added a workaround for cjkcodecs' _codecs_cn build
|
|---|
| 1559 | problem on AIX.
|
|---|
| 1560 |
|
|---|
| 1561 | - Bug #869197: os.setgroups rejects long integer arguments
|
|---|
| 1562 |
|
|---|
| 1563 | - Bug #1346533, select.poll() doesn't raise an error if timeout > sys.maxint
|
|---|
| 1564 |
|
|---|
| 1565 | - Bug #1344508, Fix UNIX mmap leaking file descriptors
|
|---|
| 1566 |
|
|---|
| 1567 | - Patch #1338314, Bug #1336623: fix tarfile so it can extract
|
|---|
| 1568 | REGTYPE directories from tarfiles written by old programs.
|
|---|
| 1569 |
|
|---|
| 1570 | - Patch #1407992, fixes broken bsddb module db associate when using
|
|---|
| 1571 | BerkeleyDB 3.3, 4.0 or 4.1.
|
|---|
| 1572 |
|
|---|
| 1573 | - Get bsddb module to build with BerkeleyDB version 4.4
|
|---|
| 1574 |
|
|---|
| 1575 | - Get bsddb module to build with BerkeleyDB version 3.2
|
|---|
| 1576 |
|
|---|
| 1577 | - Patch #1309009, Fix segfault in pyexpat when the XML document is in latin_1,
|
|---|
| 1578 | but Python incorrectly assumes it is in UTF-8 format
|
|---|
| 1579 |
|
|---|
| 1580 | - Fix parse errors in the readline module when compiling without threads.
|
|---|
| 1581 |
|
|---|
| 1582 | - Patch #1288833: Removed thread lock from socket.getaddrinfo on
|
|---|
| 1583 | FreeBSD 5.3 and later versions which got thread-safe getaddrinfo(3).
|
|---|
| 1584 |
|
|---|
| 1585 | - Patches #1298449 and #1298499: Add some missing checks for error
|
|---|
| 1586 | returns in cStringIO.c.
|
|---|
| 1587 |
|
|---|
| 1588 | - Patch #1297028: fix segfault if call type on MultibyteCodec,
|
|---|
| 1589 | MultibyteStreamReader, or MultibyteStreamWriter
|
|---|
| 1590 |
|
|---|
| 1591 | - Fix memory leak in posix.access().
|
|---|
| 1592 |
|
|---|
| 1593 | - Patch #1213831: Fix typo in unicodedata._getcode.
|
|---|
| 1594 |
|
|---|
| 1595 | - Bug #1007046: os.startfile() did not accept unicode strings encoded in
|
|---|
| 1596 | the file system encoding.
|
|---|
| 1597 |
|
|---|
| 1598 | - Patch #756021: Special-case socket.inet_aton('255.255.255.255') for
|
|---|
| 1599 | platforms that don't have inet_aton().
|
|---|
| 1600 |
|
|---|
| 1601 | - Bug #1215928: Fix bz2.BZ2File.seek() for 64-bit file offsets.
|
|---|
| 1602 |
|
|---|
| 1603 | - Bug #1191043: Fix bz2.BZ2File.(x)readlines for files containing one
|
|---|
| 1604 | line without newlines.
|
|---|
| 1605 |
|
|---|
| 1606 | - Bug #728515: mmap.resize() now resizes the file on Unix as it did
|
|---|
| 1607 | on Windows.
|
|---|
| 1608 |
|
|---|
| 1609 | - Patch #1180695: Add nanosecond stat resolution, and st_gen,
|
|---|
| 1610 | st_birthtime for FreeBSD.
|
|---|
| 1611 |
|
|---|
| 1612 | - Patch #1231069: The fcntl.ioctl function now uses the 'I' code for
|
|---|
| 1613 | the request code argument, which results in more C-like behaviour
|
|---|
| 1614 | for large or negative values.
|
|---|
| 1615 |
|
|---|
| 1616 | - Bug #1234979: For the argument of thread.Lock.acquire, the Windows
|
|---|
| 1617 | implementation treated all integer values except 1 as false.
|
|---|
| 1618 |
|
|---|
| 1619 | - Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
|
|---|
| 1620 |
|
|---|
| 1621 | - Patch #1212117: os.stat().st_flags is now accessible as a attribute
|
|---|
| 1622 | if available on the platform.
|
|---|
| 1623 |
|
|---|
| 1624 | - Patch #1103951: Expose O_SHLOCK and O_EXLOCK in the posix module if
|
|---|
| 1625 | available on the platform.
|
|---|
| 1626 |
|
|---|
| 1627 | - Bug #1166660: The readline module could segfault if hook functions
|
|---|
| 1628 | were set in a different thread than that which called readline.
|
|---|
| 1629 |
|
|---|
| 1630 | - collections.deque objects now support a remove() method.
|
|---|
| 1631 |
|
|---|
| 1632 | - operator.itemgetter() and operator.attrgetter() now support retrieving
|
|---|
| 1633 | multiple fields. This provides direct support for sorting on multiple
|
|---|
| 1634 | keys (primary, secondary, etc).
|
|---|
| 1635 |
|
|---|
| 1636 | - os.access now supports Unicode path names on non-Win32 systems.
|
|---|
| 1637 |
|
|---|
| 1638 | - Patches #925152, #1118602: Avoid reading after the end of the buffer
|
|---|
| 1639 | in pyexpat.GetInputContext.
|
|---|
| 1640 |
|
|---|
| 1641 | - Patches #749830, #1144555: allow UNIX mmap size to default to current
|
|---|
| 1642 | file size.
|
|---|
| 1643 |
|
|---|
| 1644 | - Added functional.partial(). See PEP309.
|
|---|
| 1645 |
|
|---|
| 1646 | - Patch #1093585: raise a ValueError for negative history items in readline.
|
|---|
| 1647 | {remove_history,replace_history}
|
|---|
| 1648 |
|
|---|
| 1649 | - The spwd module has been added, allowing access to the shadow password
|
|---|
| 1650 | database.
|
|---|
| 1651 |
|
|---|
| 1652 | - stat_float_times is now True.
|
|---|
| 1653 |
|
|---|
| 1654 | - array.array objects are now picklable.
|
|---|
| 1655 |
|
|---|
| 1656 | - the cPickle module no longer accepts the deprecated None option in the
|
|---|
| 1657 | args tuple returned by __reduce__().
|
|---|
| 1658 |
|
|---|
| 1659 | - itertools.islice() now accepts None for the start and step arguments.
|
|---|
| 1660 | This allows islice() to work more readily with slices:
|
|---|
| 1661 | islice(s.start, s.stop, s.step)
|
|---|
| 1662 |
|
|---|
| 1663 | - datetime.datetime() now has a strptime class method which can be used to
|
|---|
| 1664 | create datetime object using a string and format.
|
|---|
| 1665 |
|
|---|
| 1666 | - Patch #1117961: Replace the MD5 implementation from RSA Data Security Inc
|
|---|
| 1667 | with the implementation from http://sourceforge.net/projects/libmd5-rfc/.
|
|---|
| 1668 |
|
|---|
| 1669 | Library
|
|---|
| 1670 | -------
|
|---|
| 1671 |
|
|---|
| 1672 | - Patch #1388073: Numerous __-prefixed attributes of unittest.TestCase have
|
|---|
| 1673 | been renamed to have only a single underscore prefix. This was done to
|
|---|
| 1674 | make subclassing easier.
|
|---|
| 1675 |
|
|---|
| 1676 | - PEP 338: new module runpy defines a run_module function to support
|
|---|
| 1677 | executing modules which provide access to source code or a code object
|
|---|
| 1678 | via the PEP 302 import mechanisms.
|
|---|
| 1679 |
|
|---|
| 1680 | - The email module's parsedate_tz function now sets the daylight savings
|
|---|
| 1681 | flag to -1 (unknown) since it can't tell from the date whether it should
|
|---|
| 1682 | be set.
|
|---|
| 1683 |
|
|---|
| 1684 | - Patch #624325: urlparse.urlparse() and urlparse.urlsplit() results
|
|---|
| 1685 | now sport attributes that provide access to the parts of the result.
|
|---|
| 1686 |
|
|---|
| 1687 | - Patch #1462498: sgmllib now handles entity and character references
|
|---|
| 1688 | in attribute values.
|
|---|
| 1689 |
|
|---|
| 1690 | - Added the sqlite3 package. This is based on pysqlite2.1.3, and provides
|
|---|
| 1691 | a DB-API interface in the standard library. You'll need sqlite 3.0.8 or
|
|---|
| 1692 | later to build this - if you have an earlier version, the C extension
|
|---|
| 1693 | module will not be built.
|
|---|
| 1694 |
|
|---|
| 1695 | - Bug #1460340: ``random.sample(dict)`` failed in various ways. Dicts
|
|---|
| 1696 | aren't officially supported here, and trying to use them will probably
|
|---|
| 1697 | raise an exception some day. But dicts have been allowed, and "mostly
|
|---|
| 1698 | worked", so support for them won't go away without warning.
|
|---|
| 1699 |
|
|---|
| 1700 | - Bug #1445068: getpass.getpass() can now be given an explicit stream
|
|---|
| 1701 | argument to specify where to write the prompt.
|
|---|
| 1702 |
|
|---|
| 1703 | - Patch #1462313, bug #1443328: the pickle modules now can handle classes
|
|---|
| 1704 | that have __private names in their __slots__.
|
|---|
| 1705 |
|
|---|
| 1706 | - Bug #1250170: mimetools now handles socket.gethostname() failures gracefully.
|
|---|
| 1707 |
|
|---|
| 1708 | - patch #1457316: "setup.py upload" now supports --identity to select the
|
|---|
| 1709 | key to be used for signing the uploaded code.
|
|---|
| 1710 |
|
|---|
| 1711 | - Queue.Queue objects now support .task_done() and .join() methods
|
|---|
| 1712 | to make it easier to monitor when daemon threads have completed
|
|---|
| 1713 | processing all enqueued tasks. Patch #1455676.
|
|---|
| 1714 |
|
|---|
| 1715 | - popen2.Popen objects now preserve the command in a .cmd attribute.
|
|---|
| 1716 |
|
|---|
| 1717 | - Added the ctypes ffi package.
|
|---|
| 1718 |
|
|---|
| 1719 | - email 4.0 package now integrated. This is largely the same as the email 3.0
|
|---|
| 1720 | package that was included in Python 2.3, except that PEP 8 module names are
|
|---|
| 1721 | now used (e.g. mail.message instead of email.Message). The MIME classes
|
|---|
| 1722 | have been moved to a subpackage (e.g. email.mime.text instead of
|
|---|
| 1723 | email.MIMEText). The old names are still supported for now. Several
|
|---|
| 1724 | deprecated Message methods have been removed and lots of bugs have been
|
|---|
| 1725 | fixed. More details can be found in the email package documentation.
|
|---|
| 1726 |
|
|---|
| 1727 | - Patches #1436130/#1443155: codecs.lookup() now returns a CodecInfo object
|
|---|
| 1728 | (a subclass of tuple) that provides incremental decoders and encoders
|
|---|
| 1729 | (a way to use stateful codecs without the stream API). Python functions
|
|---|
| 1730 | codecs.getincrementaldecoder() and codecs.getincrementalencoder() as well
|
|---|
| 1731 | as C functions PyCodec_IncrementalEncoder() and PyCodec_IncrementalDecoder()
|
|---|
| 1732 | have been added.
|
|---|
| 1733 |
|
|---|
| 1734 | - Patch #1359365: Calling next() on a closed StringIO.String object raises
|
|---|
| 1735 | a ValueError instead of a StopIteration now (like file and cString.String do).
|
|---|
| 1736 | cStringIO.StringIO.isatty() will raise a ValueError now if close() has been
|
|---|
| 1737 | called before (like file and StringIO.StringIO do).
|
|---|
| 1738 |
|
|---|
| 1739 | - A regrtest option -w was added to re-run failed tests in verbose mode.
|
|---|
| 1740 |
|
|---|
| 1741 | - Patch #1446372: quit and exit can now be called from the interactive
|
|---|
| 1742 | interpreter to exit.
|
|---|
| 1743 |
|
|---|
| 1744 | - The function get_count() has been added to the gc module, and gc.collect()
|
|---|
| 1745 | grew an optional 'generation' argument.
|
|---|
| 1746 |
|
|---|
| 1747 | - A library msilib to generate Windows Installer files, and a distutils
|
|---|
| 1748 | command bdist_msi have been added.
|
|---|
| 1749 |
|
|---|
| 1750 | - PEP 343: new module contextlib.py defines decorator @contextmanager
|
|---|
| 1751 | and helpful context managers nested() and closing().
|
|---|
| 1752 |
|
|---|
| 1753 | - The compiler package now supports future imports after the module docstring.
|
|---|
| 1754 |
|
|---|
| 1755 | - Bug #1413790: zipfile now sanitizes absolute archive names that are
|
|---|
| 1756 | not allowed by the specs.
|
|---|
| 1757 |
|
|---|
| 1758 | - Patch #1215184: FileInput now can be given an opening hook which can
|
|---|
| 1759 | be used to control how files are opened.
|
|---|
| 1760 |
|
|---|
| 1761 | - Patch #1212287: fileinput.input() now has a mode parameter for
|
|---|
| 1762 | specifying the file mode input files should be opened with.
|
|---|
| 1763 |
|
|---|
| 1764 | - Patch #1215184: fileinput now has a fileno() function for getting the
|
|---|
| 1765 | current file number.
|
|---|
| 1766 |
|
|---|
| 1767 | - Patch #1349274: gettext.install() now optionally installs additional
|
|---|
| 1768 | translation functions other than _() in the builtin namespace.
|
|---|
| 1769 |
|
|---|
| 1770 | - Patch #1337756: fileinput now accepts Unicode filenames.
|
|---|
| 1771 |
|
|---|
| 1772 | - Patch #1373643: The chunk module can now read chunks larger than
|
|---|
| 1773 | two gigabytes.
|
|---|
| 1774 |
|
|---|
| 1775 | - Patch #1417555: SimpleHTTPServer now returns Last-Modified headers.
|
|---|
| 1776 |
|
|---|
| 1777 | - Bug #1430298: It is now possible to send a mail with an empty
|
|---|
| 1778 | return address using smtplib.
|
|---|
| 1779 |
|
|---|
| 1780 | - Bug #1432260: The names of lambda functions are now properly displayed
|
|---|
| 1781 | in pydoc.
|
|---|
| 1782 |
|
|---|
| 1783 | - Patch #1412872: zipfile now sets the creator system to 3 (Unix)
|
|---|
| 1784 | unless the system is Win32.
|
|---|
| 1785 |
|
|---|
| 1786 | - Patch #1349118: urllib now supports user:pass@ style proxy
|
|---|
| 1787 | specifications, raises IOErrors when proxies for unsupported protocols
|
|---|
| 1788 | are defined, and uses the https proxy on https redirections.
|
|---|
| 1789 |
|
|---|
| 1790 | - Bug #902075: urllib2 now supports 'host:port' style proxy specifications.
|
|---|
| 1791 |
|
|---|
| 1792 | - Bug #1407902: Add support for sftp:// URIs to urlparse.
|
|---|
| 1793 |
|
|---|
| 1794 | - Bug #1371247: Update Windows locale identifiers in locale.py.
|
|---|
| 1795 |
|
|---|
| 1796 | - Bug #1394565: SimpleHTTPServer now doesn't choke on query parameters
|
|---|
| 1797 | any more.
|
|---|
| 1798 |
|
|---|
| 1799 | - Bug #1403410: The warnings module now doesn't get confused
|
|---|
| 1800 | when it can't find out the module name it generates a warning for.
|
|---|
| 1801 |
|
|---|
| 1802 | - Patch #1177307: Added a new codec utf_8_sig for UTF-8 with a BOM signature.
|
|---|
| 1803 |
|
|---|
| 1804 | - Patch #1157027: cookielib mishandles RFC 2109 cookies in Netscape mode
|
|---|
| 1805 |
|
|---|
| 1806 | - Patch #1117398: cookielib.LWPCookieJar and .MozillaCookieJar now raise
|
|---|
| 1807 | LoadError as documented, instead of IOError. For compatibility,
|
|---|
| 1808 | LoadError subclasses IOError.
|
|---|
| 1809 |
|
|---|
| 1810 | - Added the hashlib module. It provides secure hash functions for MD5 and
|
|---|
| 1811 | SHA1, 224, 256, 384, and 512. Note that recent developments make the
|
|---|
| 1812 | historic MD5 and SHA1 unsuitable for cryptographic-strength applications.
|
|---|
| 1813 | In <http://mail.python.org/pipermail/python-dev/2005-December/058850.html>
|
|---|
| 1814 | Ronald L. Rivest offered this advice for Python:
|
|---|
| 1815 |
|
|---|
| 1816 | "The consensus of researchers in this area (at least as
|
|---|
| 1817 | expressed at the NIST Hash Function Workshop 10/31/05),
|
|---|
| 1818 | is that SHA-256 is a good choice for the time being, but
|
|---|
| 1819 | that research should continue, and other alternatives may
|
|---|
| 1820 | arise from this research. The larger SHA's also seem OK."
|
|---|
| 1821 |
|
|---|
| 1822 | - Added a subset of Fredrik Lundh's ElementTree package. Available
|
|---|
| 1823 | modules are xml.etree.ElementTree, xml.etree.ElementPath, and
|
|---|
| 1824 | xml.etree.ElementInclude, from ElementTree 1.2.6.
|
|---|
| 1825 |
|
|---|
| 1826 | - Patch #1162825: Support non-ASCII characters in IDLE window titles.
|
|---|
| 1827 |
|
|---|
| 1828 | - Bug #1365984: urllib now opens "data:" URLs again.
|
|---|
| 1829 |
|
|---|
| 1830 | - Patch #1314396: prevent deadlock for threading.Thread.join() when an exception
|
|---|
| 1831 | is raised within the method itself on a previous call (e.g., passing in an
|
|---|
| 1832 | illegal argument)
|
|---|
| 1833 |
|
|---|
| 1834 | - Bug #1340337: change time.strptime() to always return ValueError when there
|
|---|
| 1835 | is an error in the format string.
|
|---|
| 1836 |
|
|---|
| 1837 | - Patch #754022: Greatly enhanced webbrowser.py (by Oleg Broytmann).
|
|---|
| 1838 |
|
|---|
| 1839 | - Bug #729103: pydoc.py: Fix docother() method to accept additional
|
|---|
| 1840 | "parent" argument.
|
|---|
| 1841 |
|
|---|
| 1842 | - Patch #1300515: xdrlib.py: Fix pack_fstring() to really use null bytes
|
|---|
| 1843 | for padding.
|
|---|
| 1844 |
|
|---|
| 1845 | - Bug #1296004: httplib.py: Limit maximal amount of data read from the
|
|---|
| 1846 | socket to avoid a MemoryError on Windows.
|
|---|
| 1847 |
|
|---|
| 1848 | - Patch #1166948: locale.py: Prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE
|
|---|
| 1849 | to get the correct encoding.
|
|---|
| 1850 |
|
|---|
| 1851 | - Patch #1166938: locale.py: Parse LANGUAGE as a colon separated list of
|
|---|
| 1852 | languages.
|
|---|
| 1853 |
|
|---|
| 1854 | - Patch #1268314: Cache lines in StreamReader.readlines for performance.
|
|---|
| 1855 |
|
|---|
| 1856 | - Bug #1290505: Fix clearing the regex cache for time.strptime().
|
|---|
| 1857 |
|
|---|
| 1858 | - Bug #1167128: Fix size of a symlink in a tarfile to be 0.
|
|---|
| 1859 |
|
|---|
| 1860 | - Patch #810023: Fix off-by-one bug in urllib.urlretrieve reporthook
|
|---|
| 1861 | functionality.
|
|---|
| 1862 |
|
|---|
| 1863 | - Bug #1163178: Make IDNA return an empty string when the input is empty.
|
|---|
| 1864 |
|
|---|
| 1865 | - Patch #848017: Make Cookie more RFC-compliant. Use CRLF as default output
|
|---|
| 1866 | separator and do not output trailing semicolon.
|
|---|
| 1867 |
|
|---|
| 1868 | - Patch #1062060: urllib.urlretrieve() now raises a new exception, named
|
|---|
| 1869 | ContentTooShortException, when the actually downloaded size does not
|
|---|
| 1870 | match the Content-Length header.
|
|---|
| 1871 |
|
|---|
| 1872 | - Bug #1121494: distutils.dir_utils.mkpath now accepts Unicode strings.
|
|---|
| 1873 |
|
|---|
| 1874 | - Bug #1178484: Return complete lines from codec stream readers
|
|---|
| 1875 | even if there is an exception in later lines, resulting in
|
|---|
| 1876 | correct line numbers for decoding errors in source code.
|
|---|
| 1877 |
|
|---|
| 1878 | - Bug #1192315: Disallow negative arguments to clear() in pdb.
|
|---|
| 1879 |
|
|---|
| 1880 | - Patch #827386: Support absolute source paths in msvccompiler.py.
|
|---|
| 1881 |
|
|---|
| 1882 | - Patch #1105730: Apply the new implementation of commonprefix in posixpath
|
|---|
| 1883 | to ntpath, macpath, os2emxpath and riscospath.
|
|---|
| 1884 |
|
|---|
| 1885 | - Fix a problem in Tkinter introduced by SF patch #869468: delete bogus
|
|---|
| 1886 | __hasattr__ and __delattr__ methods on class Tk that were breaking
|
|---|
| 1887 | Tkdnd.
|
|---|
| 1888 |
|
|---|
| 1889 | - Bug #1015140: disambiguated the term "article id" in nntplib docs and
|
|---|
| 1890 | docstrings to either "article number" or "message id".
|
|---|
| 1891 |
|
|---|
| 1892 | - Bug #1238170: threading.Thread.__init__ no longer has "kwargs={}" as a
|
|---|
| 1893 | parameter, but uses the usual "kwargs=None".
|
|---|
| 1894 |
|
|---|
| 1895 | - textwrap now processes text chunks at O(n) speed instead of O(n**2).
|
|---|
| 1896 | Patch #1209527 (Contributed by Connelly).
|
|---|
| 1897 |
|
|---|
| 1898 | - urllib2 has now an attribute 'httpresponses' mapping from HTTP status code
|
|---|
| 1899 | to W3C name (404 -> 'Not Found'). RFE #1216944.
|
|---|
| 1900 |
|
|---|
| 1901 | - Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom,
|
|---|
| 1902 | as this can cause problems with apps closing all file descriptors.
|
|---|
| 1903 |
|
|---|
| 1904 | - Bug #839151: Fix an attempt to access sys.argv in the warnings module;
|
|---|
| 1905 | it can be missing in embedded interpreters
|
|---|
| 1906 |
|
|---|
| 1907 | - Bug #1155638: Fix a bug which affected HTTP 0.9 responses in httplib.
|
|---|
| 1908 |
|
|---|
| 1909 | - Bug #1100201: Cross-site scripting was possible on BaseHTTPServer via
|
|---|
| 1910 | error messages.
|
|---|
| 1911 |
|
|---|
| 1912 | - Bug #1108948: Cookie.py produced invalid JavaScript code.
|
|---|
| 1913 |
|
|---|
| 1914 | - The tokenize module now detects and reports indentation errors.
|
|---|
| 1915 | Bug #1224621.
|
|---|
| 1916 |
|
|---|
| 1917 | - The tokenize module has a new untokenize() function to support a full
|
|---|
| 1918 | roundtrip from lexed tokens back to Python source code. In addition,
|
|---|
| 1919 | the generate_tokens() function now accepts a callable argument that
|
|---|
| 1920 | terminates by raising StopIteration.
|
|---|
| 1921 |
|
|---|
| 1922 | - Bug #1196315: fix weakref.WeakValueDictionary constructor.
|
|---|
| 1923 |
|
|---|
| 1924 | - Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
|
|---|
| 1925 | component of the path.
|
|---|
| 1926 |
|
|---|
| 1927 | - Patch #1120353: The xmlrpclib module provides better, more transparent,
|
|---|
| 1928 | support for datetime.{datetime,date,time} objects. With use_datetime set
|
|---|
| 1929 | to True, applications shouldn't have to fiddle with the DateTime wrapper
|
|---|
| 1930 | class at all.
|
|---|
| 1931 |
|
|---|
| 1932 | - distutils.commands.upload was added to support uploading distribution
|
|---|
| 1933 | files to PyPI.
|
|---|
| 1934 |
|
|---|
| 1935 | - distutils.commands.register now encodes the data as UTF-8 before posting
|
|---|
| 1936 | them to PyPI.
|
|---|
| 1937 |
|
|---|
| 1938 | - decimal operator and comparison methods now return NotImplemented
|
|---|
| 1939 | instead of raising a TypeError when interacting with other types. This
|
|---|
| 1940 | allows other classes to implement __radd__ style methods and have them
|
|---|
| 1941 | work as expected.
|
|---|
| 1942 |
|
|---|
| 1943 | - Bug #1163325: Decimal infinities failed to hash. Attempting to
|
|---|
| 1944 | hash a NaN raised an InvalidOperation instead of a TypeError.
|
|---|
| 1945 |
|
|---|
| 1946 | - Patch #918101: Add tarfile open mode r|* for auto-detection of the
|
|---|
| 1947 | stream compression; add, for symmetry reasons, r:* as a synonym of r.
|
|---|
| 1948 |
|
|---|
| 1949 | - Patch #1043890: Add extractall method to tarfile.
|
|---|
| 1950 |
|
|---|
| 1951 | - Patch #1075887: Don't require MSVC in distutils if there is nothing
|
|---|
| 1952 | to build.
|
|---|
| 1953 |
|
|---|
| 1954 | - Patch #1103407: Properly deal with tarfile iterators when untarring
|
|---|
| 1955 | symbolic links on Windows.
|
|---|
| 1956 |
|
|---|
| 1957 | - Patch #645894: Use getrusage for computing the time consumption in
|
|---|
| 1958 | profile.py if available.
|
|---|
| 1959 |
|
|---|
| 1960 | - Patch #1046831: Use get_python_version where appropriate in sysconfig.py.
|
|---|
| 1961 |
|
|---|
| 1962 | - Patch #1117454: Remove code to special-case cookies without values
|
|---|
| 1963 | in LWPCookieJar.
|
|---|
| 1964 |
|
|---|
| 1965 | - Patch #1117339: Add cookielib special name tests.
|
|---|
| 1966 |
|
|---|
| 1967 | - Patch #1112812: Make bsddb/__init__.py more friendly for modulefinder.
|
|---|
| 1968 |
|
|---|
| 1969 | - Patch #1110248: SYNC_FLUSH the zlib buffer for GZipFile.flush.
|
|---|
| 1970 |
|
|---|
| 1971 | - Patch #1107973: Allow to iterate over the lines of a tarfile.ExFileObject.
|
|---|
| 1972 |
|
|---|
| 1973 | - Patch #1104111: Alter setup.py --help and --help-commands.
|
|---|
| 1974 |
|
|---|
| 1975 | - Patch #1121234: Properly cleanup _exit and tkerror commands.
|
|---|
| 1976 |
|
|---|
| 1977 | - Patch #1049151: xdrlib now unpacks booleans as True or False.
|
|---|
| 1978 |
|
|---|
| 1979 | - Fixed bug in a NameError bug in cookielib. Patch #1116583.
|
|---|
| 1980 |
|
|---|
| 1981 | - Applied a security fix to SimpleXMLRPCserver (PSF-2005-001). This
|
|---|
| 1982 | disables recursive traversal through instance attributes, which can
|
|---|
| 1983 | be exploited in various ways.
|
|---|
| 1984 |
|
|---|
| 1985 | - Bug #1222790: in SimpleXMLRPCServer, set the reuse-address and close-on-exec
|
|---|
| 1986 | flags on the HTTP listening socket.
|
|---|
| 1987 |
|
|---|
| 1988 | - Bug #792570: SimpleXMLRPCServer had problems if the request grew too large.
|
|---|
| 1989 | Fixed by reading the HTTP body in chunks instead of one big socket.read().
|
|---|
| 1990 |
|
|---|
| 1991 | - Patches #893642, #1039083: add allow_none, encoding arguments to
|
|---|
| 1992 | constructors of SimpleXMLRPCServer and CGIXMLRPCRequestHandler.
|
|---|
| 1993 |
|
|---|
| 1994 | - Bug #1110478: Revert os.environ.update to do putenv again.
|
|---|
| 1995 |
|
|---|
| 1996 | - Bug #1103844: fix distutils.install.dump_dirs() with negated options.
|
|---|
| 1997 |
|
|---|
| 1998 | - os.{SEEK_SET, SEEK_CUR, SEEK_END} have been added for convenience.
|
|---|
| 1999 |
|
|---|
| 2000 | - Enhancements to the csv module:
|
|---|
| 2001 |
|
|---|
| 2002 | + Dialects are now validated by the underlying C code, better
|
|---|
| 2003 | reflecting its capabilities, and improving its compliance with
|
|---|
| 2004 | PEP 305.
|
|---|
| 2005 | + Dialect parameter parsing has been re-implemented to improve error
|
|---|
| 2006 | reporting.
|
|---|
| 2007 | + quotechar=None and quoting=QUOTE_NONE now work the way PEP 305
|
|---|
| 2008 | dictates.
|
|---|
| 2009 | + the parser now removes the escapechar prefix from escaped characters.
|
|---|
| 2010 | + when quoting=QUOTE_NONNUMERIC, the writer now tests for numeric
|
|---|
| 2011 | types, rather than any object that can be represented as a numeric.
|
|---|
| 2012 | + when quoting=QUOTE_NONNUMERIC, the reader now casts unquoted fields
|
|---|
| 2013 | to floats.
|
|---|
| 2014 | + reader now allows \r characters to be quoted (previously it only allowed
|
|---|
| 2015 | \n to be quoted).
|
|---|
| 2016 | + writer doublequote handling improved.
|
|---|
| 2017 | + Dialect classes passed to the module are no longer instantiated by
|
|---|
| 2018 | the module before being parsed (the former validation scheme required
|
|---|
| 2019 | this, but the mechanism was unreliable).
|
|---|
| 2020 | + The dialect registry now contains instances of the internal
|
|---|
| 2021 | C-coded dialect type, rather than references to python objects.
|
|---|
| 2022 | + the internal c-coded dialect type is now immutable.
|
|---|
| 2023 | + register_dialect now accepts the same keyword dialect specifications
|
|---|
| 2024 | as the reader and writer, allowing the user to register dialects
|
|---|
| 2025 | without first creating a dialect class.
|
|---|
| 2026 | + a configurable limit to the size of parsed fields has been added -
|
|---|
| 2027 | previously, an unmatched quote character could result in the entire
|
|---|
| 2028 | file being read into the field buffer before an error was reported.
|
|---|
| 2029 | + A new module method csv.field_size_limit() has been added that sets
|
|---|
| 2030 | the parser field size limit (returning the former limit). The initial
|
|---|
| 2031 | limit is 128kB.
|
|---|
| 2032 | + A line_num attribute has been added to the reader object, which tracks
|
|---|
| 2033 | the number of lines read from the source iterator. This is not
|
|---|
| 2034 | the same as the number of records returned, as records can span
|
|---|
| 2035 | multiple lines.
|
|---|
| 2036 | + reader and writer objects were not being registered with the cyclic-GC.
|
|---|
| 2037 | This has been fixed.
|
|---|
| 2038 |
|
|---|
| 2039 | - _DummyThread objects in the threading module now delete self.__block that is
|
|---|
| 2040 | inherited from _Thread since it uses up a lock allocated by 'thread'. The
|
|---|
| 2041 | lock primitives tend to be limited in number and thus should not be wasted on
|
|---|
| 2042 | a _DummyThread object. Fixes bug #1089632.
|
|---|
| 2043 |
|
|---|
| 2044 | - The imghdr module now detects Exif files.
|
|---|
| 2045 |
|
|---|
| 2046 | - StringIO.truncate() now correctly adjusts the size attribute.
|
|---|
| 2047 | (Bug #951915).
|
|---|
| 2048 |
|
|---|
| 2049 | - locale.py now uses an updated locale alias table (built using
|
|---|
| 2050 | Tools/i18n/makelocalealias.py, a tool to parse the X11 locale
|
|---|
| 2051 | alias file); the encoding lookup was enhanced to use Python's
|
|---|
| 2052 | encoding alias table.
|
|---|
| 2053 |
|
|---|
| 2054 | - moved deprecated modules to Lib/lib-old: whrandom, tzparse, statcache.
|
|---|
| 2055 |
|
|---|
| 2056 | - the pickle module no longer accepts the deprecated None option in the
|
|---|
| 2057 | args tuple returned by __reduce__().
|
|---|
| 2058 |
|
|---|
| 2059 | - optparse now optionally imports gettext. This allows its use in setup.py.
|
|---|
| 2060 |
|
|---|
| 2061 | - the pickle module no longer uses the deprecated bin parameter.
|
|---|
| 2062 |
|
|---|
| 2063 | - the shelve module no longer uses the deprecated binary parameter.
|
|---|
| 2064 |
|
|---|
| 2065 | - the pstats module no longer uses the deprecated ignore() method.
|
|---|
| 2066 |
|
|---|
| 2067 | - the filecmp module no longer uses the deprecated use_statcache argument.
|
|---|
| 2068 |
|
|---|
| 2069 | - unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
|
|---|
| 2070 | extended or overridden by subclasses. Formerly, the subclassed method would
|
|---|
| 2071 | be ignored by the rest of the module. (Bug #1078905).
|
|---|
| 2072 |
|
|---|
| 2073 | - heapq.nsmallest() and heapq.nlargest() now support key= arguments with
|
|---|
| 2074 | the same meaning as in list.sort().
|
|---|
| 2075 |
|
|---|
| 2076 | - Bug #1076985: ``codecs.StreamReader.readline()`` now calls ``read()`` only
|
|---|
| 2077 | once when a size argument is given. This prevents a buffer overflow in the
|
|---|
| 2078 | tokenizer with very long source lines.
|
|---|
| 2079 |
|
|---|
| 2080 | - Bug #1083110: ``zlib.decompress.flush()`` would segfault if called
|
|---|
| 2081 | immediately after creating the object, without any intervening
|
|---|
| 2082 | ``.decompress()`` calls.
|
|---|
| 2083 |
|
|---|
| 2084 | - The reconvert.quote function can now emit triple-quoted strings. The
|
|---|
| 2085 | reconvert module now has some simple documentation.
|
|---|
| 2086 |
|
|---|
| 2087 | - ``UserString.MutableString`` now supports negative indices in
|
|---|
| 2088 | ``__setitem__`` and ``__delitem__``
|
|---|
| 2089 |
|
|---|
| 2090 | - Bug #1149508: ``textwrap`` now handles hyphenated numbers (eg. "2004-03-05")
|
|---|
| 2091 | correctly.
|
|---|
| 2092 |
|
|---|
| 2093 | - Partial fixes for SF bugs #1163244 and #1175396: If a chunk read by
|
|---|
| 2094 | ``codecs.StreamReader.readline()`` has a trailing "\r", read one more
|
|---|
| 2095 | character even if the user has passed a size parameter to get a proper
|
|---|
| 2096 | line ending. Remove the special handling of a "\r\n" that has been split
|
|---|
| 2097 | between two lines.
|
|---|
| 2098 |
|
|---|
| 2099 | - Bug #1251300: On UCS-4 builds the "unicode-internal" codec will now complain
|
|---|
| 2100 | about illegal code points. The codec now supports PEP 293 style error
|
|---|
| 2101 | handlers.
|
|---|
| 2102 |
|
|---|
| 2103 | - Bug #1235646: ``codecs.StreamRecoder.next()`` now reencodes the data it reads
|
|---|
| 2104 | from the input stream, so that the output is a byte string in the correct
|
|---|
| 2105 | encoding instead of a unicode string.
|
|---|
| 2106 |
|
|---|
| 2107 | - Bug #1202493: Fixing SRE parser to handle '{}' as perl does, rather than
|
|---|
| 2108 | considering it exactly like a '*'.
|
|---|
| 2109 |
|
|---|
| 2110 | - Bug #1245379: Add "unicode-1-1-utf-7" as an alias for "utf-7" to
|
|---|
| 2111 | ``encodings.aliases``.
|
|---|
| 2112 |
|
|---|
| 2113 | - ` uu.encode()`` and ``uu.decode()`` now support unicode filenames.
|
|---|
| 2114 |
|
|---|
| 2115 | - Patch #1413711: Certain patterns of differences were making difflib
|
|---|
| 2116 | touch the recursion limit.
|
|---|
| 2117 |
|
|---|
| 2118 | - Bug #947906: An object oriented interface has been added to the calendar
|
|---|
| 2119 | module. It's possible to generate HTML calendar now and the module can be
|
|---|
| 2120 | called as a script (e.g. via ``python -mcalendar``). Localized month and
|
|---|
| 2121 | weekday names can be ouput (even if an exotic encoding is used) using
|
|---|
| 2122 | special classes that use unicode.
|
|---|
| 2123 |
|
|---|
| 2124 | Build
|
|---|
| 2125 | -----
|
|---|
| 2126 |
|
|---|
| 2127 | - Fix test_float, test_long, and test_struct failures on Tru64 with gcc
|
|---|
| 2128 | by using -mieee gcc option.
|
|---|
| 2129 |
|
|---|
| 2130 | - Patch #1432345: Make python compile on DragonFly.
|
|---|
| 2131 |
|
|---|
| 2132 | - Build support for Win64-AMD64 was added.
|
|---|
| 2133 |
|
|---|
| 2134 | - Patch #1428494: Prefer linking against ncursesw over ncurses library.
|
|---|
| 2135 |
|
|---|
| 2136 | - Patch #881820: look for openpty and forkpty also in libbsd.
|
|---|
| 2137 |
|
|---|
| 2138 | - The sources of zlib are now part of the Python distribution (zlib 1.2.3).
|
|---|
| 2139 | The zlib module is now builtin on Windows.
|
|---|
| 2140 |
|
|---|
| 2141 | - Use -xcode=pic32 for CCSHARED on Solaris with SunPro.
|
|---|
| 2142 |
|
|---|
| 2143 | - Bug #1189330: configure did not correctly determine the necessary
|
|---|
| 2144 | value of LINKCC if python was built with GCC 4.0.
|
|---|
| 2145 |
|
|---|
| 2146 | - Upgrade Windows build to zlib 1.2.3 which eliminates a potential security
|
|---|
| 2147 | vulnerability in zlib 1.2.1 and 1.2.2.
|
|---|
| 2148 |
|
|---|
| 2149 | - EXTRA_CFLAGS has been introduced as an environment variable to hold compiler
|
|---|
| 2150 | flags that change binary compatibility. Changes were also made to
|
|---|
| 2151 | distutils.sysconfig to also use the environment variable when used during
|
|---|
| 2152 | compilation of the interpreter and of C extensions through distutils.
|
|---|
| 2153 |
|
|---|
| 2154 | - SF patch 1171735: Darwin 8's headers are anal about POSIX compliance,
|
|---|
| 2155 | and linking has changed (prebinding is now deprecated, and libcc_dynamic
|
|---|
| 2156 | no longer exists). This configure patch makes things right.
|
|---|
| 2157 |
|
|---|
| 2158 | - Bug #1158607: Build with --disable-unicode again.
|
|---|
| 2159 |
|
|---|
| 2160 | - spwdmodule.c is built only if either HAVE_GETSPNAM or HAVE_HAVE_GETSPENT is
|
|---|
| 2161 | defined. Discovered as a result of not being able to build on OS X.
|
|---|
| 2162 |
|
|---|
| 2163 | - setup.py now uses the directories specified in LDFLAGS using the -L option
|
|---|
| 2164 | and in CPPFLAGS using the -I option for adding library and include
|
|---|
| 2165 | directories, respectively, for compiling extension modules against. This has
|
|---|
| 2166 | led to the core being compiled using the values in CPPFLAGS. It also removes
|
|---|
| 2167 | the need for the special-casing of both DarwinPorts and Fink for darwin since
|
|---|
| 2168 | the proper directories can be specified in LDFLAGS (``-L/sw/lib`` for Fink,
|
|---|
| 2169 | ``-L/opt/local/lib`` for DarwinPorts) and CPPFLAGS (``-I/sw/include`` for
|
|---|
| 2170 | Fink, ``-I/opt/local/include`` for DarwinPorts).
|
|---|
| 2171 |
|
|---|
| 2172 | - Test in configure.in that checks for tzset no longer dependent on tm->tm_zone
|
|---|
| 2173 | to exist in the struct (not required by either ISO C nor the UNIX 2 spec).
|
|---|
| 2174 | Tests for sanity in tzname when HAVE_TZNAME defined were also defined.
|
|---|
| 2175 | Closes bug #1096244. Thanks Gregory Bond.
|
|---|
| 2176 |
|
|---|
| 2177 | C API
|
|---|
| 2178 | -----
|
|---|
| 2179 |
|
|---|
| 2180 | - ``PyMem_{Del, DEL}`` and ``PyMem_{Free, FREE}`` no longer map to
|
|---|
| 2181 | ``PyObject_{Free, FREE}``. They map to the system ``free()`` now. If memory
|
|---|
| 2182 | is obtained via the ``PyObject_`` family, it must be released via the
|
|---|
| 2183 | ``PyObject_`` family, and likewise for the ``PyMem_`` family. This has
|
|---|
| 2184 | always been officially true, but when Python's small-object allocator was
|
|---|
| 2185 | introduced, an attempt was made to cater to a few extension modules
|
|---|
| 2186 | discovered at the time that obtained memory via ``PyObject_New`` but
|
|---|
| 2187 | released it via ``PyMem_DEL``. It's years later, and if such code still
|
|---|
| 2188 | exists it will fail now (probably with segfaults, but calling wrong
|
|---|
| 2189 | low-level memory management functions can yield many symptoms).
|
|---|
| 2190 |
|
|---|
| 2191 | - Added a C API for set and frozenset objects.
|
|---|
| 2192 |
|
|---|
| 2193 | - Removed PyRange_New().
|
|---|
| 2194 |
|
|---|
| 2195 | - Patch #1313939: PyUnicode_DecodeCharmap() accepts a unicode string as the
|
|---|
| 2196 | mapping argument now. This string is used as a mapping table. Byte values
|
|---|
| 2197 | greater than the length of the string and 0xFFFE are treated as undefined
|
|---|
| 2198 | mappings.
|
|---|
| 2199 |
|
|---|
| 2200 |
|
|---|
| 2201 | Tests
|
|---|
| 2202 | -----
|
|---|
| 2203 |
|
|---|
| 2204 | - In test_os, st_?time is now truncated before comparing it with ST_?TIME.
|
|---|
| 2205 |
|
|---|
| 2206 | - Patch #1276356: New resource "urlfetch" is implemented. This enables
|
|---|
| 2207 | even impatient people to run tests that require remote files.
|
|---|
| 2208 |
|
|---|
| 2209 |
|
|---|
| 2210 | Documentation
|
|---|
| 2211 | -------------
|
|---|
| 2212 |
|
|---|
| 2213 | - Bug #1402224: Add warning to dl docs about crashes.
|
|---|
| 2214 |
|
|---|
| 2215 | - Bug #1396471: Document that Windows' ftell() can return invalid
|
|---|
| 2216 | values for text files with UNIX-style line endings.
|
|---|
| 2217 |
|
|---|
| 2218 | - Bug #1274828: Document os.path.splitunc().
|
|---|
| 2219 |
|
|---|
| 2220 | - Bug #1190204: Clarify which directories are searched by site.py.
|
|---|
| 2221 |
|
|---|
| 2222 | - Bug #1193849: Clarify os.path.expanduser() documentation.
|
|---|
| 2223 |
|
|---|
| 2224 | - Bug #1243192: re.UNICODE and re.LOCALE affect \d, \D, \s and \S.
|
|---|
| 2225 |
|
|---|
| 2226 | - Bug #755617: Document the effects of os.chown() on Windows.
|
|---|
| 2227 |
|
|---|
| 2228 | - Patch #1180012: The documentation for modulefinder is now in the library reference.
|
|---|
| 2229 |
|
|---|
| 2230 | - Patch #1213031: Document that os.chown() accepts argument values of -1.
|
|---|
| 2231 |
|
|---|
| 2232 | - Bug #1190563: Document os.waitpid() return value with WNOHANG flag.
|
|---|
| 2233 |
|
|---|
| 2234 | - Bug #1175022: Correct the example code for property().
|
|---|
| 2235 |
|
|---|
| 2236 | - Document the IterableUserDict class in the UserDict module.
|
|---|
| 2237 | Closes bug #1166582.
|
|---|
| 2238 |
|
|---|
| 2239 | - Remove all latent references for "Macintosh" that referred to semantics for
|
|---|
| 2240 | Mac OS 9 and change to reflect the state for OS X.
|
|---|
| 2241 | Closes patch #1095802. Thanks Jack Jansen.
|
|---|
| 2242 |
|
|---|
| 2243 | Mac
|
|---|
| 2244 | ---
|
|---|
| 2245 |
|
|---|
| 2246 |
|
|---|
| 2247 | New platforms
|
|---|
| 2248 | -------------
|
|---|
| 2249 |
|
|---|
| 2250 | - FreeBSD 7 support is added.
|
|---|
| 2251 |
|
|---|
| 2252 |
|
|---|
| 2253 | Tools/Demos
|
|---|
| 2254 | -----------
|
|---|
| 2255 |
|
|---|
| 2256 | - Created Misc/Vim/vim_syntax.py to auto-generate a python.vim file in that
|
|---|
| 2257 | directory for syntax highlighting in Vim. Vim directory was added and placed
|
|---|
| 2258 | vimrc to it (was previous up a level).
|
|---|
| 2259 |
|
|---|
| 2260 | - Added two new files to Tools/scripts: pysource.py, which recursively
|
|---|
| 2261 | finds Python source files, and findnocoding.py, which finds Python
|
|---|
| 2262 | source files that need an encoding declaration.
|
|---|
| 2263 | Patch #784089, credits to Oleg Broytmann.
|
|---|
| 2264 |
|
|---|
| 2265 | - Bug #1072853: pindent.py used an uninitialized variable.
|
|---|
| 2266 |
|
|---|
| 2267 | - Patch #1177597: Correct Complex.__init__.
|
|---|
| 2268 |
|
|---|
| 2269 | - Fixed a display glitch in Pynche, which could cause the right arrow to
|
|---|
| 2270 | wiggle over by a pixel.
|
|---|
| 2271 |
|
|---|
| 2272 | ----
|
|---|
| 2273 |
|
|---|
| 2274 | **(For information about older versions, consult the HISTORY file.)**
|
|---|