"Fossies" - the Fresh Open Source Software Archive 
Member "Python-3.8.7/Misc/HISTORY" (21 Dec 2020, 1355256 Bytes) of package /linux/misc/Python-3.8.7.tar.xz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the last
Fossies "Diffs" side-by-side code changes report for "HISTORY":
3.8.6_vs_3.9.0.
1 Python History
2 --------------
3
4 This file contains the release messages for previous Python releases.
5 As you read on you go back to the dark ages of Python's history.
6
7
8 ======================================================================
9
10 What's New in Python 3.4.6?
11 ===========================
12
13 Release date: 2017-01-17
14
15 There were no changes between 3.4.6rc1 and 3.4.6 final.
16
17
18 What's New in Python 3.4.6rc1?
19 ==============================
20
21 Release date: 2017-01-02
22
23 Core and Builtins
24 -----------------
25
26 - Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
27 when decode astral characters. Patch by Xiang Zhang.
28
29 - Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug
30 build.
31
32 Library
33 -------
34
35 - Issue #28563: Fixed possible DoS and arbitrary code execution when handle
36 plural form selections in the gettext module. The expression parser now
37 supports exact syntax supported by GNU gettext.
38
39 - In the curses module, raise an error if window.getstr() or window.instr() is
40 passed a negative value.
41
42 - Issue #27783: Fix possible usage of uninitialized memory in operator.methodcaller.
43
44 - Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
45
46 - Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
47
48 - Issue #27758: Fix possible integer overflow in the _csv module for large record
49 lengths.
50
51 - Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
52 HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
53 that the script is in CGI mode.
54
55 - Issue #27759: Fix selectors incorrectly retain invalid file descriptors.
56 Patch by Mark Williams.
57
58 Build
59 -----
60
61 - Issue #28248: Update Windows build to use OpenSSL 1.0.2j.
62
63 Tests
64 -----
65
66 - Issue #27369: In test_pyexpat, avoid testing an error message detail that
67 changed in Expat 2.2.0.
68
69
70 What's New in Python 3.4.5?
71 ===========================
72
73 Release date: 2016-06-26
74
75 Tests
76 -----
77
78 - Issue #26867: Ubuntu's openssl OP_NO_SSLv3 is forced on by default; fix test.
79
80
81 What's New in Python 3.4.5rc1?
82 ==============================
83
84 Release date: 2016-06-11
85
86 Core and Builtins
87 -----------------
88
89 - Issue #26478: Fix semantic bugs when using binary operators with dictionary
90 views and tuples.
91
92 - Issue #26171: Fix possible integer overflow and heap corruption in
93 zipimporter.get_data().
94
95 Library
96 -------
97
98 - Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283.
99
100 - Fix TLS stripping vulnerability in smptlib, CVE-2016-0772. Reported by Team
101 Oststrom
102
103 - Issue #25939: On Windows open the cert store readonly in ssl.enum_certificates.
104
105 - Issue #26012: Don't traverse into symlinks for ** pattern in
106 pathlib.Path.[r]glob().
107
108 - Issue #24120: Ignore PermissionError when traversing a tree with
109 pathlib.Path.[r]glob(). Patch by Ulrich Petri.
110
111 - Skip getaddrinfo if host is already resolved.
112 Patch by A. Jesse Jiryu Davis.
113
114 - Add asyncio.timeout() context manager.
115
116 - Issue #26050: Add asyncio.StreamReader.readuntil() method.
117 Patch by Марк Коренберг.
118
119 Tests
120 -----
121
122 - Issue #25940: Changed test_ssl to use self-signed.pythontest.net. This
123 avoids relying on svn.python.org, which recently changed root certificate.
124
125
126 What's New in Python 3.4.4?
127 ===========================
128
129 Release date: 2015/12/20
130
131 Windows
132 -------
133
134 - Issue #25844: Corrected =/== typo potentially leading to crash in launcher.
135
136
137 What's New in Python 3.4.4rc1?
138 ==============================
139
140 Release date: 2015/12/06
141
142 Core and Builtins
143 -----------------
144
145 - Issue #25709: Fixed problem with in-place string concatenation and utf-8
146 cache.
147
148 - Issue #24097: Fixed crash in object.__reduce__() if slot name is freed inside
149 __getattr__.
150
151 - Issue #24731: Fixed crash on converting objects with special methods
152 __bytes__, __trunc__, and __float__ returning instances of subclasses of
153 bytes, int, and float to subclasses of bytes, int, and float correspondingly.
154
155 - Issue #25388: Fixed tokenizer crash when processing undecodable source code
156 with a null byte.
157
158 - Issue #22995: Default implementation of __reduce__ and __reduce_ex__ now
159 rejects builtin types with not defined __new__.
160
161 - Issue #24802: Avoid buffer overreads when int(), float(), compile(), exec()
162 and eval() are passed bytes-like objects. These objects are not
163 necessarily terminated by a null byte, but the functions assumed they were.
164
165 - Issue #24402: Fix input() to prompt to the redirected stdout when
166 sys.stdout.fileno() fails.
167
168 - Issue #24806: Prevent builtin types that are not allowed to be subclassed from
169 being subclassed through multiple inheritance.
170
171 - Issue #24848: Fixed a number of bugs in UTF-7 decoding of misformed data.
172
173 - Issue #25280: Import trace messages emitted in verbose (-v) mode are no
174 longer formatted twice.
175
176 - Issue #25003: os.urandom() doesn't use getentropy() on Solaris because
177 getentropy() is blocking, whereas os.urandom() should not block. getentropy()
178 is supported since Solaris 11.3.
179
180 - Issue #25182: The stdprinter (used as sys.stderr before the io module is
181 imported at startup) now uses the backslashreplace error handler.
182
183 - Issue #24891: Fix a race condition at Python startup if the file descriptor
184 of stdin (0), stdout (1) or stderr (2) is closed while Python is creating
185 sys.stdin, sys.stdout and sys.stderr objects. These attributes are now set
186 to None if the creation of the object failed, instead of raising an OSError
187 exception. Initial patch written by Marco Paolini.
188
189 - Issue #21167: NAN operations are now handled correctly when python is
190 compiled with ICC even if -fp-model strict is not specified.
191
192 - Issue #4395: Better testing and documentation of binary operators.
193 Patch by Martin Panter.
194
195 - Issue #24467: Fixed possible buffer over-read in bytearray. The bytearray
196 object now always allocates place for trailing null byte and it's buffer now
197 is always null-terminated.
198
199 - Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
200 PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
201 to check for and handle errors correctly.
202
203 - Issue #24257: Fixed system error in the comparison of faked
204 types.SimpleNamespace.
205
206 - Issue #22939: Fixed integer overflow in iterator object. Patch by
207 Clement Rouault.
208
209 - Issue #23985: Fix a possible buffer overrun when deleting a slice from
210 the front of a bytearray and then appending some other bytes data.
211
212 - Issue #24102: Fixed exception type checking in standard error handlers.
213
214 - Issue #23757: PySequence_Tuple() incorrectly called the concrete list API
215 when the data was a list subclass.
216
217 - Issue #24407: Fix crash when dict is mutated while being updated.
218
219 - Issue #24096: Make warnings.warn_explicit more robust against mutation of the
220 warnings.filters list.
221
222 - Issue #23996: Avoid a crash when a delegated generator raises an
223 unnormalized StopIteration exception. Patch by Stefan Behnel.
224
225 - Issue #24022: Fix tokenizer crash when processing undecodable source code.
226
227 - Issue #23309: Avoid a deadlock at shutdown if a daemon thread is aborted
228 while it is holding a lock to a buffered I/O object, and the main thread
229 tries to use the same I/O object (typically stdout or stderr). A fatal
230 error is emitted instead.
231
232 - Issue #22977: Fixed formatting Windows error messages on Wine.
233 Patch by Martin Panter.
234
235 - Issue #23803: Fixed str.partition() and str.rpartition() when a separator
236 is wider then partitioned string.
237
238 - Issue #23192: Fixed generator lambdas. Patch by Bruno Cauet.
239
240 - Issue #23629: Fix the default __sizeof__ implementation for variable-sized
241 objects.
242
243 - Issue #24044: Fix possible null pointer dereference in list.sort in out of
244 memory conditions.
245
246 - Issue #21354: PyCFunction_New function is exposed by python DLL again.
247
248 Library
249 -------
250
251 - Issue #24903: Fix regression in number of arguments compileall accepts when
252 '-d' is specified. The check on the number of arguments has been dropped
253 completely as it never worked correctly anyway.
254
255 - Issue #25764: In the subprocess module, preserve any exception caused by
256 fork() failure when preexec_fn is used.
257
258 - Issue #6478: _strptime's regexp cache now is reset after changing timezone
259 with time.tzset().
260
261 - Issue #25177: Fixed problem with the mean of very small and very large
262 numbers. As a side effect, statistics.mean and statistics.variance should
263 be significantly faster.
264
265 - Issue #25718: Fixed copying object with state with boolean value is false.
266
267 - Issue #10131: Fixed deep copying of minidom documents. Based on patch
268 by Marian Ganisin.
269
270 - Issue #25725: Fixed a reference leak in pickle.loads() when unpickling
271 invalid data including tuple instructions.
272
273 - Issue #25663: In the Readline completer, avoid listing duplicate global
274 names, and search the global namespace before searching builtins.
275
276 - Issue #25688: Fixed file leak in ElementTree.iterparse() raising an error.
277
278 - Issue #23914: Fixed SystemError raised by unpickler on broken pickle data.
279
280 - Issue #25691: Fixed crash on deleting ElementTree.Element attributes.
281
282 - Issue #25624: ZipFile now always writes a ZIP_STORED header for directory
283 entries. Patch by Dingyuan Wang.
284
285 - Issue #25583: Avoid incorrect errors raised by os.makedirs(exist_ok=True)
286 when the OS gives priority to errors such as EACCES over EEXIST.
287
288 - Issue #25593: Change semantics of EventLoop.stop() in asyncio.
289
290 - Issue #6973: When we know a subprocess.Popen process has died, do
291 not allow the send_signal(), terminate(), or kill() methods to do
292 anything as they could potentially signal a different process.
293
294 - Issue #25578: Fix (another) memory leak in SSLSocket.getpeercer().
295
296 - Issue #25590: In the Readline completer, only call getattr() once per
297 attribute.
298
299 - Issue #25498: Fix a crash when garbage-collecting ctypes objects created
300 by wrapping a memoryview. This was a regression made in 3.4.3. Based
301 on patch by Eryksun.
302
303 - Issue #18010: Fix the pydoc web server's module search function to handle
304 exceptions from importing packages.
305
306 - Issue #25510: fileinput.FileInput.readline() now returns b'' instead of ''
307 at the end if the FileInput was opened with binary mode.
308 Patch by Ryosuke Ito.
309
310 - Issue #25530: Disable the vulnerable SSLv3 protocol by default when creating
311 ssl.SSLContext.
312
313 - Issue #25569: Fix memory leak in SSLSocket.getpeercert().
314
315 - Issue #21827: Fixed textwrap.dedent() for the case when largest common
316 whitespace is a substring of smallest leading whitespace.
317 Based on patch by Robert Li.
318
319 - Issue #25471: Sockets returned from accept() shouldn't appear to be
320 nonblocking.
321
322 - Issue #25441: asyncio: Raise error from drain() when socket is closed.
323
324 - Issue #25411: Improved Unicode support in SMTPHandler through better use of
325 the email package. Thanks to user simon04 for the patch.
326
327 - Issue #25380: Fixed protocol for the STACK_GLOBAL opcode in
328 pickletools.opcodes.
329
330 - Issue #23972: Updates asyncio datagram create method allowing reuseport
331 and reuseaddr socket options to be set prior to binding the socket.
332 Mirroring the existing asyncio create_server method the reuseaddr option
333 for datagram sockets defaults to True if the O/S is 'posix' (except if the
334 platform is Cygwin). Patch by Chris Laws.
335
336 - Issue #25304: Add asyncio.run_coroutine_threadsafe(). This lets you
337 submit a coroutine to a loop from another thread, returning a
338 concurrent.futures.Future. By Vincent Michel.
339
340 - Issue #25319: When threading.Event is reinitialized, the underlying condition
341 should use a regular lock rather than a recursive lock.
342
343 - Issue #25232: Fix CGIRequestHandler to split the query from the URL at the
344 first question mark (?) rather than the last. Patch from Xiang Zhang.
345
346 - Issue #24657: Prevent CGIRequestHandler from collapsing slashes in the
347 query part of the URL as if it were a path. Patch from Xiang Zhang.
348
349 - Issue #22958: Constructor and update method of weakref.WeakValueDictionary
350 now accept the self and the dict keyword arguments.
351
352 - Issue #22609: Constructor of collections.UserDict now accepts the self keyword
353 argument.
354
355 - Issue #25262. Added support for BINBYTES8 opcode in Python implementation of
356 unpickler. Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8
357 opcodes no longer silently ignored on 32-bit platforms in C implementation.
358
359 - Issue #25034: Fix string.Formatter problem with auto-numbering and
360 nested format_specs. Patch by Anthon van der Neut.
361
362 - Issue #25233: Rewrite the guts of asyncio.Queue and
363 asyncio.Semaphore to be more understandable and correct.
364
365 - Issue #23600: Default implementation of tzinfo.fromutc() was returning
366 wrong results in some cases.
367
368 - Issue #25203: Failed readline.set_completer_delims() no longer left the
369 module in inconsistent state.
370
371 - Prevent overflow in _Unpickler_Read.
372
373 - Issue #25047: The XML encoding declaration written by Element Tree now
374 respects the letter case given by the user. This restores the ability to
375 write encoding names in uppercase like "UTF-8", which worked in Python 2.
376
377 - Issue #19143: platform module now reads Windows version from kernel32.dll to
378 avoid compatibility shims.
379
380 - Issue #23517: Fix rounding in fromtimestamp() and utcfromtimestamp() methods
381 of datetime.datetime: microseconds are now rounded to nearest with ties
382 going to nearest even integer (ROUND_HALF_EVEN), instead of being rounding
383 towards zero (ROUND_DOWN). It's important that these methods use the same
384 rounding mode than datetime.timedelta to keep the property:
385 (datetime(1970,1,1) + timedelta(seconds=t)) == datetime.utcfromtimestamp(t).
386 It also the rounding mode used by round(float) for example.
387
388 - Issue #24684: socket.socket.getaddrinfo() now calls
389 PyUnicode_AsEncodedString() instead of calling the encode() method of the
390 host, to handle correctly custom string with an encode() method which doesn't
391 return a byte string. The encoder of the IDNA codec is now called directly
392 instead of calling the encode() method of the string.
393
394 - Issue #24982: shutil.make_archive() with the "zip" format now adds entries
395 for directories (including empty directories) in ZIP file.
396
397 - Issue #24857: Comparing call_args to a long sequence now correctly returns a
398 boolean result instead of raising an exception. Patch by A Kaptur.
399
400 - Issue #25019: Fixed a crash caused by setting non-string key of expat parser.
401 Based on patch by John Leitch.
402
403 - Issue #24917: time_strftime() buffer over-read.
404
405 - Issue #23144: Make sure that HTMLParser.feed() returns all the data, even
406 when convert_charrefs is True.
407
408 - Issue #16180: Exit pdb if file has syntax error, instead of trapping user
409 in an infinite loop. Patch by Xavier de Gaye.
410
411 - Issue #21112: Fix regression in unittest.expectedFailure on subclasses.
412 Patch from Berker Peksag.
413
414 - Issue #24931: Instances of subclasses of namedtuples have their own __dict__
415 which breaks the inherited __dict__ property and breaks the _asdict() method.
416 Removed the __dict__ property to prevent the conflict and fixed _asdict().
417
418 - Issue #24764: cgi.FieldStorage.read_multi() now ignores the Content-Length
419 header in part headers. Patch written by Peter Landry and reviewed by Pierre
420 Quentel.
421
422 - Issue #24774: Fix docstring in http.server.test. Patch from Chiu-Hsiang Hsu.
423
424 - Issue #21159: Improve message in configparser.InterpolationMissingOptionError.
425 Patch from Łukasz Langa.
426
427 - Issue #23888: Handle fractional time in cookie expiry. Patch by ssh.
428
429 - Issue #23004: mock_open() now reads binary data correctly when the type of
430 read_data is bytes. Initial patch by Aaron Hill.
431
432 - Issue #23652: Make it possible to compile the select module against the
433 libc headers from the Linux Standard Base, which do not include some
434 EPOLL macros. Patch by Matt Frank.
435
436 - Issue #22932: Fix timezones in email.utils.formatdate.
437 Patch from Dmitry Shachnev.
438
439 - Issue #23779: imaplib raises TypeError if authenticator tries to abort.
440 Patch from Craig Holmquist.
441
442 - Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch
443 written by Matthieu Gautier.
444
445 - Issue #23254: Document how to close the TCPServer listening socket.
446 Patch from Martin Panter.
447
448 - Issue #19450: Update Windows and OS X installer builds to use SQLite 3.8.11.
449
450 - Issue #23441: rcompleter now prints a tab character instead of displaying
451 possible completions for an empty word. Initial patch by Martin Sekera.
452
453 - Issue #24735: Fix invalid memory access in
454 itertools.combinations_with_replacement().
455
456 - Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.
457
458 - Issue #24683: Fixed crashes in _json functions called with arguments of
459 inappropriate type.
460
461 - Issue #21697: shutil.copytree() now correctly handles symbolic links that
462 point to directories. Patch by Eduardo Seabra and Thomas Kluyver.
463
464 - Issue #24620: Random.setstate() now validates the value of state last element.
465
466 - Issue #22153: Improve unittest docs. Patch from Martin Panter and evilzero.
467
468 - Issue #24206: Fixed __eq__ and __ne__ methods of inspect classes.
469
470 - Issue #21750: mock_open.read_data can now be read from each instance, as it
471 could in Python 3.3.
472
473 - Issue #23247: Fix a crash in the StreamWriter.reset() of CJK codecs.
474
475 - Issue #18622: unittest.mock.mock_open().reset_mock would recurse infinitely.
476 Patch from Nicola Palumbo and Laurent De Buyst.
477
478 - Issue #24608: chunk.Chunk.read() now always returns bytes, not str.
479
480 - Issue #18684: Fixed reading out of the buffer in the re module.
481
482 - Issue #24259: tarfile now raises a ReadError if an archive is truncated
483 inside a data segment.
484
485 - Issue #24552: Fix use after free in an error case of the _pickle module.
486
487 - Issue #24514: tarfile now tolerates number fields consisting of only
488 whitespace.
489
490 - Issue #19176: Fixed doctype() related bugs in C implementation of ElementTree.
491 A deprecation warning no longer issued by XMLParser subclass with default
492 doctype() method. Direct call of doctype() now issues a warning. Parser's
493 doctype() now is not called if target's doctype() is called. Based on patch
494 by Martin Panter.
495
496 - Issue #20387: Restore semantic round-trip correctness in tokenize/untokenize
497 for tab-indented blocks.
498
499 - Issue #24456: Fixed possible buffer over-read in adpcm2lin() and lin2adpcm()
500 functions of the audioop module.
501
502 - Issue #24336: The contextmanager decorator now works with functions with
503 keyword arguments called "func" and "self". Patch by Martin Panter.
504
505 - Issue #24489: ensure a previously set C errno doesn't disturb cmath.polar().
506
507 - Issue #5633: Fixed timeit when the statement is a string and the setup is not.
508
509 - Issue #24326: Fixed audioop.ratecv() with non-default weightB argument.
510 Original patch by David Moore.
511
512 - Issue #23840: tokenize.open() now closes the temporary binary file on error
513 to fix a resource warning.
514
515 - Issue #24257: Fixed segmentation fault in sqlite3.Row constructor with faked
516 cursor type.
517
518 - Issue #22107: tempfile.gettempdir() and tempfile.mkdtemp() now try again
519 when a directory with the chosen name already exists on Windows as well as
520 on Unix. tempfile.mkstemp() now fails early if parent directory is not
521 valid (not exists or is a file) on Windows.
522
523 - Issue #6598: Increased time precision and random number range in
524 email.utils.make_msgid() to strengthen the uniqueness of the message ID.
525
526 - Issue #24091: Fixed various crashes in corner cases in C implementation of
527 ElementTree.
528
529 - Issue #21931: msilib.FCICreate() now raises TypeError in the case of a bad
530 argument instead of a ValueError with a bogus FCI error number.
531 Patch by Jeffrey Armstrong.
532
533 - Issue #23796: peek and read1 methods of BufferedReader now raise ValueError
534 if they called on a closed object. Patch by John Hergenroeder.
535
536 - Issue #24521: Fix possible integer overflows in the pickle module.
537
538 - Issue #22931: Allow '[' and ']' in cookie values.
539
540 - Issue #20274: Remove ignored and erroneous "kwargs" parameters from three
541 METH_VARARGS methods on _sqlite.Connection.
542
543 - Issue #24094: Fix possible crash in json.encode with poorly behaved dict
544 subclasses.
545
546 - Asyncio issue 222 / PR 231 (Victor Stinner) -- fix @coroutine
547 functions without __name__.
548
549 - Issue #9246: On POSIX, os.getcwd() now supports paths longer than 1025 bytes.
550 Patch written by William Orr.
551
552 - The keywords attribute of functools.partial is now always a dictionary.
553
554 - Issues #24099, #24100, and #24101: Fix free-after-use bug in heapq's siftup
555 and siftdown functions.
556
557 - Backport collections.deque fixes from Python 3.5. Prevents reentrant badness
558 during deletion by deferring the decref until the container has been restored
559 to a consistent state.
560
561 - Issue #23008: Fixed resolving attributes with boolean value is False in pydoc.
562
563 - Fix asyncio issue 235: LifoQueue and PriorityQueue's put didn't
564 increment unfinished tasks (this bug was introduced in 3.4.3 when
565 JoinableQueue was merged with Queue).
566
567 - Issue #23908: os functions now reject paths with embedded null character
568 on Windows instead of silently truncate them.
569
570 - Issue #23728: binascii.crc_hqx() could return an integer outside of the range
571 0-0xffff for empty data.
572
573 - Issue #23811: Add missing newline to the PyCompileError error message.
574 Patch by Alex Shkop.
575
576 - Issue #17898: Fix exception in gettext.py when parsing certain plural forms.
577
578 - Issue #22982: Improve BOM handling when seeking to multiple positions of
579 a writable text file.
580
581 - Issue #23865: close() methods in multiple modules now are idempotent and more
582 robust at shutdown. If they need to release multiple resources, all are
583 released even if errors occur.
584
585 - Issue #23881: urllib.request.ftpwrapper constructor now closes the socket if
586 the FTP connection failed to fix a ResourceWarning.
587
588 - Issue #23400: Raise same exception on both Python 2 and 3 if sem_open is not
589 available. Patch by Davin Potts.
590
591 - Issue #15133: _tkinter.tkapp.getboolean() now supports Tcl_Obj and always
592 returns bool. tkinter.BooleanVar now validates input values (accepted bool,
593 int, str, and Tcl_Obj). tkinter.BooleanVar.get() now always returns bool.
594
595 - Issue #23338: Fixed formatting ctypes error messages on Cygwin.
596 Patch by Makoto Kato.
597
598 - Issue #16840: Tkinter now supports 64-bit integers added in Tcl 8.4 and
599 arbitrary precision integers added in Tcl 8.5.
600
601 - Issue #23834: Fix socket.sendto(), use the C Py_ssize_t type to store the
602 result of sendto() instead of the C int type.
603
604 - Issue #21526: Tkinter now supports new boolean type in Tcl 8.5.
605
606 - Issue #23838: linecache now clears the cache and returns an empty result on
607 MemoryError.
608
609 - Issue #18473: Fixed 2to3 and 3to2 compatible pickle mappings. Fixed
610 ambigious reverse mappings. Added many new mappings. Import mapping is no
611 longer applied to modules already mapped with full name mapping.
612
613 - Issue #23745: The new email header parser now handles duplicate MIME
614 parameter names without error, similar to how get_param behaves.
615
616 - Issue #23792: Ignore KeyboardInterrupt when the pydoc pager is active.
617 This mimics the behavior of the standard unix pagers, and prevents
618 pipepager from shutting down while the pager itself is still running.
619
620 - Issue #23742: ntpath.expandvars() no longer loses unbalanced single quotes.
621
622 - Issue #21802: The reader in BufferedRWPair now is closed even when closing
623 writer failed in BufferedRWPair.close().
624
625 - Issue #23671: string.Template now allows to specify the "self" parameter as
626 keyword argument. string.Formatter now allows to specify the "self" and
627 the "format_string" parameters as keyword arguments.
628
629 - Issue #21560: An attempt to write a data of wrong type no longer cause
630 GzipFile corruption. Original patch by Wolfgang Maier.
631
632 - Issue #23647: Increase imaplib's MAXLINE to accommodate modern mailbox sizes.
633
634 - Issue #23539: If body is None, http.client.HTTPConnection.request now sets
635 Content-Length to 0 for PUT, POST, and PATCH headers to avoid 411 errors from
636 some web servers.
637
638 - Issue #22351: The nntplib.NNTP constructor no longer leaves the connection
639 and socket open until the garbage collector cleans them up. Patch by
640 Martin Panter.
641
642 - Issue #23136: _strptime now uniformly handles all days in week 0, including
643 Dec 30 of previous year. Based on patch by Jim Carroll.
644
645 - Issue #23700: Iterator of NamedTemporaryFile now keeps a reference to
646 NamedTemporaryFile instance. Patch by Bohuslav Kabrda.
647
648 - Issue #22903: The fake test case created by unittest.loader when it fails
649 importing a test module is now picklable.
650
651 - Issue #23568: Add rdivmod support to MagicMock() objects.
652 Patch by Håkan Lövdahl.
653
654 - Issue #23138: Fixed parsing cookies with absent keys or values in cookiejar.
655 Patch by Demian Brecht.
656
657 - Issue #23051: multiprocessing.Pool methods imap() and imap_unordered() now
658 handle exceptions raised by an iterator. Patch by Alon Diamant and Davin
659 Potts.
660
661 - Issue #22928: Disabled HTTP header injections in http.client.
662 Original patch by Demian Brecht.
663
664 - Issue #23615: Modules bz2, tarfile and tokenize now can be reloaded with
665 imp.reload(). Patch by Thomas Kluyver.
666
667 - Issue #23476: In the ssl module, enable OpenSSL's X509_V_FLAG_TRUSTED_FIRST
668 flag on certificate stores when it is available.
669
670 - Issue #23576: Avoid stalling in SSL reads when EOF has been reached in the
671 SSL layer but the underlying connection hasn't been closed.
672
673 - Issue #23504: Added an __all__ to the types module.
674
675 - Issue #20204: Added the __module__ attribute to _tkinter classes.
676
677 - Issue #23521: Corrected pure python implementation of timedelta division.
678
679 * Eliminated OverflowError from timedelta * float for some floats;
680 * Corrected rounding in timedelta true division.
681
682 - Issue #21619: Popen objects no longer leave a zombie after exit in the with
683 statement if the pipe was broken. Patch by Martin Panter.
684
685 - Issue #6639: Module-level turtle functions no longer raise TclError after
686 closing the window.
687
688 - Issues #814253, #9179: Warnings now are raised when group references and
689 conditional group references are used in lookbehind assertions in regular
690 expressions.
691
692 - Issue #23215: Multibyte codecs with custom error handlers that ignores errors
693 consumed too much memory and raised SystemError or MemoryError.
694 Original patch by Aleksi Torhamo.
695
696 - Issue #5700: io.FileIO() called flush() after closing the file.
697 flush() was not called in close() if closefd=False.
698
699 - Issue #23374: Fixed pydoc failure with non-ASCII files when stdout encoding
700 differs from file system encoding (e.g. on Mac OS).
701
702 - Issue #23481: Remove RC4 from the SSL module's default cipher list.
703
704 - Issue #21548: Fix pydoc.synopsis() and pydoc.apropos() on modules with empty
705 docstrings.
706
707 - Issue #22885: Fixed arbitrary code execution vulnerability in the dbm.dumb
708 module. Original patch by Claudiu Popa.
709
710 - Issue #23146: Fix mishandling of absolute Windows paths with forward
711 slashes in pathlib.
712
713 - Issue #23421: Fixed compression in tarfile CLI. Patch by wdv4758h.
714
715 - Issue #23367: Fix possible overflows in the unicodedata module.
716
717 - Issue #23361: Fix possible overflow in Windows subprocess creation code.
718
719 - Issue #23801: Fix issue where cgi.FieldStorage did not always ignore the
720 entire preamble to a multipart body.
721
722 - Issue #23310: Fix MagicMock's initializer to work with __methods__, just
723 like configure_mock(). Patch by Kasia Jachim.
724
725 - asyncio: New event loop APIs: set_task_factory() and get_task_factory().
726
727 - asyncio: async() function is deprecated in favour of ensure_future().
728
729 - Issue #23898: Fix inspect.classify_class_attrs() to support attributes
730 with overloaded __eq__ and __bool__. Patch by Mike Bayer.
731
732 - Issue #24298: Fix inspect.signature() to correctly unwrap wrappers
733 around bound methods.
734
735 - Issue #23572: Fixed functools.singledispatch on classes with falsy
736 metaclasses. Patch by Ethan Furman.
737
738 IDLE
739 ----
740
741 - Issue 15348: Stop the debugger engine (normally in a user process)
742 before closing the debugger window (running in the IDLE process).
743 This prevents the RuntimeErrors that were being caught and ignored.
744
745 - Issue #24455: Prevent IDLE from hanging when a) closing the shell while the
746 debugger is active (15347); b) closing the debugger with the [X] button
747 (15348); and c) activating the debugger when already active (24455).
748 The patch by Mark Roseman does this by making two changes.
749 1. Suspend and resume the gui.interaction method with the tcl vwait
750 mechanism intended for this purpose (instead of root.mainloop & .quit).
751 2. In gui.run, allow any existing interaction to terminate first.
752
753 - Change 'The program' to 'Your program' in an IDLE 'kill program?' message
754 to make it clearer that the program referred to is the currently running
755 user program, not IDLE itself.
756
757 - Issue #24750: Improve the appearance of the IDLE editor window status bar.
758 Patch by Mark Roseman.
759
760 - Issue #25313: Change the handling of new built-in text color themes to better
761 address the compatibility problem introduced by the addition of IDLE Dark.
762 Consistently use the revised idleConf.CurrentTheme everywhere in idlelib.
763
764 - Issue #24782: Extension configuration is now a tab in the IDLE Preferences
765 dialog rather than a separate dialog. The former tabs are now a sorted
766 list. Patch by Mark Roseman.
767
768 - Issue #22726: Re-activate the config dialog help button with some content
769 about the other buttons and the new IDLE Dark theme.
770
771 - Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme.
772 It is more or less IDLE Classic inverted, with a cobalt blue background.
773 Strings, comments, keywords, ... are still green, red, orange, ... .
774 To use it with IDLEs released before November 2015, hit the
775 'Save as New Custom Theme' button and enter a new name,
776 such as 'Custom Dark'. The custom theme will work with any IDLE
777 release, and can be modified.
778
779 - Issue #25224: README.txt is now an idlelib index for IDLE developers and
780 curious users. The previous user content is now in the IDLE doc chapter.
781 'IDLE' now means 'Integrated Development and Learning Environment'.
782
783 - Issue #24820: Users can now set breakpoint colors in
784 Settings -> Custom Highlighting. Original patch by Mark Roseman.
785
786 - Issue #24972: Inactive selection background now matches active selection
787 background, as configured by users, on all systems. Found items are now
788 always highlighted on Windows. Initial patch by Mark Roseman.
789
790 - Issue #24570: Idle: make calltip and completion boxes appear on Macs
791 affected by a tk regression. Initial patch by Mark Roseman.
792
793 - Issue #24988: Idle ScrolledList context menus (used in debugger)
794 now work on Mac Aqua. Patch by Mark Roseman.
795
796 - Issue #24801: Make right-click for context menu work on Mac Aqua.
797 Patch by Mark Roseman.
798
799 - Issue #25173: Associate tkinter messageboxes with a specific widget.
800 For Mac OSX, make them a 'sheet'. Patch by Mark Roseman.
801
802 - Issue #25198: Enhance the initial html viewer now used for Idle Help.
803 * Properly indent fixed-pitch text (patch by Mark Roseman).
804 * Give code snippet a very Sphinx-like light blueish-gray background.
805 * Re-use initial width and height set by users for shell and editor.
806 * When the Table of Contents (TOC) menu is used, put the section header
807 at the top of the screen.
808
809 - Issue #25225: Condense and rewrite Idle doc section on text colors.
810
811 - Issue #21995: Explain some differences between IDLE and console Python.
812
813 - Issue #22820: Explain need for *print* when running file from Idle editor.
814
815 - Issue #25224: Doc: augment Idle feature list and no-subprocess section.
816
817 - Issue #25219: Update doc for Idle command line options.
818 Some were missing and notes were not correct.
819
820 - Issue #24861: Most of idlelib is private and subject to change.
821 Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__.
822
823 - Issue #25199: Idle: add synchronization comments for future maintainers.
824
825 - Issue #16893: Replace help.txt with help.html for Idle doc display.
826 The new idlelib/help.html is rstripped Doc/build/html/library/idle.html.
827 It looks better than help.txt and will better document Idle as released.
828 The tkinter html viewer that works for this file was written by Mark Roseman.
829 The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated.
830
831 - Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6.
832
833 - Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts).
834
835 - Issue #23672: Allow Idle to edit and run files with astral chars in name.
836 Patch by Mohd Sanad Zaki Rizvi.
837
838 - Issue 24745: Idle editor default font. Switch from Courier to
839 platform-sensitive TkFixedFont. This should not affect current customized
840 font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg
841 and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman.
842
843 - Issue #21192: Idle editor. When a file is run, put its name in the restart bar.
844 Do not print false prompts. Original patch by Adnan Umer.
845
846 - Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy.
847
848 - Issue #23184: remove unused names and imports in idlelib.
849 Initial patch by Al Sweigart.
850
851 Tests
852 -----
853
854 - Issue #25616: Tests for OrderedDict are extracted from test_collections
855 into separate file test_ordered_dict.
856
857 - Issue #25099: Make test_compileall not fail when an entry on sys.path cannot
858 be written to (commonly seen in administrative installs on Windows).
859
860 - Issue #24751: When running regrtest with the ``-w`` command line option,
861 a test run is no longer marked as a failure if all tests succeed when
862 re-run.
863
864 - Issue #21520: test_zipfile no longer fails if the word 'bad' appears
865 anywhere in the name of the current directory.
866
867 - Issue #23799: Added test.support.start_threads() for running and
868 cleaning up multiple threads.
869
870 - Issue #22390: test.regrtest now emits a warning if temporary files or
871 directories are left after running a test.
872
873 - Issue #23583: Added tests for standard IO streams in IDLE.
874
875 Build
876 -----
877
878 - Issue #23445: pydebug builds now use "gcc -Og" where possible, to make
879 the resulting executable faster.
880
881 - Issue #24603: Update Windows builds to use OpenSSL1.0.2d
882 and OS X 10.5 installer to use OpenSSL 1.0.2e.
883
884 C API
885 -----
886
887 - Issue #23998: PyImport_ReInitLock() now checks for lock allocation error
888
889 Documentation
890 -------------
891
892 - Issue #12067: Rewrite Comparisons section in the Expressions chapter of the
893 language reference. Some of the details of comparing mixed types were
894 incorrect or ambiguous. NotImplemented is only relevant at a lower level
895 than the Expressions chapter. Added details of comparing range() objects,
896 and default behaviour and consistency suggestions for user-defined classes.
897 Patch from Andy Maier.
898
899 - Issue #24952: Clarify the default size argument of stack_size() in
900 the "threading" and "_thread" modules. Patch from Mattip.
901
902 - Issue #24808: Update the types of some PyTypeObject fields. Patch by
903 Joseph Weston.
904
905 - Issue #22812: Fix unittest discovery examples.
906 Patch from Pam McA'Nulty.
907
908 - Issue #24129: Clarify the reference documentation for name resolution.
909 This includes removing the assumption that readers will be familiar with the
910 name resolution scheme Python used prior to the introduction of lexical
911 scoping for function namespaces. Patch by Ivan Levkivskyi.
912
913 - Issue #20769: Improve reload() docs. Patch by Dorian Pula.
914
915 - Issue #23589: Remove duplicate sentence from the FAQ. Patch by Yongzhi Pan.
916
917 - Issue #24729: Correct IO tutorial to match implementation regarding
918 encoding parameter to open function.
919
920 - Issue #24351: Clarify what is meant by "identifier" in the context of
921 string.Template instances.
922
923 - Issue #22155: Add File Handlers subsection with createfilehandler to tkinter
924 doc. Remove obsolete example from FAQ. Patch by Martin Panter.
925
926 - Issue #24029: Document the name binding behavior for submodule imports.
927
928 - Issue #24077: Fix typo in man page for -I command option: -s, not -S.
929
930 Tools/Demos
931 -----------
932
933 - Issue #25440: Fix output of python-config --extension-suffix.
934
935 - Issue #23330: h2py now supports arbitrary filenames in #include.
936
937 - Issue #24031: make patchcheck now supports git checkouts, too.
938
939 Windows
940 -------
941
942 - Issue #24306: Sets component ID for launcher to match 3.5 and later
943 to avoid downgrading.
944
945 - Issue #25022: Removed very outdated PC/example_nt/ directory.
946
947
948 What's New in Python 3.4.3?
949 ===========================
950
951 Release date: 2015-02-23
952
953 Core and Builtins
954 -----------------
955
956 - Issue #22735: Fix many edge cases (including crashes) involving custom mro()
957 implementations.
958
959 - Issue #22896: Avoid using PyObject_AsCharBuffer(), PyObject_AsReadBuffer()
960 and PyObject_AsWriteBuffer().
961
962 - Issue #21295: Revert some changes (issue #16795) to AST line numbers and
963 column offsets that constituted a regression.
964
965 - Issue #21408: The default __ne__() now returns NotImplemented if __eq__()
966 returned NotImplemented. Original patch by Martin Panter.
967
968 - Issue #23321: Fixed a crash in str.decode() when error handler returned
969 replacement string longer than malformed input data.
970
971 - Issue #23048: Fix jumping out of an infinite while loop in the pdb.
972
973 - Issue #20335: bytes constructor now raises TypeError when encoding or errors
974 is specified with non-string argument. Based on patch by Renaud Blanch.
975
976 - Issue #22335: Fix crash when trying to enlarge a bytearray to 0x7fffffff
977 bytes on a 32-bit platform.
978
979 - Issue #22653: Fix an assertion failure in debug mode when doing a reentrant
980 dict insertion in debug mode.
981
982 - Issue #22643: Fix integer overflow in Unicode case operations (upper, lower,
983 title, swapcase, casefold).
984
985 - Issue #22604: Fix assertion error in debug mode when dividing a complex
986 number by (nan+0j).
987
988 - Issue #22470: Fixed integer overflow issues in "backslashreplace",
989 "xmlcharrefreplace", and "surrogatepass" error handlers.
990
991 - Issue #22520: Fix overflow checking when generating the repr of a unicode
992 object.
993
994 - Issue #22519: Fix overflow checking in PyBytes_Repr.
995
996 - Issue #22518: Fix integer overflow issues in latin-1 encoding.
997
998 - Issue #23165: Perform overflow checks before allocating memory in the
999 _Py_char2wchar function.
1000
1001 Library
1002 -------
1003
1004 - Issue #23399: pyvenv creates relative symlinks where possible.
1005
1006 - Issue #23099: Closing io.BytesIO with exported buffer is rejected now to
1007 prevent corrupting exported buffer.
1008
1009 - Issue #23363: Fix possible overflow in itertools.permutations.
1010
1011 - Issue #23364: Fix possible overflow in itertools.product.
1012
1013 - Issue #23366: Fixed possible integer overflow in itertools.combinations.
1014
1015 - Issue #23369: Fixed possible integer overflow in
1016 _json.encode_basestring_ascii.
1017
1018 - Issue #23353: Fix the exception handling of generators in
1019 PyEval_EvalFrameEx(). At entry, save or swap the exception state even if
1020 PyEval_EvalFrameEx() is called with throwflag=0. At exit, the exception state
1021 is now always restored or swapped, not only if why is WHY_YIELD or
1022 WHY_RETURN. Patch co-written with Antoine Pitrou.
1023
1024 - Issue #18518: timeit now rejects statements which can't be compiled outside
1025 a function or a loop (e.g. "return" or "break").
1026
1027 - Issue #23094: Fixed readline with frames in Python implementation of pickle.
1028
1029 - Issue #23268: Fixed bugs in the comparison of ipaddress classes.
1030
1031 - Issue #21408: Removed incorrect implementations of __ne__() which didn't
1032 returned NotImplemented if __eq__() returned NotImplemented. The default
1033 __ne__() now works correctly.
1034
1035 - Issue #19996: :class:`email.feedparser.FeedParser` now handles (malformed)
1036 headers with no key rather than assuming the body has started.
1037
1038 - Issue #23248: Update ssl error codes from latest OpenSSL git master.
1039
1040 - Issue #23098: 64-bit dev_t is now supported in the os module.
1041
1042 - Issue #23250: In the http.cookies module, capitalize "HttpOnly" and "Secure"
1043 as they are written in the standard.
1044
1045 - Issue #23063: In the distutils' check command, fix parsing of reST with code or
1046 code-block directives.
1047
1048 - Issue #23209, #23225: selectors.BaseSelector.close() now clears its internal
1049 reference to the selector mapping to break a reference cycle. Initial patch
1050 written by Martin Richard.
1051
1052 - Issue #21356: Make ssl.RAND_egd() optional to support LibreSSL. The
1053 availability of the function is checked during the compilation. Patch written
1054 by Bernard Spil.
1055
1056 - Issue #20896, #22935: The :func:`ssl.get_server_certificate` function now
1057 uses the :data:`~ssl.PROTOCOL_SSLv23` protocol by default, not
1058 :data:`~ssl.PROTOCOL_SSLv3`, for maximum compatibility and support platforms
1059 where :data:`~ssl.PROTOCOL_SSLv3` support is disabled.
1060
1061 - Issue #23111: In the ftplib, make ssl.PROTOCOL_SSLv23 the default protocol
1062 version.
1063
1064 - Issue #23132: Mitigate regression in speed and clarity in functools.total_ordering.
1065
1066 - Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(),
1067 instead of reading /dev/urandom, to get pseudo-random bytes.
1068
1069 - Issue #23112: Fix SimpleHTTPServer to correctly carry the query string and
1070 fragment when it redirects to add a trailing slash.
1071
1072 - Issue #23093: In the io, module allow more operations to work on detached
1073 streams.
1074
1075 - Issue #19104: pprint now produces evaluable output for wrapped strings.
1076
1077 - Issue #23071: Added missing names to codecs.__all__. Patch by Martin Panter.
1078
1079 - Issue #15513: Added a __sizeof__ implementation for pickle classes.
1080
1081 - Issue #19858: pickletools.optimize() now aware of the MEMOIZE opcode, can
1082 produce more compact result and no longer produces invalid output if input
1083 data contains MEMOIZE opcodes together with PUT or BINPUT opcodes.
1084
1085 - Issue #22095: Fixed HTTPConnection.set_tunnel with default port. The port
1086 value in the host header was set to "None". Patch by Demian Brecht.
1087
1088 - Issue #23016: A warning no longer produces an AttributeError when the program
1089 is run with pythonw.exe.
1090
1091 - Issue #21775: shutil.copytree(): fix crash when copying to VFAT. An exception
1092 handler assumed that that OSError objects always have a 'winerror' attribute.
1093 That is not the case, so the exception handler itself raised AttributeError
1094 when run on Linux (and, presumably, any other non-Windows OS).
1095 Patch by Greg Ward.
1096
1097 - Issue #1218234: Fix inspect.getsource() to load updated source of
1098 reloaded module. Initial patch by Berker Peksag.
1099
1100 - Issue #22959: In the constructor of http.client.HTTPSConnection, prefer the
1101 context's check_hostname attribute over the *check_hostname* parameter.
1102
1103 - Issue #16043: Add a default limit for the amount of data xmlrpclib.gzip_decode
1104 will return. This resolves CVE-2013-1753.
1105
1106 - Issue #22966: Fix __pycache__ pyc file name clobber when pyc_compile is
1107 asked to compile a source file containing multiple dots in the source file
1108 name.
1109
1110 - Issue #21971: Update turtledemo doc and add module to the index.
1111
1112 - Issue #21032. Fixed socket leak if HTTPConnection.getresponse() fails.
1113 Original patch by Martin Panter.
1114
1115 - Issue #22960: Add a context argument to xmlrpclib.ServerProxy constructor.
1116
1117 - Issue #22915: SAX parser now supports files opened with file descriptor or
1118 bytes path.
1119
1120 - Issue #22609: Constructors and update methods of mapping classes in the
1121 collections module now accept the self keyword argument.
1122
1123 - Issue #22788: Add *context* parameter to logging.handlers.HTTPHandler.
1124
1125 - Issue #22921: Allow SSLContext to take the *hostname* parameter even if
1126 OpenSSL doesn't support SNI.
1127
1128 - Issue #22894: TestCase.subTest() would cause the test suite to be stopped
1129 when in failfast mode, even in the absence of failures.
1130
1131 - Issue #22638: SSLv3 is now disabled throughout the standard library.
1132 It can still be enabled by instantiating a SSLContext manually.
1133
1134 - Issue #22370: Windows detection in pathlib is now more robust.
1135
1136 - Issue #22841: Reject coroutines in asyncio add_signal_handler().
1137 Patch by Ludovic.Gasc.
1138
1139 - Issue #22849: Fix possible double free in the io.TextIOWrapper constructor.
1140
1141 - Issue #12728: Different Unicode characters having the same uppercase but
1142 different lowercase are now matched in case-insensitive regular expressions.
1143
1144 - Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian
1145 platforms.
1146
1147 - Issue #22406: Fixed the uu_codec codec incorrectly ported to 3.x.
1148 Based on patch by Martin Panter.
1149
1150 - Issue #17293: uuid.getnode() now determines MAC address on AIX using netstat.
1151 Based on patch by Aivars Kalvāns.
1152
1153 - Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments.
1154
1155 - Issue #22417: Verify certificates by default in httplib (PEP 476).
1156
1157 - Issue #22775: Fixed unpickling of http.cookies.SimpleCookie with protocol 2
1158 and above. Patch by Tim Graham.
1159
1160 - Issue #22366: urllib.request.urlopen will accept a context object
1161 (SSLContext) as an argument which will then used be for HTTPS connection.
1162 Patch by Alex Gaynor.
1163
1164 - Issue #22776: Brought excluded code into the scope of a try block in
1165 SysLogHandler.emit().
1166
1167 - Issue #22665: Add missing get_terminal_size and SameFileError to
1168 shutil.__all__.
1169
1170 - Issue #17381: Fixed handling of case-insensitive ranges in regular
1171 expressions.
1172
1173 - Issue #22410: Module level functions in the re module now cache compiled
1174 locale-dependent regular expressions taking into account the locale.
1175
1176 - Issue #22759: Query methods on pathlib.Path() (exists(), is_dir(), etc.)
1177 now return False when the underlying stat call raises NotADirectoryError.
1178
1179 - Issue #8876: distutils now falls back to copying files when hard linking
1180 doesn't work. This allows use with special filesystems such as VirtualBox
1181 shared folders.
1182
1183 - Issue #18853: Fixed ResourceWarning in shlex.__nain__.
1184
1185 - Issue #9351: Defaults set with set_defaults on an argparse subparser
1186 are no longer ignored when also set on the parent parser.
1187
1188 - Issue #21991: Make email.headerregistry's header 'params' attributes
1189 be read-only (MappingProxyType). Previously the dictionary was modifiable
1190 but a new one was created on each access of the attribute.
1191
1192 - Issue #22641: In asyncio, the default SSL context for client connections
1193 is now created using ssl.create_default_context(), for stronger security.
1194
1195 - Issue #22435: Fix a file descriptor leak when SocketServer bind fails.
1196
1197 - Issue #13096: Fixed segfault in CTypes POINTER handling of large
1198 values.
1199
1200 - Issue #11694: Raise ConversionError in xdrlib as documented. Patch
1201 by Filip Gruszczyński and Claudiu Popa.
1202
1203 - Issue #22462: Fix pyexpat's creation of a dummy frame to make it
1204 appear in exception tracebacks.
1205
1206 - Issue #21173: Fix len() on a WeakKeyDictionary when .clear() was called
1207 with an iterator alive.
1208
1209 - Issue #11866: Eliminated race condition in the computation of names
1210 for new threads.
1211
1212 - Issue #21905: Avoid RuntimeError in pickle.whichmodule() when sys.modules
1213 is mutated while iterating. Patch by Olivier Grisel.
1214
1215 - Issue #22219: The zipfile module CLI now adds entries for directories
1216 (including empty directories) in ZIP file.
1217
1218 - Issue #22449: In the ssl.SSLContext.load_default_certs, consult the
1219 environmental variables SSL_CERT_DIR and SSL_CERT_FILE on Windows.
1220
1221 - Issue #20076: Added non derived UTF-8 aliases to locale aliases table.
1222
1223 - Issue #20079: Added locales supported in glibc 2.18 to locale alias table.
1224
1225 - Issue #22396: On 32-bit AIX platform, don't expose os.posix_fadvise() nor
1226 os.posix_fallocate() because their prototypes in system headers are wrong.
1227
1228 - Issue #22517: When a io.BufferedRWPair object is deallocated, clear its
1229 weakrefs.
1230
1231 - Issue #22448: Improve canceled timer handles cleanup to prevent
1232 unbound memory usage. Patch by Joshua Moore-Oliva.
1233
1234 - Issue #23009: Make sure selectors.EpollSelector.select() works when no
1235 FD is registered.
1236
1237 IDLE
1238 ----
1239
1240 - Issue #20577: Configuration of the max line length for the FormatParagraph
1241 extension has been moved from the General tab of the Idle preferences dialog
1242 to the FormatParagraph tab of the Config Extensions dialog.
1243 Patch by Tal Einat.
1244
1245 - Issue #16893: Update Idle doc chapter to match current Idle and add new
1246 information.
1247
1248 - Issue #3068: Add Idle extension configuration dialog to Options menu.
1249 Changes are written to HOME/.idlerc/config-extensions.cfg.
1250 Original patch by Tal Einat.
1251
1252 - Issue #16233: A module browser (File : Class Browser, Alt+C) requires an
1253 editor window with a filename. When Class Browser is requested otherwise,
1254 from a shell, output window, or 'Untitled' editor, Idle no longer displays
1255 an error box. It now pops up an Open Module box (Alt+M). If a valid name
1256 is entered and a module is opened, a corresponding browser is also opened.
1257
1258 - Issue #4832: Save As to type Python files automatically adds .py to the
1259 name you enter (even if your system does not display it). Some systems
1260 automatically add .txt when type is Text files.
1261
1262 - Issue #21986: Code objects are not normally pickled by the pickle module.
1263 To match this, they are no longer pickled when running under Idle.
1264
1265 - Issue #23180: Rename IDLE "Windows" menu item to "Window".
1266 Patch by Al Sweigart.
1267
1268 Tests
1269 -----
1270
1271 - Issue #23392: Added tests for marshal C API that works with FILE*.
1272
1273 - Issue #18982: Add tests for CLI of the calendar module.
1274
1275 - Issue #19548: Added some additional checks to test_codecs to ensure that
1276 statements in the updated documentation remain accurate. Patch by Martin
1277 Panter.
1278
1279 - Issue #22838: All test_re tests now work with unittest test discovery.
1280
1281 - Issue #22173: Update lib2to3 tests to use unittest test discovery.
1282
1283 - Issue #16000: Convert test_curses to use unittest.
1284
1285 - Issue #21456: Skip two tests in test_urllib2net.py if _ssl module not
1286 present. Patch by Remi Pointel.
1287
1288 - Issue #22770: Prevent some Tk segfaults on OS X when running gui tests.
1289
1290 - Issue #23211: Workaround test_logging failure on some OS X 10.6 systems.
1291
1292 - Issue #23345: Prevent test_ssl failures with large OpenSSL patch level
1293 values (like 0.9.8zc).
1294
1295 - Issue #22289: Prevent test_urllib2net failures due to ftp connection timeout.
1296
1297 Build
1298 -----
1299
1300 - Issue #15506: Use standard PKG_PROG_PKG_CONFIG autoconf macro in the configure
1301 script.
1302
1303 - Issue #22935: Allow the ssl module to be compiled if openssl doesn't support
1304 SSL 3.
1305
1306 - Issue #16537: Check whether self.extensions is empty in setup.py. Patch by
1307 Jonathan Hosmer.
1308
1309 - Issue #18096: Fix library order returned by python-config.
1310
1311 - Issue #17219: Add library build dir for Python extension cross-builds.
1312
1313 - Issue #17128: Use private version of OpenSSL for 3.4.3 OS X 10.5+ installer.
1314
1315 C API
1316 -----
1317
1318 - Issue #22079: PyType_Ready() now checks that statically allocated type has
1319 no dynamically allocated bases.
1320
1321 Documentation
1322 -------------
1323
1324 - Issue #19548: Update the codecs module documentation to better cover the
1325 distinction between text encodings and other codecs, together with other
1326 clarifications. Patch by Martin Panter.
1327
1328 - Issue #22914: Update the Python 2/3 porting HOWTO to describe a more automated
1329 approach.
1330
1331 - Issue #21514: The documentation of the json module now refers to new JSON RFC
1332 7159 instead of obsoleted RFC 4627.
1333
1334 Tools/Demos
1335 -----------
1336
1337 - Issue #22314: pydoc now works when the LINES environment variable is set.
1338
1339 Windows
1340 -------
1341
1342 - Issue #17896: The Windows build scripts now expect external library sources
1343 to be in ``PCbuild\..\externals`` rather than ``PCbuild\..\..``.
1344
1345 - Issue #17717: The Windows build scripts now use a copy of NASM pulled from
1346 svn.python.org to build OpenSSL.
1347
1348 - Issue #22644: The bundled version of OpenSSL has been updated to 1.0.1j.
1349
1350
1351 What's New in Python 3.4.2?
1352 ===========================
1353
1354 Release date: 2014-10-06
1355
1356 Library
1357 -------
1358
1359 - Issue #10510: distutils register and upload methods now use HTML standards
1360 compliant CRLF line endings.
1361
1362 - Issue #9850: Fixed macpath.join() for empty first component. Patch by
1363 Oleg Oshmyan.
1364
1365 - Issue #22427: TemporaryDirectory no longer attempts to clean up twice when
1366 used in the with statement in generator.
1367
1368 - Issue #20912: Now directories added to ZIP file have correct Unix and MS-DOS
1369 directory attributes.
1370
1371 - Issue #21866: ZipFile.close() no longer writes ZIP64 central directory
1372 records if allowZip64 is false.
1373
1374 - Issue #22415: Fixed debugging output of the GROUPREF_EXISTS opcode in the re
1375 module. Removed trailing spaces in debugging output.
1376
1377 - Issue #22423: Unhandled exception in thread no longer causes unhandled
1378 AttributeError when sys.stderr is None.
1379
1380 - Issue #21332: Ensure that ``bufsize=1`` in subprocess.Popen() selects
1381 line buffering, rather than block buffering. Patch by Akira Li.
1382
1383
1384 What's New in Python 3.4.2rc1?
1385 ==============================
1386
1387 Release date: 2014-09-22
1388
1389 Core and Builtins
1390 -----------------
1391
1392 - Issue #22258: Fix the internal function set_inheritable() on Illumos.
1393 This platform exposes the function ``ioctl(FIOCLEX)``, but calling it fails
1394 with errno is ENOTTY: "Inappropriate ioctl for device". set_inheritable()
1395 now falls back to the slower ``fcntl()`` (``F_GETFD`` and then ``F_SETFD``).
1396
1397 - Issue #21669: With the aid of heuristics in SyntaxError.__init__, the
1398 parser now attempts to generate more meaningful (or at least more search
1399 engine friendly) error messages when "exec" and "print" are used as
1400 statements.
1401
1402 - Issue #21642: In the conditional if-else expression, allow an integer written
1403 with no space between itself and the ``else`` keyword (e.g. ``True if 42else
1404 False``) to be valid syntax.
1405
1406 - Issue #21523: Fix over-pessimistic computation of the stack effect of
1407 some opcodes in the compiler. This also fixes a quadratic compilation
1408 time issue noticeable when compiling code with a large number of "and"
1409 and "or" operators.
1410
1411 Library
1412 -------
1413
1414 - Issue #21091: Fix API bug: email.message.EmailMessage.is_attachment is now
1415 a method. Since EmailMessage is provisional, we can change the API in a
1416 maintenance release, but we use a trick to remain backward compatible with
1417 3.4.0/1.
1418
1419 - Issue #21079: Fix email.message.EmailMessage.is_attachment to return the
1420 correct result when the header has parameters as well as a value.
1421
1422 - Issue #22247: Add NNTPError to nntplib.__all__.
1423
1424 - Issue #4180: The warnings registries are now reset when the filters
1425 are modified.
1426
1427 - Issue #22419: Limit the length of incoming HTTP request in wsgiref server to
1428 65536 bytes and send a 414 error code for higher lengths. Patch contributed
1429 by Devin Cook.
1430
1431 - Lax cookie parsing in http.cookies could be a security issue when combined
1432 with non-standard cookie handling in some Web browsers. Reported by
1433 Sergey Bobrov.
1434
1435 - Issue #22384: An exception in Tkinter callback no longer crashes the program
1436 when it is run with pythonw.exe.
1437
1438 - Issue #22168: Prevent turtle AttributeError with non-default Canvas on OS X.
1439
1440 - Issue #21147: sqlite3 now raises an exception if the request contains a null
1441 character instead of truncate it. Based on patch by Victor Stinner.
1442
1443 - Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with
1444 empty string or tuple argument.
1445
1446 - Issue #21951: Tkinter now most likely raises MemoryError instead of crash
1447 if the memory allocation fails.
1448
1449 - Issue #22338: Fix a crash in the json module on memory allocation failure.
1450
1451 - Issue #22226: First letter no longer is stripped from the "status" key in
1452 the result of Treeview.heading().
1453
1454 - Issue #19524: Fixed resource leak in the HTTP connection when an invalid
1455 response is received. Patch by Martin Panter.
1456
1457 - Issue #22051: turtledemo no longer reloads examples to re-run them.
1458 Initialization of variables and gui setup should be done in main(),
1459 which is called each time a demo is run, but not on import.
1460
1461 - Issue #21933: Turtledemo users can change the code font size with a menu
1462 selection or control(command) '-' or '+' or control-mousewheel.
1463 Original patch by Lita Cho.
1464
1465 - Issue #21597: The separator between the turtledemo text pane and the drawing
1466 canvas can now be grabbed and dragged with a mouse. The code text pane can
1467 be widened to easily view or copy the full width of the text. The canvas
1468 can be widened on small screens. Original patches by Jan Kanis and Lita Cho.
1469
1470 - Issue #18132: Turtledemo buttons no longer disappear when the window is
1471 shrunk. Original patches by Jan Kanis and Lita Cho.
1472
1473 - Issue #22216: smtplib now resets its state more completely after a quit. The
1474 most obvious consequence of the previous behavior was a STARTTLS failure
1475 during a connect/starttls/quit/connect/starttls sequence.
1476
1477 - Issue #22185: Fix an occasional RuntimeError in threading.Condition.wait()
1478 caused by mutation of the waiters queue without holding the lock. Patch
1479 by Doug Zongker.
1480
1481 - Issue #22182: Use e.args to unpack exceptions correctly in
1482 distutils.file_util.move_file. Patch by Claudiu Popa.
1483
1484 - The webbrowser module now uses subprocess's start_new_session=True rather
1485 than a potentially risky preexec_fn=os.setsid call.
1486
1487 - Issue #22236: Fixed Tkinter images copying operations in NoDefaultRoot mode.
1488
1489 - Issue #22191: Fix warnings.__all__.
1490
1491 - Issue #15696: Add a __sizeof__ implementation for mmap objects on Windows.
1492
1493 - Issue #22068: Avoided reference loops with Variables and Fonts in Tkinter.
1494
1495 - Issue #22165: SimpleHTTPRequestHandler now supports undecodable file names.
1496
1497 - Issue #8797: Raise HTTPError on failed Basic Authentication immediately.
1498 Initial patch by Sam Bull.
1499
1500 - Issue #20729: Restored the use of lazy iterkeys()/itervalues()/iteritems()
1501 in the mailbox module.
1502
1503 - Issue #21448: Changed FeedParser feed() to avoid O(N**2) behavior when
1504 parsing long line. Original patch by Raymond Hettinger.
1505
1506 - Issue #22184: The functools LRU Cache decorator factory now gives an earlier
1507 and clearer error message when the user forgets the required parameters.
1508
1509 - Issue #17923: glob() patterns ending with a slash no longer match non-dirs on
1510 AIX. Based on patch by Delhallt.
1511
1512 - Issue #21121: Don't force 3rd party C extensions to be built with
1513 -Werror=declaration-after-statement.
1514
1515 - Issue #21975: Fixed crash when using uninitialized sqlite3.Row (in particular
1516 when unpickling pickled sqlite3.Row). sqlite3.Row is now initialized in the
1517 __new__() method.
1518
1519 - Issue #21580: Now Tkinter correctly handles bytes arguments passed to Tk.
1520 In particular this allows to initialize images from binary data.
1521
1522 - Issue #17172: Make turtledemo start as active on OS X even when run with
1523 subprocess. Patch by Lita Cho.
1524
1525 - Issue #21704: Fix build error for _multiprocessing when semaphores
1526 are not available. Patch by Arfrever Frehtes Taifersar Arahesis.
1527
1528 - Fix repr(_socket.socket) on Windows 64-bit: don't fail with OverflowError
1529 on closed socket. repr(socket.socket) already works fine.
1530
1531 - Issue #16133: The asynchat.async_chat.handle_read() method now ignores
1532 BlockingIOError exceptions.
1533
1534 - Issue #22044: Fixed premature DECREF in call_tzinfo_method.
1535 Patch by Tom Flanagan.
1536
1537 - Issue #19884: readline: Disable the meta modifier key if stdout is not
1538 a terminal to not write the ANSI sequence "\033[1034h" into stdout. This
1539 sequence is used on some terminal (ex: TERM=xterm-256color") to enable
1540 support of 8 bit characters.
1541
1542 - Issue #21888: plistlib's load() and loads() now work if the fmt parameter is
1543 specified.
1544
1545 - Issue #21044: tarfile.open() now handles fileobj with an integer 'name'
1546 attribute. Based on patch by Antoine Pietri.
1547
1548 - Issue #21867: Prevent turtle crash due to invalid undo buffer size.
1549
1550 - Issue #19076: Don't pass the redundant 'file' argument to self.error().
1551
1552 - Issue #21942: Fixed source file viewing in pydoc's server mode on Windows.
1553
1554 - Issue #11259: asynchat.async_chat().set_terminator() now raises a ValueError
1555 if the number of received bytes is negative.
1556
1557 - Issue #12523: asynchat.async_chat.push() now raises a TypeError if it doesn't
1558 get a bytes string
1559
1560 - Issue #21707: Add missing kwonlyargcount argument to
1561 ModuleFinder.replace_paths_in_code().
1562
1563 - Issue #20639: calling Path.with_suffix('') allows removing the suffix
1564 again. Patch by July Tikhonov.
1565
1566 - Issue #21714: Disallow the construction of invalid paths using
1567 Path.with_name(). Original patch by Antony Lee.
1568
1569 - Issue #21897: Fix a crash with the f_locals attribute with closure
1570 variables when frame.clear() has been called.
1571
1572 - Issue #21151: Fixed a segfault in the winreg module when ``None`` is passed
1573 as a ``REG_BINARY`` value to SetValueEx. Patch by John Ehresman.
1574
1575 - Issue #21090: io.FileIO.readall() does not ignore I/O errors anymore. Before,
1576 it ignored I/O errors if at least the first C call read() succeed.
1577
1578 - Issue #21781: ssl.RAND_add() now supports strings longer than 2 GB.
1579
1580 - Issue #11453: asyncore: emit a ResourceWarning when an unclosed file_wrapper
1581 object is destroyed. The destructor now closes the file if needed. The
1582 close() method can now be called twice: the second call does nothing.
1583
1584 - Issue #21858: Better handling of Python exceptions in the sqlite3 module.
1585
1586 - Issue #21476: Make sure the email.parser.BytesParser TextIOWrapper is
1587 discarded after parsing, so the input file isn't unexpectedly closed.
1588
1589 - Issue #21729: Used the "with" statement in the dbm.dumb module to ensure
1590 files closing. Patch by Claudiu Popa.
1591
1592 - Issue #21491: socketserver: Fix a race condition in child processes reaping.
1593
1594 - Issue #21832: Require named tuple inputs to be exact strings.
1595
1596 - Issue #19145: The times argument for itertools.repeat now handles
1597 negative values the same way for keyword arguments as it does for
1598 positional arguments.
1599
1600 - Issue #21812: turtle.shapetransform did not transform the turtle on the
1601 first call. (Issue identified and fixed by Lita Cho.)
1602
1603 - Issue #21635: The difflib SequenceMatcher.get_matching_blocks() method
1604 cache didn't match the actual result. The former was a list of tuples
1605 and the latter was a list of named tuples.
1606
1607 - Issue #21722: The distutils "upload" command now exits with a non-zero
1608 return code when uploading fails. Patch by Martin Dengler.
1609
1610 - Issue #21723: asyncio.Queue: support any type of number (ex: float) for the
1611 maximum size. Patch written by Vajrasky Kok.
1612
1613 - Issue #21326: Add a new is_closed() method to asyncio.BaseEventLoop.
1614 run_forever() and run_until_complete() methods of asyncio.BaseEventLoop now
1615 raise an exception if the event loop was closed.
1616
1617 - Issue #21774: Fixed NameError for an incorrect variable reference in the
1618 XML Minidom code for creating processing instructions.
1619 (Found and fixed by Claudiu Popa.)
1620
1621 - Issue #21766: Prevent a security hole in CGIHTTPServer by URL unquoting paths
1622 before checking for a CGI script at that path.
1623
1624 - Issue #21310: Fixed possible resource leak in failed open().
1625
1626 - Issue #21677: Fixed chaining nonnormalized exceptions in io close() methods.
1627
1628 - Issue #11709: Fix the pydoc.help function to not fail when sys.stdin is not a
1629 valid file.
1630
1631 - Issue #13223: Fix pydoc.writedoc so that the HTML documentation for methods
1632 that use 'self' in the example code is generated correctly.
1633
1634 - Issue #21463: In urllib.request, fix pruning of the FTP cache.
1635
1636 - Issue #21618: The subprocess module could fail to close open fds that were
1637 inherited by the calling process and already higher than POSIX resource
1638 limits would otherwise allow. On systems with a functioning /proc/self/fd
1639 or /dev/fd interface the max is now ignored and all fds are closed.
1640
1641 - Issue #21552: Fixed possible integer overflow of too long string lengths in
1642 the tkinter module on 64-bit platforms.
1643
1644 - Issue #14315: The zipfile module now ignores extra fields in the central
1645 directory that are too short to be parsed instead of letting a struct.unpack
1646 error bubble up as this "bad data" appears in many real world zip files in
1647 the wild and is ignored by other zip tools.
1648
1649 - Issue #21402: tkinter.ttk now works when default root window is not set.
1650
1651 - Issue #10203: sqlite3.Row now truly supports sequence protocol. In particular
1652 it supports reverse() and negative indices. Original patch by Claudiu Popa.
1653
1654 - Issue #18807: If copying (no symlinks) specified for a venv, then the python
1655 interpreter aliases (python, python3) are now created by copying rather than
1656 symlinking.
1657
1658 - Issue #14710: pkgutil.get_loader() no longer raises an exception when None is
1659 found in sys.modules.
1660
1661 - Issue #14710: pkgutil.find_loader() no longer raises an exception when a
1662 module doesn't exist.
1663
1664 - Issue #21481: Argparse equality and inequality tests now return
1665 NotImplemented when comparing to an unknown type.
1666
1667 - Issue #8743: Fix interoperability between set objects and the
1668 collections.Set() abstract base class.
1669
1670 - Issue #13355: random.triangular() no longer fails with a ZeroDivisionError
1671 when low equals high.
1672
1673 - Issue #21538: The plistlib module now supports loading of binary plist files
1674 when reference or offset size is not a power of two.
1675
1676 - Issue #21801: Validate that __signature__ is None or an instance of Signature.
1677
1678 - Issue #21923: Prevent AttributeError in distutils.sysconfig.customize_compiler
1679 due to possible uninitialized _config_vars.
1680
1681 - Issue #21323: Fix http.server to again handle scripts in CGI subdirectories,
1682 broken by the fix for security issue #19435. Patch by Zach Byrne.
1683
1684 Extension Modules
1685 -----------------
1686
1687 - Issue #22176: Update the ctypes module's libffi to v3.1. This release
1688 adds support for the Linux AArch64 and POWERPC ELF ABIv2 little endian
1689 architectures.
1690
1691 Build
1692 -----
1693
1694 - Issue #15661: python.org OS X installers are now distributed as signed
1695 installer packages compatible with the Gatekeeper security feature.
1696
1697 - Issue #21958: Define HAVE_ROUND when building with Visual Studio 2013 and
1698 above. Patch by Zachary Turner.
1699
1700 - Issue #15759: "make suspicious", "make linkcheck" and "make doctest" in Doc/
1701 now display special message when and only when there are failures.
1702
1703 - Issue #17095: Fix Modules/Setup *shared* support.
1704
1705 - Issue #21811: Anticipated fixes to support OS X versions > 10.9.
1706
1707 - Issue #21166: Prevent possible segfaults and other random failures of
1708 python --generate-posix-vars in pybuilddir.txt build target.
1709
1710 IDLE
1711 ----
1712
1713 - Issue #17390: Adjust Editor window title; remove 'Python',
1714 move version to end.
1715
1716 - Issue #14105: Idle debugger breakpoints no longer disappear
1717 when inseting or deleting lines.
1718
1719 - Issue #17172: Turtledemo can now be run from Idle.
1720 Currently, the entry is on the Help menu, but it may move to Run.
1721 Patch by Ramchandra Apt and Lita Cho.
1722
1723 - Issue #21765: Add support for non-ascii identifiers to HyperParser.
1724
1725 - Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav
1726 Heblikar.
1727
1728 - Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster.
1729
1730 - Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar.
1731
1732 - Issue #21686: add unittest for HyperParser. Original patch by Saimadhav
1733 Heblikar.
1734
1735 - Issue #12387: Add missing upper(lower)case versions of default Windows key
1736 bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy.
1737
1738 - Issue #21695: Closing a Find-in-files output window while the search is
1739 still in progress no longer closes Idle.
1740
1741 - Issue #18910: Add unittest for textView. Patch by Phil Webster.
1742
1743 - Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar.
1744
1745 - Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster.
1746
1747 Tests
1748 -----
1749
1750 - Issue #22166: With the assistance of a new internal _codecs._forget_codec
1751 helping function, test_codecs now clears the encoding caches to avoid the
1752 appearance of a reference leak
1753
1754 - Issue #22236: Tkinter tests now don't reuse default root window. New root
1755 window is created for every test class.
1756
1757 - Issue #20746: Fix test_pdb to run in refleak mode (-R). Patch by Xavier
1758 de Gaye.
1759
1760 - Issue #22060: test_ctypes has been somewhat cleaned up and simplified; it
1761 now uses unittest test discovery to find its tests.
1762
1763 - Issue #22104: regrtest.py no longer holds a reference to the suite of tests
1764 loaded from test modules that don't define test_main().
1765
1766 - Issue #22002: Added ``load_package_tests`` function to test.support and used
1767 it to implement/augment test discovery in test_asyncio, test_email,
1768 test_importlib, test_json, and test_tools.
1769
1770 - Issue #21976: Fix test_ssl to accept LibreSSL version strings. Thanks
1771 to William Orr.
1772
1773 - Issue #21918: Converted test_tools from a module to a package containing
1774 separate test files for each tested script.
1775
1776 - Issue #20155: Changed HTTP method names in failing tests in test_httpservers
1777 so that packet filtering software (specifically Windows Base Filtering Engine)
1778 does not interfere with the transaction semantics expected by the tests.
1779
1780 - Issue #19493: Refactored the ctypes test package to skip tests explicitly
1781 rather than silently.
1782
1783 - Issue #18492: All resources are now allowed when tests are not run by
1784 regrtest.py.
1785
1786 - Issue #21634: Fix pystone micro-benchmark: use floor division instead of true
1787 division to benchmark integers instead of floating point numbers. Set pystone
1788 version to 1.2. Patch written by Lennart Regebro.
1789
1790 - Issue #21605: Added tests for Tkinter images.
1791
1792 - Issue #21493: Added test for ntpath.expanduser(). Original patch by
1793 Claudiu Popa.
1794
1795 - Issue #19925: Added tests for the spwd module. Original patch by Vajrasky Kok.
1796
1797 - Issue #21522: Added Tkinter tests for Listbox.itemconfigure(),
1798 PanedWindow.paneconfigure(), and Menu.entryconfigure().
1799
1800 Documentation
1801 -------------
1802
1803 - Issue #21777: The binary sequence methods on bytes and bytearray are now
1804 documented explicitly, rather than assuming users will be able to derive
1805 the expected behaviour from the behaviour of the corresponding str methods.
1806
1807 Windows
1808 -------
1809
1810 - Issue #21671, #22160, CVE-2014-0224: The bundled version of OpenSSL has been
1811 updated to 1.0.1i.
1812
1813 - Issue #10747: Use versioned labels in the Windows start menu.
1814 Patch by Olive Kilburn.
1815
1816 Tools/Demos
1817 -----------
1818
1819 - Issue #22201: Command-line interface of the zipfile module now correctly
1820 extracts ZIP files with directory entries. Patch by Ryan Wilson.
1821
1822 - Issue #21906: Make Tools/scripts/md5sum.py work in Python 3.
1823 Patch by Zachary Ware.
1824
1825 - Issue #21629: Fix Argument Clinic's "--converters" feature.
1826
1827
1828 What's New in Python 3.4.1?
1829 ===========================
1830
1831 Release date: 2014-05-18
1832
1833 Core and Builtins
1834 -----------------
1835
1836 - Issue #21418: Fix a crash in the builtin function super() when called without
1837 argument and without current frame (ex: embedded Python).
1838
1839 - Issue #21425: Fix flushing of standard streams in the interactive
1840 interpreter.
1841
1842 - Issue #21435: In rare cases, when running finalizers on objects in cyclic
1843 trash a bad pointer dereference could occur due to a subtle flaw in
1844 internal iteration logic.
1845
1846 Library
1847 -------
1848
1849 - Issue #10744: Fix PEP 3118 format strings on ctypes objects with a nontrivial
1850 shape.
1851
1852 - Issue #20998: Fixed re.fullmatch() of repeated single character pattern
1853 with ignore case. Original patch by Matthew Barnett.
1854
1855 - Issue #21075: fileinput.FileInput now reads bytes from standard stream if
1856 binary mode is specified. Patch by Sam Kimbrel.
1857
1858 - Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a
1859 flush() on the underlying binary stream. Patch by akira.
1860
1861 - Issue #21470: Do a better job seeding the random number generator by
1862 using enough bytes to span the full state space of the Mersenne Twister.
1863
1864 - Issue #21398: Fix an unicode error in the pydoc pager when the documentation
1865 contains characters not encodable to the stdout encoding.
1866
1867 Tests
1868 -----
1869
1870 - Issue #17756: Fix test_code test when run from the installed location.
1871
1872 - Issue #17752: Fix distutils tests when run from the installed location.
1873
1874 IDLE
1875 ----
1876
1877 - Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin
1878 consolidating and improving human-validated tests of Idle. Change other files
1879 as needed to work with htest. Running the module as __main__ runs all tests.
1880
1881
1882 What's New in Python 3.4.1rc1?
1883 ==============================
1884
1885 Release date: 2014-05-05
1886
1887 Core and Builtins
1888 -----------------
1889
1890 - Issue #21274: Define PATH_MAX for GNU/Hurd in Python/pythonrun.c.
1891
1892 - Issue #21209: Fix sending tuples to custom generator objects with the yield
1893 from syntax.
1894
1895 - Issue #21134: Fix segfault when str is called on an uninitialized
1896 UnicodeEncodeError, UnicodeDecodeError, or UnicodeTranslateError object.
1897
1898 - Issue #19537: Fix PyUnicode_DATA() alignment under m68k. Patch by
1899 Andreas Schwab.
1900
1901 - Issue #20929: Add a type cast to avoid shifting a negative number.
1902
1903 - Issue #20731: Properly position in source code files even if they
1904 are opened in text mode. Patch by Serhiy Storchaka.
1905
1906 - Issue #20637: Key-sharing now also works for instance dictionaries of
1907 subclasses. Patch by Peter Ingebretson.
1908
1909 - Issue #12546: Allow ``\x00`` to be used as a fill character when using str, int,
1910 float, and complex __format__ methods.
1911
1912 - Issue #13598: Modify string.Formatter to support auto-numbering of
1913 replacement fields. It now matches the behavior of str.format() in
1914 this regard. Patches by Phil Elson and Ramchandra Apte.
1915
1916 Library
1917 -------
1918
1919 - Issue #21088: Bugfix for curses.window.addch() regression in 3.4.0.
1920 In porting to Argument Clinic, the first two arguments were reversed.
1921
1922 - Issue #21469: Reduced the risk of false positives in robotparser by
1923 checking to make sure that robots.txt has been read or does not exist
1924 prior to returning True in can_fetch().
1925
1926 - Issue #21321: itertools.islice() now releases the reference to the source
1927 iterator when the slice is exhausted. Patch by Anton Afanasyev.
1928
1929 - Issue #9815: assertRaises now tries to clear references to local variables
1930 in the exception's traceback.
1931
1932 - Issue #13204: Calling sys.flags.__new__ would crash the interpreter,
1933 now it raises a TypeError.
1934
1935 - Issue #19385: Make operations on a closed dbm.dumb database always raise the
1936 same exception.
1937
1938 - Issue #21207: Detect when the os.urandom cached fd has been closed or
1939 replaced, and open it anew.
1940
1941 - Issue #21291: subprocess's Popen.wait() is now thread safe so that
1942 multiple threads may be calling wait() or poll() on a Popen instance
1943 at the same time without losing the Popen.returncode value.
1944
1945 - Issue #21127: Path objects can now be instantiated from str subclass
1946 instances (such as ``numpy.str_``).
1947
1948 - Issue #15002: urllib.response object to use _TemporaryFileWrapper (and
1949 _TemporaryFileCloser) facility. Provides a better way to handle file
1950 descriptor close. Patch contributed by Christian Theune.
1951
1952 - Issue #12220: mindom now raises a custom ValueError indicating it doesn't
1953 support spaces in URIs instead of letting a 'split' ValueError bubble up.
1954
1955 - Issue #21239: patch.stopall() didn't work deterministically when the same
1956 name was patched more than once.
1957
1958 - Issue #21222: Passing name keyword argument to mock.create_autospec now
1959 works.
1960
1961 - Issue #21197: Add lib64 -> lib symlink in venvs on 64-bit non-OS X POSIX.
1962
1963 - Issue #17498: Some SMTP servers disconnect after certain errors, violating
1964 strict RFC conformance. Instead of losing the error code when we issue the
1965 subsequent RSET, smtplib now returns the error code and defers raising the
1966 SMTPServerDisconnected error until the next command is issued.
1967
1968 - Issue #17826: setting an iterable side_effect on a mock function created by
1969 create_autospec now works. Patch by Kushal Das.
1970
1971 - Issue #7776: Fix ``Host:`` header and reconnection when using
1972 http.client.HTTPConnection.set_tunnel(). Patch by Nikolaus Rath.
1973
1974 - Issue #20968: unittest.mock.MagicMock now supports division.
1975 Patch by Johannes Baiter.
1976
1977 - Issue #21529 (CVE-2014-4616): Fix arbitrary memory access in
1978 JSONDecoder.raw_decode with a negative second parameter. Bug reported by Guido
1979 Vranken.
1980
1981 - Issue #21169: getpass now handles non-ascii characters that the
1982 input stream encoding cannot encode by re-encoding using the
1983 replace error handler.
1984
1985 - Issue #21171: Fixed undocumented filter API of the rot13 codec.
1986 Patch by Berker Peksag.
1987
1988 - Issue #21172: isinstance check relaxed from dict to collections.Mapping.
1989
1990 - Issue #21155: asyncio.EventLoop.create_unix_server() now raises a ValueError
1991 if path and sock are specified at the same time.
1992
1993 - Issue #21149: Improved thread-safety in logging cleanup during interpreter
1994 shutdown. Thanks to Devin Jeanpierre for the patch.
1995
1996 - Issue #20145: `assertRaisesRegex` and `assertWarnsRegex` now raise a
1997 TypeError if the second argument is not a string or compiled regex.
1998
1999 - Issue #21058: Fix a leak of file descriptor in
2000 :func:`tempfile.NamedTemporaryFile`, close the file descriptor if
2001 :func:`io.open` fails
2002
2003 - Issue #21200: Return None from pkgutil.get_loader() when __spec__ is missing.
2004
2005 - Issue #21013: Enhance ssl.create_default_context() when used for server side
2006 sockets to provide better security by default.
2007
2008 - Issue #20633: Replace relative import by absolute import.
2009
2010 - Issue #20980: Stop wrapping exception when using ThreadPool.
2011
2012 - Issue #21082: In os.makedirs, do not set the process-wide umask. Note this
2013 changes behavior of makedirs when exist_ok=True.
2014
2015 - Issue #20990: Fix issues found by pyflakes for multiprocessing.
2016
2017 - Issue #21015: SSL contexts will now automatically select an elliptic
2018 curve for ECDH key exchange on OpenSSL 1.0.2 and later, and otherwise
2019 default to "prime256v1".
2020
2021 - Issue #20995: Enhance default ciphers used by the ssl module to enable
2022 better security an prioritize perfect forward secrecy.
2023
2024 - Issue #20884: Don't assume that __file__ is defined on importlib.__init__.
2025
2026 - Issue #21499: Ignore __builtins__ in several test_importlib.test_api tests.
2027
2028 - Issue #20879: Delay the initialization of encoding and decoding tables for
2029 base32, ascii85 and base85 codecs in the base64 module, and delay the
2030 initialization of the unquote_to_bytes() table of the urllib.parse module, to
2031 not waste memory if these modules are not used.
2032
2033 - Issue #19157: Include the broadcast address in the usuable hosts for IPv6
2034 in ipaddress.
2035
2036 - Issue #11599: When an external command (e.g. compiler) fails, distutils now
2037 prints out the whole command line (instead of just the command name) if the
2038 environment variable DISTUTILS_DEBUG is set.
2039
2040 - Issue #4931: distutils should not produce unhelpful "error: None" messages
2041 anymore. distutils.util.grok_environment_error is kept but doc-deprecated.
2042
2043 - Issue #20875: Prevent possible gzip "'read' is not defined" NameError.
2044 Patch by Claudiu Popa.
2045
2046 - Issue #11558: ``email.message.Message.attach`` now returns a more
2047 useful error message if ``attach`` is called on a message for which
2048 ``is_multipart`` is False.
2049
2050 - Issue #20283: RE pattern methods now accept the string keyword parameters
2051 as documented. The pattern and source keyword parameters are left as
2052 deprecated aliases.
2053
2054 - Issue #20778: Fix modulefinder to work with bytecode-only modules.
2055
2056 - Issue #20791: copy.copy() now doesn't make a copy when the input is
2057 a bytes object. Initial patch by Peter Otten.
2058
2059 - Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
2060 outsize range [1902; 2037].
2061
2062 - Issue #20816: Fix inspect.getcallargs() to raise correct TypeError for
2063 missing keyword-only arguments. Patch by Jeremiah Lowin.
2064
2065 - Issue #20817: Fix inspect.getcallargs() to fail correctly if more
2066 than 3 arguments are missing. Patch by Jeremiah Lowin.
2067
2068 - Issue #6676: Ensure a meaningful exception is raised when attempting
2069 to parse more than one XML document per pyexpat xmlparser instance.
2070 (Original patches by Hirokazu Yamamoto and Amaury Forgeot d'Arc, with
2071 suggested wording by David Gutteridge)
2072
2073 - Issue #21117: Fix inspect.signature to better support functools.partial.
2074 Due to the specifics of functools.partial implementation,
2075 positional-or-keyword arguments passed as keyword arguments become
2076 keyword-only.
2077
2078 - Issue #21209: Fix asyncio.tasks.CoroWrapper to workaround a bug
2079 in yield-from implementation in CPythons prior to 3.4.1.
2080
2081 - asyncio: Add gi_{frame,running,code} properties to CoroWrapper
2082 (upstream issue #163).
2083
2084 - Issue #21311: Avoid exception in _osx_support with non-standard compiler
2085 configurations. Patch by John Szakmeister.
2086
2087 - Issue #11571: Ensure that the turtle window becomes the topmost window
2088 when launched on OS X.
2089
2090 Extension Modules
2091 -----------------
2092
2093 - Issue #21276: posixmodule: Don't define USE_XATTRS on KFreeBSD and the Hurd.
2094
2095 - Issue #21226: Set up modules properly in PyImport_ExecCodeModuleObject
2096 (and friends).
2097
2098 IDLE
2099 ----
2100
2101 - Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation.
2102
2103 - Issue #21284: Paragraph reformat test passes after user changes reformat width.
2104
2105 - Issue #17654: Ensure IDLE menus are customized properly on OS X for
2106 non-framework builds and for all variants of Tk.
2107
2108 Build
2109 -----
2110
2111 - The Windows build now includes OpenSSL 1.0.1g
2112
2113 - Issue #21285: Refactor and fix curses configure check to always search
2114 in a ncursesw directory.
2115
2116 - Issue #15234: For BerkelyDB and Sqlite, only add the found library and
2117 include directories if they aren't already being searched. This avoids
2118 an explicit runtime library dependency.
2119
2120 - Issue #20644: OS X installer build support for documentation build changes
2121 in 3.4.1: assume externally supplied sphinx-build is available in /usr/bin.
2122
2123 C API
2124 -----
2125
2126 - Issue #20942: PyImport_ImportFrozenModuleObject() no longer sets __file__ to
2127 match what importlib does; this affects _frozen_importlib as well as any
2128 module loaded using imp.init_frozen().
2129
2130 Documentation
2131 -------------
2132
2133 - Issue #17386: Expanded functionality of the ``Doc/make.bat`` script to make
2134 it much more comparable to ``Doc/Makefile``.
2135
2136 - Issue #21043: Remove the recommendation for specific CA organizations and to
2137 mention the ability to load the OS certificates.
2138
2139 - Issue #20765: Add missing documentation for PurePath.with_name() and
2140 PurePath.with_suffix().
2141
2142 - Issue #19407: New package installation and distribution guides based on
2143 the Python Packaging Authority tools. Existing guides have been retained
2144 as legacy links from the distutils docs, as they still contain some
2145 required reference material for tool developers that isn't recorded
2146 anywhere else.
2147
2148 - Issue #19697: Document cases where __main__.__spec__ is None.
2149
2150 Tests
2151 -----
2152
2153 - Issue #18604: Consolidated checks for GUI availability. All platforms now
2154 at least check whether Tk can be instantiated when the GUI resource is
2155 requested.
2156
2157 - Issue #21275: Fix a socket test on KFreeBSD.
2158
2159 - Issue #21223: Pass test_site/test_startup_imports when some of the extensions
2160 are built as builtins.
2161
2162 - Issue #20635: Added tests for Tk geometry managers.
2163
2164 - Add test case for freeze.
2165
2166 - Issue #20743: Fix a reference leak in test_tcl.
2167
2168 - Issue #21097: Move test_namespace_pkgs into test_importlib.
2169
2170 - Issue #20939: Avoid various network test failures due to new
2171 redirect of http://www.python.org/ to https://www.python.org:
2172 use http://www.example.com instead.
2173
2174 - Issue #20668: asyncio tests no longer rely on tests.txt file.
2175 (Patch by Vajrasky Kok)
2176
2177 - Issue #21093: Prevent failures of ctypes test_macholib on OS X if a
2178 copy of libz exists in $HOME/lib or /usr/local/lib.
2179
2180 Tools/Demos
2181 -----------
2182
2183 - Add support for ``yield from`` to 2to3.
2184
2185 - Add support for the PEP 465 matrix multiplication operator to 2to3.
2186
2187 - Issue #16047: Fix module exception list and __file__ handling in freeze.
2188 Patch by Meador Inge.
2189
2190 - Issue #11824: Consider ABI tags in freeze. Patch by Meador Inge.
2191
2192 - Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
2193 Patch by Arfrever Frehtes Taifersar Arahesis.
2194
2195
2196 What's New in Python 3.4.0?
2197 ===========================
2198
2199 Release date: 2014-03-16
2200
2201 Library
2202 -------
2203
2204 - Issue #20939: Fix test_geturl failure in test_urllibnet due to
2205 new redirect of http://www.python.org/ to https://www.python.org.
2206
2207 Documentation
2208 -------------
2209
2210 - Merge in all documentation changes since branching 3.4.0rc1.
2211
2212
2213 What's New in Python 3.4.0 release candidate 3?
2214 ===============================================
2215
2216 Release date: 2014-03-09
2217
2218 Core and Builtins
2219 -----------------
2220
2221 - Issue #20786: Fix signatures for dict.__delitem__ and
2222 property.__delete__ builtins.
2223
2224 Library
2225 -------
2226
2227 - Issue #20839: Don't trigger a DeprecationWarning in the still supported
2228 pkgutil.get_loader() API when __loader__ isn't set on a module (nor
2229 when pkgutil.find_loader() is called directly).
2230
2231 Build
2232 -----
2233
2234 - Issue #14512: Launch pydoc -b instead of pydocgui.pyw on Windows.
2235
2236 - Issue #20748: Uninstalling pip does not leave behind the pyc of
2237 the uninstaller anymore.
2238
2239 - Issue #20568: The Windows installer now installs the unversioned ``pip``
2240 command in addition to the versioned ``pip3`` and ``pip3.4`` commands.
2241
2242 - Issue #20757: The ensurepip helper for the Windows uninstaller now skips
2243 uninstalling pip (rather than failing) if the user has updated pip to a
2244 different version from the one bundled with ensurepip.
2245
2246 - Issue #20465: Update OS X and Windows installer builds to use
2247 SQLite 3.8.3.1.
2248
2249
2250 What's New in Python 3.4.0 release candidate 2?
2251 ===============================================
2252
2253 Release date: 2014-02-23
2254
2255 Core and Builtins
2256 -----------------
2257
2258 - Issue #20625: Parameter names in __annotations__ were not mangled properly.
2259 Discovered by Jonas Wielicki, patch by Yury Selivanov.
2260
2261 - Issue #20261: In pickle, lookup __getnewargs__ and __getnewargs_ex__ on the
2262 type of the object.
2263
2264 - Issue #20619: Give the AST nodes of keyword-only arguments a column and line
2265 number.
2266
2267 - Issue #20526: Revert changes of issue #19466 which introduces a regression:
2268 don't clear anymore the state of Python threads early during the Python
2269 shutdown.
2270
2271 Library
2272 -------
2273
2274 - Issue #20710: The pydoc summary line no longer displays the "self" parameter
2275 for bound methods.
2276
2277 - Issue #20566: Change asyncio.as_completed() to use a Queue, to
2278 avoid O(N**2) behavior.
2279
2280 - Issue #20704: Implement new debug API in asyncio. Add new methods
2281 BaseEventLoop.set_debug() and BaseEventLoop.get_debug().
2282 Add support for setting 'asyncio.tasks._DEBUG' variable with
2283 'PYTHONASYNCIODEBUG' environment variable.
2284
2285 - asyncio: Refactoring and fixes: BaseEventLoop.sock_connect() raises an
2286 error if the address is not resolved; use __slots__ in Handle and
2287 TimerHandle; as_completed() and wait() raise TypeError if the passed
2288 list of Futures is a single Future; call_soon() and other 'call_*()'
2289 functions raise TypeError if the passed callback is a coroutine
2290 function; _ProactorBasePipeTransport uses _FlowControlMixin;
2291 WriteTransport.set_write_buffer_size() calls _maybe_pause_protocol()
2292 to consider pausing receiving if the watermark limits have changed;
2293 fix _check_resolved_address() for IPv6 address; and other minor
2294 improvements, along with multiple documentation updates.
2295
2296 - Issue #20684: Fix inspect.getfullargspec() to not to follow __wrapped__
2297 chains. Make its behaviour consistent with bound methods first argument.
2298 Patch by Nick Coghlan and Yury Selivanov.
2299
2300 - Issue #20681: Add new error handling API in asyncio. New APIs:
2301 loop.set_exception_handler(), loop.default_exception_handler(), and
2302 loop.call_exception_handler().
2303
2304 - Issue #20673: Implement support for UNIX Domain Sockets in asyncio.
2305 New APIs: loop.create_unix_connection(), loop.create_unix_server(),
2306 streams.open_unix_connection(), and streams.start_unix_server().
2307
2308 - Issue #20616: Add a format() method to tracemalloc.Traceback.
2309
2310 - Issue #19744: the ensurepip installation step now just prints a warning to
2311 stderr rather than failing outright if SSL/TLS is unavailable. This allows
2312 local installation of POSIX builds without SSL/TLS support.
2313
2314 - Issue #20594: Avoid name clash with the libc function posix_close.
2315
2316 Build
2317 -----
2318
2319 - Issue #20641: Run MSI custom actions (pip installation, pyc compilation)
2320 with the NoImpersonate flag, to support elevated execution (UAC).
2321
2322 - Issue #20221: Removed conflicting (or circular) hypot definition when
2323 compiled with VS 2010 or above. Initial patch by Tabrez Mohammed.
2324
2325 - Issue #20609: Restored the ability to build 64-bit Windows binaries on
2326 32-bit Windows, which was broken by the change in issue #19788.
2327
2328
2329 What's New in Python 3.4.0 release candidate 1?
2330 ===============================================
2331
2332 Release date: 2014-02-10
2333
2334 Core and Builtins
2335 -----------------
2336
2337 - Issue #19255: The builtins module is restored to initial value before
2338 cleaning other modules. The sys and builtins modules are cleaned last.
2339
2340 - Issue #20588: Make Python-ast.c C89 compliant.
2341
2342 - Issue #20437: Fixed 22 potential bugs when deleting objects references.
2343
2344 - Issue #20500: Displaying an exception at interpreter shutdown no longer
2345 risks triggering an assertion failure in PyObject_Str.
2346
2347 - Issue #20538: UTF-7 incremental decoder produced inconsistent string when
2348 input was truncated in BASE64 section.
2349
2350 - Issue #20404: io.TextIOWrapper (and hence the open() builtin) now uses the
2351 internal codec marking system added for issue #19619 to throw LookupError
2352 for known non-text encodings at stream construction time. The existing
2353 output type checks remain in place to deal with unmarked third party
2354 codecs.
2355
2356 - Issue #17162: Add PyType_GetSlot.
2357
2358 - Issue #20162: Fix an alignment issue in the siphash24() hash function which
2359 caused a crash on PowerPC 64-bit (ppc64).
2360
2361 Library
2362 -------
2363
2364 - Issue #20530: The signatures for slot builtins have been updated
2365 to reflect the fact that they only accept positional-only arguments.
2366
2367 - Issue #20517: Functions in the os module that accept two filenames
2368 now register both filenames in the exception on failure.
2369
2370 - Issue #20563: The ipaddress module API is now considered stable.
2371
2372 - Issue #14983: email.generator now always adds a line end after each MIME
2373 boundary marker, instead of doing so only when there is an epilogue. This
2374 fixes an RFC compliance bug and solves an issue with signed MIME parts.
2375
2376 - Issue #20540: Fix a performance regression (vs. Python 3.2) when layering
2377 a multiprocessing Connection over a TCP socket. For small payloads, Nagle's
2378 algorithm would introduce idle delays before the entire transmission of a
2379 message.
2380
2381 - Issue #16983: the new email header parsing code will now decode encoded words
2382 that are (incorrectly) surrounded by quotes, and register a defect.
2383
2384 - Issue #19772: email.generator no longer mutates the message object when
2385 doing a down-transform from 8bit to 7bit CTEs.
2386
2387 - Issue #20536: the statistics module now correctly handle Decimal instances
2388 with positive exponents
2389
2390 - Issue #18805: the netmask/hostmask parsing in ipaddress now more reliably
2391 filters out illegal values and correctly allows any valid prefix length.
2392
2393 - Issue #20481: For at least Python 3.4, the statistics module will require
2394 that all inputs for a single operation be of a single consistent type, or
2395 else a mixed of ints and a single other consistent type. This avoids
2396 some interoperability issues that arose with the previous approach of
2397 coercing to a suitable common type.
2398
2399 - Issue #20478: the statistics module now treats collections.Counter inputs
2400 like any other iterable.
2401
2402 - Issue #17369: get_filename was raising an exception if the filename
2403 parameter's RFC2231 encoding was broken in certain ways. This was
2404 a regression relative to python2.
2405
2406 - Issue #20013: Some imap servers disconnect if the current mailbox is
2407 deleted, and imaplib did not handle that case gracefully. Now it
2408 handles the 'bye' correctly.
2409
2410 - Issue #20531: Revert 3.4 version of fix for #19063, and apply the 3.3
2411 version. That is, do *not* raise an error if unicode is passed to
2412 email.message.Message.set_payload.
2413
2414 - Issue #20476: If a non-compat32 policy is used with any of the email parsers,
2415 EmailMessage is now used as the factory class. The factory class should
2416 really come from the policy; that will get fixed in 3.5.
2417
2418 - Issue #19920: TarFile.list() no longer fails when outputs a listing
2419 containing non-encodable characters. Based on patch by Vajrasky Kok.
2420
2421 - Issue #20515: Fix NULL pointer dereference introduced by issue #20368.
2422
2423 - Issue #19186: Restore namespacing of expat symbols inside the pyexpat module.
2424
2425 - Issue #20053: ensurepip (and hence venv) are no longer affected by the
2426 settings in the default pip configuration file.
2427
2428 - Issue #20426: When passing the re.DEBUG flag, re.compile() displays the
2429 debug output every time it is called, regardless of the compilation cache.
2430
2431 - Issue #20368: The null character now correctly passed from Tcl to Python.
2432 Improved error handling in variables-related commands.
2433
2434 - Issue #20435: Fix _pyio.StringIO.getvalue() to take into account newline
2435 translation settings.
2436
2437 - tracemalloc: Fix slicing traces and fix slicing a traceback.
2438
2439 - Issue #20354: Fix an alignment issue in the tracemalloc module on 64-bit
2440 platforms. Bug seen on 64-bit Linux when using "make profile-opt".
2441
2442 - Issue #17159: inspect.signature now accepts duck types of functions,
2443 which adds support for Cython functions. Initial patch by Stefan Behnel.
2444
2445 - Issue #18801: Fix inspect.classify_class_attrs to correctly classify
2446 object.__new__ and object.__init__.
2447
2448 - Fixed cmath.isinf's name in its argument parsing code.
2449
2450 - Issue #20311, #20452: poll and epoll now round the timeout away from zero,
2451 instead of rounding towards zero, in select and selectors modules:
2452 select.epoll.poll(), selectors.PollSelector.poll() and
2453 selectors.EpollSelector.poll(). For example, a timeout of one microsecond
2454 (1e-6) is now rounded to one millisecondi (1e-3), instead of being rounded to
2455 zero. However, the granularity property and asyncio's resolution feature
2456 were removed again.
2457
2458 - asyncio: Some refactoring; various fixes; add write flow control to
2459 unix pipes; Future.set_exception() instantiates the exception
2460 argument if it is a class; improved proactor pipe transport; support
2461 wait_for(f, None); don't log broken/disconnected pipes; use
2462 ValueError instead of assert for forbidden subprocess_{shell,exec}
2463 arguments; added a convenience API for subprocess management; added
2464 StreamReader.at_eof(); properly handle duplicate coroutines/futures
2465 in gather(), wait(), as_completed(); use a bytearray for buffering
2466 in StreamReader; and more.
2467
2468 - Issue #20288: fix handling of invalid numeric charrefs in HTMLParser.
2469
2470 - Issue #20424: Python implementation of io.StringIO now supports lone surrogates.
2471
2472 - Issue #20308: inspect.signature now works on classes without user-defined
2473 __init__ or __new__ methods.
2474
2475 - Issue #20372: inspect.getfile (and a bunch of other inspect functions that
2476 use it) doesn't crash with unexpected AttributeError on classes defined in C
2477 without __module__.
2478
2479 - Issue #20356: inspect.signature formatting uses '/' to separate
2480 positional-only parameters from others.
2481
2482 - Issue #20223: inspect.signature now supports methods defined with
2483 functools.partialmethods.
2484
2485 - Issue #19456: ntpath.join() now joins relative paths correctly when a drive
2486 is present.
2487
2488 - Issue #19077: tempfile.TemporaryDirectory cleanup no longer fails when
2489 called during shutdown. Emitting resource warning in __del__ no longer fails.
2490 Original patch by Antoine Pitrou.
2491
2492 - Issue #20394: Silence Coverity warning in audioop module.
2493
2494 - Issue #20367: Fix behavior of concurrent.futures.as_completed() for
2495 duplicate arguments. Patch by Glenn Langford.
2496
2497 - Issue #8260: The read(), readline() and readlines() methods of
2498 codecs.StreamReader returned incomplete data when were called after
2499 readline() or read(size). Based on patch by Amaury Forgeot d'Arc.
2500
2501 - Issue #20105: the codec exception chaining now correctly sets the
2502 traceback of the original exception as its __traceback__ attribute.
2503
2504 - Issue #17481: inspect.getfullargspec() now uses inspect.signature() API.
2505
2506 - Issue #15304: concurrent.futures.wait() can block forever even if
2507 Futures have completed. Patch by Glenn Langford.
2508
2509 - Issue #14455: plistlib: fix serializing integers in the range
2510 of an unsigned long long but outside of the range of signed long long for
2511 binary plist files.
2512
2513 IDLE
2514 ----
2515
2516 - Issue #20406: Use Python application icons for Idle window title bars.
2517 Patch mostly by Serhiy Storchaka.
2518
2519 - Update the python.gif icon for the Idle classbrowser and pathbowser
2520 from the old green snake to the new blue and yellow snakes.
2521
2522 - Issue #17721: Remove non-functional configuration dialog help button until we
2523 make it actually gives some help when clicked. Patch by Guilherme Simões.
2524
2525 Tests
2526 -----
2527
2528 - Issue #20532: Tests which use _testcapi now are marked as CPython only.
2529
2530 - Issue #19920: Added tests for TarFile.list(). Based on patch by Vajrasky Kok.
2531
2532 - Issue #19990: Added tests for the imghdr module. Based on patch by
2533 Claudiu Popa.
2534
2535 - Issue #20474: Fix test_socket "unexpected success" failures on OS X 10.7+.
2536
2537 Tools/Demos
2538 -----------
2539
2540 - Issue #20530: Argument Clinic's signature format has been revised again.
2541 The new syntax is highly human readable while still preventing false
2542 positives. The syntax also extends Python syntax to denote "self" and
2543 positional-only parameters, allowing inspect.Signature objects to be
2544 totally accurate for all supported builtins in Python 3.4.
2545
2546 - Issue #20456: Argument Clinic now observes the C preprocessor conditional
2547 compilation statements of the C files it parses. When a Clinic block is
2548 inside a conditional code, it adjusts its output to match, including
2549 automatically generating an empty methoddef macro.
2550
2551 - Issue #20456: Cloned functions in Argument Clinic now use the correct
2552 name, not the name of the function they were cloned from, for text
2553 strings inside generated code.
2554
2555 - Issue #20456: Fixed Argument Clinic's test suite and "--converters" feature.
2556
2557 - Issue #20456: Argument Clinic now allows specifying different names
2558 for a parameter in Python and C, using "as" on the parameter line.
2559
2560 - Issue #20326: Argument Clinic now uses a simple, unique signature to
2561 annotate text signatures in docstrings, resulting in fewer false
2562 positives. "self" parameters are also explicitly marked, allowing
2563 inspect.Signature() to authoritatively detect (and skip) said parameters.
2564
2565 - Issue #20326: Argument Clinic now generates separate checksums for the
2566 input and output sections of the block, allowing external tools to verify
2567 that the input has not changed (and thus the output is not out-of-date).
2568
2569 Build
2570 -----
2571
2572 - Issue #20465: Update SQLite shipped with OS X installer to 3.8.3.
2573
2574 C-API
2575 -----
2576
2577 - Issue #20517: Added new functions allowing OSError exceptions to reference
2578 two filenames instead of one: PyErr_SetFromErrnoWithFilenameObjects() and
2579 PyErr_SetExcFromWindowsErrWithFilenameObjects().
2580
2581 Documentation
2582 -------------
2583
2584 - Issue #20488: Change wording to say importlib is *the* implementation of
2585 import instead of just *an* implementation.
2586
2587 - Issue #6386: Clarify in the tutorial that specifying a symlink to execute
2588 means the directory containing the executed script and not the symlink is
2589 added to sys.path.
2590
2591
2592 What's New in Python 3.4.0 Beta 3?
2593 ==================================
2594
2595 Release date: 2014-01-26
2596
2597 Core and Builtins
2598 -----------------
2599
2600 - Issue #20189: Four additional builtin types (PyTypeObject,
2601 PyMethodDescr_Type, _PyMethodWrapper_Type, and PyWrapperDescr_Type)
2602 have been modified to provide introspection information for builtins.
2603
2604 - Issue #17825: Cursor "^" is correctly positioned for SyntaxError and
2605 IndentationError.
2606
2607 - Issue #2382: SyntaxError cursor "^" is now written at correct position in most
2608 cases when multibyte characters are in line (before "^"). This still not
2609 works correctly with wide East Asian characters.
2610
2611 - Issue #18960: The first line of Python script could be executed twice when
2612 the source encoding was specified on the second line. Now the source encoding
2613 declaration on the second line isn't effective if the first line contains
2614 anything except a comment. 'python -x' works now again with files with the
2615 source encoding declarations, and can be used to make Python batch files
2616 on Windows.
2617
2618 Library
2619 -------
2620
2621 - asyncio: Various improvements and small changes not all covered by
2622 issues listed below. E.g. wait_for() now cancels the inner task if
2623 the timeout occcurs; tweaked the set of exported symbols; renamed
2624 Empty/Full to QueueEmpty/QueueFull; "with (yield from lock)" now
2625 uses a separate context manager; readexactly() raises if not enough
2626 data was read; PTY support tweaks.
2627
2628 - Issue #20311: asyncio: Add a granularity attribute to BaseEventLoop: maximum
2629 between the resolution of the BaseEventLoop.time() method and the resolution
2630 of the selector. The granuarility is used in the scheduler to round time and
2631 deadline.
2632
2633 - Issue #20311: selectors: Add a resolution attribute to BaseSelector.
2634
2635 - Issue #20189: unittest.mock now no longer assumes that any object for
2636 which it could get an inspect.Signature is a callable written in Python.
2637 Fix courtesy of Michael Foord.
2638
2639 - Issue #20317: ExitStack.__exit__ could create a self-referential loop if an
2640 exception raised by a cleanup operation already had its context set
2641 correctly (for example, by the @contextmanager decorator). The infinite
2642 loop this caused is now avoided by checking if the expected context is
2643 already set before trying to fix it.
2644
2645 - Issue #20374: Fix build with GNU readline >= 6.3.
2646
2647 - Issue #20262: Warnings are raised now when duplicate names are added in the
2648 ZIP file or too long ZIP file comment is truncated.
2649
2650 - Issue #20165: The unittest module no longer considers tests marked with
2651 @expectedFailure successful if they pass.
2652
2653 - Issue #18574: Added missing newline in 100-Continue reply from
2654 http.server.BaseHTTPRequestHandler. Patch by Nikolaus Rath.
2655
2656 - Issue #20270: urllib.urlparse now supports empty ports.
2657
2658 - Issue #20243: TarFile no longer raise ReadError when opened in write mode.
2659
2660 - Issue #20238: TarFile opened with external fileobj and "w:gz" mode didn't
2661 write complete output on close.
2662
2663 - Issue #20245: The open functions in the tarfile module now correctly handle
2664 empty mode.
2665
2666 - Issue #20242: Fixed basicConfig() format strings for the alternative
2667 formatting styles. Thanks to kespindler for the bug report and patch.
2668
2669 - Issue #20246: Fix buffer overflow in socket.recvfrom_into.
2670
2671 - Issues #20206 and #5803: Fix edge case in email.quoprimime.encode where it
2672 truncated lines ending in a character needing encoding but no newline by
2673 using a more efficient algorithm that doesn't have the bug.
2674
2675 - Issue #19082: Working xmlrpc.server and xmlrpc.client examples. Both in
2676 modules and in documentation. Initial patch contributed by Vajrasky Kok.
2677
2678 - Issue #20138: The wsgiref.application_uri() and wsgiref.request_uri()
2679 functions now conform to PEP 3333 when handle non-ASCII URLs.
2680
2681 - Issue #19097: Raise the correct Exception when cgi.FieldStorage is given an
2682 invalid fileobj.
2683
2684 - Issue #20152: Ported Python/import.c over to Argument Clinic.
2685
2686 - Issue #13107: argparse and optparse no longer raises an exception when output
2687 a help on environment with too small COLUMNS. Based on patch by
2688 Elazar Gershuni.
2689
2690 - Issue #20207: Always disable SSLv2 except when PROTOCOL_SSLv2 is explicitly
2691 asked for.
2692
2693 - Issue #18960: The tokenize module now ignore the source encoding declaration
2694 on the second line if the first line contains anything except a comment.
2695
2696 - Issue #20078: Reading malformed zipfiles no longer hangs with 100% CPU
2697 consumption.
2698
2699 - Issue #20113: os.readv() and os.writev() now raise an OSError exception on
2700 error instead of returning -1.
2701
2702 - Issue #19719: Make importlib.abc.MetaPathFinder.find_module(),
2703 PathEntryFinder.find_loader(), and Loader.load_module() use PEP 451 APIs to
2704 help with backwards-compatibility.
2705
2706 - Issue #20144: inspect.Signature now supports parsing simple symbolic
2707 constants as parameter default values in __text_signature__.
2708
2709 - Issue #20072: Fixed multiple errors in tkinter with wantobjects is False.
2710
2711 - Issue #20229: Avoid plistlib deprecation warning in platform.mac_ver().
2712
2713 - Issue #14455: Fix some problems with the new binary plist support in plistlib.
2714
2715 IDLE
2716 ----
2717
2718 - Issue #17390: Add Python version to Idle editor window title bar.
2719 Original patches by Edmond Burnett and Kent Johnson.
2720
2721 - Issue #18960: IDLE now ignores the source encoding declaration on the second
2722 line if the first line contains anything except a comment.
2723
2724 Tests
2725 -----
2726
2727 - Issue #20358: Tests for curses.window.overlay and curses.window.overwrite
2728 no longer specify min{row,col} > max{row,col}.
2729
2730 - Issue #19804: The test_find_mac test in test_uuid is now skipped if the
2731 ifconfig executable is not available.
2732
2733 - Issue #19886: Use better estimated memory requirements for bigmem tests.
2734
2735 Tools/Demos
2736 -----------
2737
2738 - Issue #20390: Argument Clinic's "file" output preset now defaults to
2739 "{dirname}/clinic/{basename}.h".
2740
2741 - Issue #20390: Argument Clinic's "class" directive syntax has been extended
2742 with two new required arguments: "typedef" and "type_object".
2743
2744 - Issue #20390: Argument Clinic: If __new__ or __init__ functions didn't use
2745 kwargs (or args), the PyArg_NoKeywords (or PyArg_NoPositional) calls
2746 generated are only run when the type object is an exact match.
2747
2748 - Issue #20390: Argument Clinic now fails if you have required parameters after
2749 optional parameters.
2750
2751 - Issue #20390: Argument Clinic converters now have a new template they can
2752 inject code into: "modifiers". Code put there is run in the parsing
2753 function after argument parsing but before the call to the impl.
2754
2755 - Issue #20376: Argument Clinic now escapes backslashes in docstrings.
2756
2757 - Issue #20381: Argument Clinic now sanity checks the default argument when
2758 c_default is also specified, providing a nice failure message for
2759 disallowed values.
2760
2761 - Issue #20189: Argument Clinic now ensures that parser functions for
2762 __new__ are always of type newfunc, the type of the tp_new slot.
2763 Similarly, parser functions for __init__ are now always of type initproc,
2764 the type of tp_init.
2765
2766 - Issue #20189: Argument Clinic now suppresses the docstring for __new__
2767 and __init__ functions if no docstring is provided in the input.
2768
2769 - Issue #20189: Argument Clinic now suppresses the "self" parameter in the
2770 impl for @staticmethod functions.
2771
2772 - Issue #20294: Argument Clinic now supports argument parsing for __new__ and
2773 __init__ functions.
2774
2775 - Issue #20299: Argument Clinic custom converters may now change the default
2776 value of c_default and py_default with a class member.
2777
2778 - Issue #20287: Argument Clinic's output is now configurable, allowing
2779 delaying its output or even redirecting it to a separate file.
2780
2781 - Issue #20226: Argument Clinic now permits simple expressions
2782 (e.g. "sys.maxsize - 1") as default values for parameters.
2783
2784 - Issue #19936: Added executable bits or shebang lines to Python scripts which
2785 requires them. Disable executable bits and shebang lines in test and
2786 benchmark files in order to prevent using a random system python, and in
2787 source files of modules which don't provide command line interface. Fixed
2788 shebang lines in the unittestgui and checkpip scripts.
2789
2790 - Issue #20268: Argument Clinic now supports cloning the parameters and
2791 return converter of existing functions.
2792
2793 - Issue #20228: Argument Clinic now has special support for class special
2794 methods.
2795
2796 - Issue #20214: Fixed a number of small issues and documentation errors in
2797 Argument Clinic (see issue for details).
2798
2799 - Issue #20196: Fixed a bug where Argument Clinic did not generate correct
2800 parsing code for functions with positional-only parameters where all arguments
2801 are optional.
2802
2803 - Issue #18960: 2to3 and the findnocoding.py script now ignore the source
2804 encoding declaration on the second line if the first line contains anything
2805 except a comment.
2806
2807 - Issue #19723: The marker comments Argument Clinic uses have been changed
2808 to improve readability.
2809
2810 - Issue #20157: When Argument Clinic renames a parameter because its name
2811 collides with a C keyword, it no longer exposes that rename to PyArg_Parse.
2812
2813 - Issue #20141: Improved Argument Clinic's support for the PyArg_Parse "O!"
2814 format unit.
2815
2816 - Issue #20144: Argument Clinic now supports simple symbolic constants
2817 as parameter default values.
2818
2819 - Issue #20143: The line numbers reported in Argument Clinic errors are
2820 now more accurate.
2821
2822 - Issue #20142: Py_buffer variables generated by Argument Clinic are now
2823 initialized with a default value.
2824
2825 Build
2826 -----
2827
2828 - Issue #12837: Silence a tautological comparison warning on OS X under Clang in
2829 socketmodule.c.
2830
2831
2832 What's New in Python 3.4.0 Beta 2?
2833 ==================================
2834
2835 Release date: 2014-01-05
2836
2837 Core and Builtins
2838 -----------------
2839
2840 - Issue #17432: Drop UCS2 from names of Unicode functions in python3.def.
2841
2842 - Issue #19526: Exclude all new API from the stable ABI. Exceptions can be
2843 made if a need is demonstrated.
2844
2845 - Issue #19969: PyBytes_FromFormatV() now raises an OverflowError if "%c"
2846 argument is not in range [0; 255].
2847
2848 - Issue #19995: %c, %o, %x, and %X now issue a DeprecationWarning on non-integer
2849 input; reworded docs to clarify that an integer type should define both __int__
2850 and __index__.
2851
2852 - Issue #19787: PyThread_set_key_value() now always set the value. In Python
2853 3.3, the function did nothing if the key already exists (if the current value
2854 is a non-NULL pointer).
2855
2856 - Issue #14432: Remove the thread state field from the frame structure. Fix a
2857 crash when a generator is created in a C thread that is destroyed while the
2858 generator is still used. The issue was that a generator contains a frame, and
2859 the frame kept a reference to the Python state of the destroyed C thread. The
2860 crash occurs when a trace function is setup.
2861
2862 - Issue #19576: PyGILState_Ensure() now initializes threads. At startup, Python
2863 has no concrete GIL. If PyGILState_Ensure() is called from a new thread for
2864 the first time and PyEval_InitThreads() was not called yet, a GIL needs to be
2865 created.
2866
2867 - Issue #17576: Deprecation warning emitted now when __int__() or __index__()
2868 return not int instance.
2869
2870 - Issue #19932: Fix typo in import.h, missing whitespaces in function prototypes.
2871
2872 - Issue #19736: Add module-level statvfs constants defined for GNU/glibc
2873 based systems.
2874
2875 - Issue #20097: Fix bad use of "self" in importlib's WindowsRegistryFinder.
2876
2877 - Issue #19729: In str.format(), fix recursive expansion in format spec.
2878
2879 - Issue #19638: Fix possible crash / undefined behaviour from huge (more than 2
2880 billion characters) input strings in _Py_dg_strtod.
2881
2882 Library
2883 -------
2884
2885 - Issue #20154: Deadlock in asyncio.StreamReader.readexactly().
2886
2887 - Issue #16113: Remove sha3 module again.
2888
2889 - Issue #20111: pathlib.Path.with_suffix() now sanity checks the given suffix.
2890
2891 - Fix breakage in TestSuite.countTestCases() introduced by issue #11798.
2892
2893 - Issue #20108: Avoid parameter name clash in inspect.getcallargs().
2894
2895 - Issue #19918: Fix PurePath.relative_to() under Windows.
2896
2897 - Issue #19422: Explicitly disallow non-SOCK_STREAM sockets in the ssl
2898 module, rather than silently let them emit clear text data.
2899
2900 - Issue #20046: Locale alias table no longer contains entities which can be
2901 calculated. Generalized support of the euro modifier.
2902
2903 - Issue #20027: Fixed locale aliases for devanagari locales.
2904
2905 - Issue #20067: Tkinter variables now work when wantobjects is false.
2906
2907 - Issue #19020: Tkinter now uses splitlist() instead of split() in configure
2908 methods.
2909
2910 - Issue #19744: ensurepip now provides a better error message when Python is
2911 built without SSL/TLS support (pip currently requires that support to run,
2912 even if only operating with local wheel files)
2913
2914 - Issue #19734: ensurepip now ignores all pip environment variables to avoid
2915 odd behaviour based on user configuration settings
2916
2917 - Fix TypeError on "setup.py upload --show-response".
2918
2919 - Issue #20045: Fix "setup.py register --list-classifiers".
2920
2921 - Issue #18879: When a method is looked up on a temporary file, avoid closing
2922 the file before the method is possibly called.
2923
2924 - Issue #20037: Avoid crashes when opening a text file late at interpreter
2925 shutdown.
2926
2927 - Issue #19967: Thanks to the PEP 442, asyncio.Future now uses a
2928 destructor to log uncaught exceptions, instead of the dedicated
2929 _TracebackLogger class.
2930
2931 - Added a Task.current_task() class method to asyncio.
2932
2933 - Issue #19850: Set SA_RESTART in asyncio when registering a signal
2934 handler to limit EINTR occurrences.
2935
2936 - Implemented write flow control in asyncio for proactor event loop (Windows).
2937
2938 - Change write buffer in asyncio use to avoid O(N**2) behavior. Make
2939 write()/sendto() accept bytearray/memoryview.
2940
2941 - Issue #20034: Updated alias mapping to most recent locale.alias file
2942 from X.org distribution using makelocalealias.py.
2943
2944 - Issue #5815: Fixed support for locales with modifiers. Fixed support for
2945 locale encodings with hyphens.
2946
2947 - Issue #20026: Fix the sqlite module to handle correctly invalid isolation
2948 level (wrong type).
2949
2950 - Issue #18829: csv.Dialect() now checks type for delimiter, escapechar and
2951 quotechar fields. Original patch by Vajrasky Kok.
2952
2953 - Issue #19855: uuid.getnode() on Unix now looks on the PATH for the
2954 executables used to find the mac address, with /sbin and /usr/sbin as
2955 fallbacks.
2956
2957 - Issue #20007: HTTPResponse.read(0) no more prematurely closes connection.
2958 Original patch by Simon Sapin.
2959
2960 - Issue #19946: multiprocessing now uses runpy to initialize __main__ in
2961 child processes when necessary, allowing it to correctly handle scripts
2962 without suffixes and submodules that use explicit relative imports or
2963 otherwise rely on parent modules being correctly imported prior to
2964 execution.
2965
2966 - Issue #19921: When Path.mkdir() is called with parents=True, any missing
2967 parent is created with the default permissions, ignoring the mode argument
2968 (mimicking the POSIX "mkdir -p" command).
2969
2970 - Issue #19887: Improve the Path.resolve() algorithm to support certain
2971 symlink chains.
2972
2973 - Issue #19912: Fixed numerous bugs in ntpath.splitunc().
2974
2975 - Issue #19911: ntpath.splitdrive() now correctly processes the 'İ' character
2976 (U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE).
2977
2978 - Issue #19532: python -m compileall with no filename/directory arguments now
2979 respects the -f and -q flags instead of ignoring them.
2980
2981 - Issue #19623: Fixed writing to unseekable files in the aifc module.
2982
2983 - Issue #19946: multiprocessing.spawn now raises ImportError when the module to
2984 be used as the main module cannot be imported.
2985
2986 - Issue #17919: select.poll.register() again works with poll.POLLNVAL on AIX.
2987 Fixed integer overflow in the eventmask parameter.
2988
2989 - Issue #19063: if a Charset's body_encoding was set to None, the email
2990 package would generate a message claiming the Content-Transfer-Encoding
2991 was 7bit, and produce garbage output for the content. This now works.
2992 A couple of other set_payload mishandlings of non-ASCII are also fixed.
2993 In addition, calling set_payload with a string argument without
2994 specifying a charset now raises an error (this is a new error in 3.4).
2995
2996 - Issue #15475: Add __sizeof__ implementations for itertools objects.
2997
2998 - Issue #19944: Fix importlib.find_spec() so it imports parents as needed
2999 and move the function to importlib.util.
3000
3001 - Issue #19880: Fix a reference leak in unittest.TestCase. Explicitly break
3002 reference cycles between frames and the _Outcome instance.
3003
3004 - Issue #17429: platform.linux_distribution() now decodes files from the UTF-8
3005 encoding with the surrogateescape error handler, instead of decoding from the
3006 locale encoding in strict mode. It fixes the function on Fedora 19 which is
3007 probably the first major distribution release with a non-ASCII name. Patch
3008 written by Toshio Kuratomi.
3009
3010 - Issue #19343: Expose FreeBSD-specific APIs in resource module. Original
3011 patch by Koobs.
3012
3013 - Issue #19929: Call os.read with 32768 within subprocess.Popen.communicate
3014 rather than 4096 for efficiency. A microbenchmark shows Linux and OS X
3015 both using ~50% less cpu time this way.
3016
3017 - Issue #19506: Use a memoryview to avoid a data copy when piping data
3018 to stdin within subprocess.Popen.communicate. 5-10% less cpu usage.
3019
3020 - Issue #19876: selectors unregister() no longer raises ValueError or OSError
3021 if the FD is closed (as long as it was registered).
3022
3023 - Issue #19908: pathlib now joins relative Windows paths correctly when a drive
3024 is present. Original patch by Antoine Pitrou.
3025
3026 - Issue #19296: Silence compiler warning in dbm_open
3027
3028 - Issue #6784: Strings from Python 2 can now be unpickled as bytes
3029 objects by setting the encoding argument of Unpickler to be 'bytes'.
3030 Initial patch by Merlijn van Deen.
3031
3032 - Issue #19839: Fix regression in bz2 module's handling of non-bzip2 data at
3033 EOF, and analogous bug in lzma module.
3034
3035 - Issue #19881: Fix pickling bug where cpickle would emit bad pickle data for
3036 large bytes string (i.e., with size greater than 2**32-1).
3037
3038 - Issue #19138: doctest's IGNORE_EXCEPTION_DETAIL now allows a match when
3039 no exception detail exists (no colon following the exception's name, or
3040 a colon does follow but no text follows the colon).
3041
3042 - Issue #19927: Add __eq__ to path-based loaders in importlib.
3043
3044 - Issue #19827: On UNIX, setblocking() and settimeout() methods of
3045 socket.socket can now avoid a second syscall if the ioctl() function can be
3046 used, or if the non-blocking flag of the socket is unchanged.
3047
3048 - Issue #19785: smtplib now supports SSLContext.check_hostname and server name
3049 indication for TLS/SSL connections.
3050
3051 - Issue #19784: poplib now supports SSLContext.check_hostname and server name
3052 indication for TLS/SSL connections.
3053
3054 - Issue #19783: nntplib now supports SSLContext.check_hostname and server name
3055 indication for TLS/SSL connections.
3056
3057 - Issue #19782: imaplib now supports SSLContext.check_hostname and server name
3058 indication for TLS/SSL connections.
3059
3060 - Issue #20123: Fix pydoc.synopsis() for "binary" modules.
3061
3062 - Issue #19834: Support unpickling of exceptions pickled by Python 2.
3063
3064 - Issue #19781: ftplib now supports SSLContext.check_hostname and server name
3065 indication for TLS/SSL connections.
3066
3067 - Issue #19509: Add SSLContext.check_hostname to match the peer's certificate
3068 with server_hostname on handshake.
3069
3070 - Issue #15798: Fixed subprocess.Popen() to no longer fail if file
3071 descriptor 0, 1 or 2 is closed.
3072
3073 - Issue #17897: Optimized unpickle prefetching.
3074
3075 - Issue #3693: Make the error message more helpful when the array.array()
3076 constructor is given a str. Move the array module typecode documentation to
3077 the docstring of the constructor.
3078
3079 - Issue #19088: Fixed incorrect caching of the copyreg module in
3080 object.__reduce__() and object.__reduce_ex__().
3081
3082 - Issue #19698: Removed exec_module() methods from
3083 importlib.machinery.BuiltinImporter and ExtensionFileLoader.
3084
3085 - Issue #18864: Added a setter for ModuleSpec.has_location.
3086
3087 - Fixed _pickle.Unpickler to not fail when loading empty strings as
3088 persistent IDs.
3089
3090 - Issue #11480: Fixed copy.copy to work with classes with custom metaclasses.
3091 Patch by Daniel Urban.
3092
3093 - Issue #6477: Added support for pickling the types of built-in singletons
3094 (i.e., Ellipsis, NotImplemented, None).
3095
3096 - Issue #19713: Add remaining PEP 451-related deprecations and move away
3097 from using find_module/find_loaer/load_module.
3098
3099 - Issue #19708: Update pkgutil to use the new importer APIs.
3100
3101 - Issue #19703: Update pydoc to use the new importer APIs.
3102
3103 - Issue #19851: Fixed a regression in reloading sub-modules.
3104
3105 - ssl.create_default_context() sets OP_NO_COMPRESSION to prevent CRIME.
3106
3107 - Issue #19802: Add socket.SO_PRIORITY.
3108
3109 - Issue #11508: Fixed uuid.getnode() and uuid.uuid1() on environment with
3110 virtual interface. Original patch by Kent Frazier.
3111
3112 - Issue #11489: JSON decoder now accepts lone surrogates.
3113
3114 - Issue #19545: Avoid chained exceptions while passing stray % to
3115 time.strptime(). Initial patch by Claudiu Popa.
3116
3117 IDLE
3118 ----
3119
3120 - Issue #20058: sys.stdin.readline() in IDLE now always returns only one line.
3121
3122 - Issue #19481: print() of string subclass instance in IDLE no longer hangs.
3123
3124 - Issue #18270: Prevent possible IDLE AttributeError on OS X when no initial
3125 shell window is present.
3126
3127 Tests
3128 -----
3129
3130 - Issue #20055: Fix test_shutil under Windows with symlink privileges held.
3131 Patch by Vajrasky Kok.
3132
3133 - Issue #20070: Don't run test_urllib2net when network resources are not
3134 enabled.
3135
3136 - Issue #19938: Re-enabled test_bug_1333982 in test_dis, which had been
3137 disabled since 3.0 due to the changes in listcomp handling.
3138
3139 - Issue #19320: test_tcl no longer fails when wantobjects is false.
3140
3141 - Issue #19919: Fix flaky SSL test. connect_ex() sometimes returns
3142 EWOULDBLOCK on Windows or VMs hosted on Windows.
3143
3144 - Issue #19912: Added tests for ntpath.splitunc().
3145
3146 - Issue #19828: Fixed test_site when the whole suite is run with -S.
3147
3148 - Issue #19928: Implemented a test for repr() of cell objects.
3149
3150 - Issue #19535: Fixed test_docxmlrpc, test_functools, test_inspect, and
3151 test_statistics when python is run with -OO.
3152
3153 - Issue #19926: Removed unneeded test_main from test_abstract_numbers.
3154 Patch by Vajrasky Kok.
3155
3156 - Issue #19572: More skipped tests explicitly marked as skipped.
3157
3158 - Issue #19595, #19987: Re-enabled a long-disabled test in test_winsound.
3159
3160 - Issue #19588: Fixed tests in test_random that were silently skipped most
3161 of the time. Patch by Julian Gindi.
3162
3163 Build
3164 -----
3165
3166 - Issue #19728: Enable pip installation by default on Windows.
3167
3168 - Issue #16136: Remove VMS support
3169
3170 - Issue #18215: Add script Tools/ssl/test_multiple_versions.py to compile and
3171 run Python's unit tests with multiple versions of OpenSSL.
3172
3173 - Issue #19922: define _INCLUDE__STDC_A1_SOURCE in HP-UX to include mbstate_t
3174 for mbrtowc().
3175
3176 - Issue #19788: kill_python(_d).exe is now run as a PreBuildEvent on the
3177 pythoncore sub-project. This should prevent build errors due a previous
3178 build's python(_d).exe still running.
3179
3180 Documentation
3181 -------------
3182
3183 - Issue #20265: Updated some parts of the Using Windows document.
3184
3185 - Issue #20266: Updated some parts of the Windows FAQ.
3186
3187 - Issue #20255: Updated the about and bugs pages.
3188
3189 - Issue #20253: Fixed a typo in the ipaddress docs that advertised an
3190 illegal attribute name. Found by INADA Naoki.
3191
3192 - Issue #18840: Introduce the json module in the tutorial, and de-emphasize
3193 the pickle module.
3194
3195 - Issue #19845: Updated the Compiling Python on Windows section.
3196
3197 - Issue #19795: Improved markup of True/False constants.
3198
3199 Tools/Demos
3200 -----------
3201
3202 - Issue #19659: Added documentation for Argument Clinic.
3203
3204 - Issue #19976: Argument Clinic METH_NOARGS functions now always
3205 take two parameters.
3206
3207
3208 What's New in Python 3.4.0 Beta 1?
3209 ==================================
3210
3211 Release date: 2013-11-24
3212
3213 Core and Builtins
3214 -----------------
3215
3216 - Use the repr of a module name in more places in import, especially
3217 exceptions.
3218
3219 - Issue #19619: str.encode, bytes.decode and bytearray.decode now use an
3220 internal API to throw LookupError for known non-text encodings, rather
3221 than attempting the encoding or decoding operation and then throwing a
3222 TypeError for an unexpected output type. (The latter mechanism remains
3223 in place for third party non-text encodings)
3224
3225 - Issue #19183: Implement PEP 456 'secure and interchangeable hash algorithm'.
3226 Python now uses SipHash24 on all major platforms.
3227
3228 - Issue #12892: The utf-16* and utf-32* encoders no longer allow surrogate code
3229 points (U+D800-U+DFFF) to be encoded. The utf-32* decoders no longer decode
3230 byte sequences that correspond to surrogate code points. The surrogatepass
3231 error handler now works with the utf-16* and utf-32* codecs. Based on
3232 patches by Victor Stinner and Kang-Hao (Kenny) Lu.
3233
3234 - Issue #17806: Added keyword-argument support for "tabsize" to
3235 str/bytes.expandtabs().
3236
3237 - Issue #17828: Output type errors in str.encode(), bytes.decode() and
3238 bytearray.decode() now direct users to codecs.encode() or codecs.decode()
3239 as appropriate.
3240
3241 - Issue #17828: The interpreter now attempts to chain errors that occur in
3242 codec processing with a replacement exception of the same type that
3243 includes the codec name in the error message. It ensures it only does this
3244 when the creation of the replacement exception won't lose any information.
3245
3246 - Issue #19466: Clear the frames of daemon threads earlier during the
3247 Python shutdown to call objects destructors. So "unclosed file" resource
3248 warnings are now correctly emitted for daemon threads.
3249
3250 - Issue #19514: Deduplicate some _Py_IDENTIFIER declarations.
3251 Patch by Andrei Dorian Duma.
3252
3253 - Issue #17936: Fix O(n**2) behaviour when adding or removing many subclasses
3254 of a given type.
3255
3256 - Issue #19428: zipimport now handles errors when reading truncated or invalid
3257 ZIP archive.
3258
3259 - Issue #18408: Add a new PyFrame_FastToLocalsWithError() function to handle
3260 exceptions when merging fast locals into f_locals of a frame.
3261 PyEval_GetLocals() now raises an exception and return NULL on failure.
3262
3263 - Issue #19369: Optimized the usage of __length_hint__().
3264
3265 - Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in the
3266 Python executable and not removed by the linker's optimizer.
3267
3268 - Issue #19306: Add extra hints to the faulthandler module's stack
3269 dumps that these are "upside down".
3270
3271 Library
3272 -------
3273
3274 - Issue #3158: doctest can now find doctests in functions and methods
3275 written in C.
3276
3277 - Issue #13477: Added command line interface to the tarfile module.
3278 Original patch by Berker Peksag.
3279
3280 - Issue #19674: inspect.signature() now produces a correct signature
3281 for some builtins.
3282
3283 - Issue #19722: Added opcode.stack_effect(), which
3284 computes the stack effect of bytecode instructions.
3285
3286 - Issue #19735: Implement private function ssl._create_stdlib_context() to
3287 create SSLContext objects in Python's stdlib module. It provides a single
3288 configuration point and makes use of SSLContext.load_default_certs().
3289
3290 - Issue #16203: Add re.fullmatch() function and regex.fullmatch() method,
3291 which anchor the pattern at both ends of the string to match.
3292 Original patch by Matthew Barnett.
3293
3294 - Issue #13592: Improved the repr for regular expression pattern objects.
3295 Based on patch by Hugo Lopes Tavares.
3296
3297 - Issue #19641: Added the audioop.byteswap() function to convert big-endian
3298 samples to little-endian and vice versa.
3299
3300 - Issue #15204: Deprecated the 'U' mode in file-like objects.
3301
3302 - Issue #17810: Implement PEP 3154, pickle protocol 4.
3303
3304 - Issue #19668: Added support for the cp1125 encoding.
3305
3306 - Issue #19689: Add ssl.create_default_context() factory function. It creates
3307 a new SSLContext object with secure default settings.
3308
3309 - Issue #19727: os.utime(..., None) is now potentially more precise
3310 under Windows.
3311
3312 - Issue #17201: ZIP64 extensions now are enabled by default. Patch by
3313 William Mallard.
3314
3315 - Issue #19292: Add SSLContext.load_default_certs() to load default root CA
3316 certificates from default stores or system stores. By default the method
3317 loads CA certs for authentication of server certs.
3318
3319 - Issue #19673: Add pathlib to the stdlib as a provisional module (PEP 428).
3320
3321 - Issue #16596: pdb in a generator now properly skips over yield and
3322 yield from rather than stepping out of the generator into its
3323 caller. (This is essential for stepping through asyncio coroutines.)
3324
3325 - Issue #17916: Added dis.Bytecode.from_traceback() and
3326 dis.Bytecode.current_offset to easily display "current instruction"
3327 markers in the new disassembly API (Patch by Claudiu Popa).
3328
3329 - Issue #19552: venv now supports bootstrapping pip into virtual environments
3330
3331 - Issue #17134: Finalize interface to Windows' certificate store. Cert and
3332 CRL enumeration are now two functions. enum_certificates() also returns
3333 purpose flags as set of OIDs.
3334
3335 - Issue #19555: Restore sysconfig.get_config_var('SO'), (and the distutils
3336 equivalent) with a DeprecationWarning pointing people at $EXT_SUFFIX.
3337
3338 - Issue #8813: Add SSLContext.verify_flags to change the verification flags
3339 of the context in order to enable certification revocation list (CRL)
3340 checks or strict X509 rules.
3341
3342 - Issue #18294: Fix the zlib module to make it 64-bit safe.
3343
3344 - Issue #19682: Fix compatibility issue with old version of OpenSSL that
3345 was introduced by Issue #18379.
3346
3347 - Issue #14455: plistlib now supports binary plists and has an updated API.
3348
3349 - Issue #19633: Fixed writing not compressed 16- and 32-bit wave files on
3350 big-endian platforms.
3351
3352 - Issue #18379: SSLSocket.getpeercert() returns CA issuer AIA fields, OCSP
3353 and CRL distribution points.
3354
3355 - Issue #18138: Implement cadata argument of SSLContext.load_verify_location()
3356 to load CA certificates and CRL from memory. It supports PEM and DER
3357 encoded strings.
3358
3359 - Issue #18775: Add name and block_size attribute to HMAC object. They now
3360 provide the same API elements as non-keyed cryptographic hash functions.
3361
3362 - Issue #17276: MD5 as default digestmod for HMAC is deprecated. The HMAC
3363 module supports digestmod names, e.g. hmac.HMAC('sha1').
3364
3365 - Issue #19449: in csv's writerow, handle non-string keys when generating the
3366 error message that certain keys are not in the 'fieldnames' list.
3367
3368 - Issue #13633: Added a new convert_charrefs keyword arg to HTMLParser that,
3369 when True, automatically converts all character references.
3370
3371 - Issue #2927: Added the unescape() function to the html module.
3372
3373 - Issue #8402: Added the escape() function to the glob module.
3374
3375 - Issue #17618: Add Base85 and Ascii85 encoding/decoding to the base64 module.
3376
3377 - Issue #19634: time.strftime("%y") now raises a ValueError on AIX when given a
3378 year before 1900.
3379
3380 - Fix test.support.bind_port() to not cause an error when Python was compiled
3381 on a system with SO_REUSEPORT defined in the headers but run on a system
3382 with an OS kernel that does not support that reasonably new socket option.
3383
3384 - Fix compilation error under gcc of the ctypes module bundled libffi for arm.
3385
3386 - Issue #19448: Add private API to SSL module to lookup ASN.1 objects by OID,
3387 NID, short name and long name.
3388
3389 - Issue #19282: dbm.open now supports the context management protocol. (Initial
3390 patch by Claudiu Popa)
3391
3392 - Issue #8311: Added support for writing any bytes-like objects in the aifc,
3393 sunau, and wave modules.
3394
3395 - Issue #5202: Added support for unseekable files in the wave module.
3396
3397 - Issue #19544 and Issue #1180: Restore global option to ignore
3398 ~/.pydistutils.cfg in Distutils, accidentally removed in backout of
3399 distutils2 changes.
3400
3401 - Issue #19523: Closed FileHandler leak which occurred when delay was set.
3402
3403 - Issue #19544 and Issue #6516: Restore support for --user and --group
3404 parameters to sdist command accidentally rolled back as part of the
3405 distutils2 rollback.
3406
3407 - Issue #13674: Prevented time.strftime from crashing on Windows when given
3408 a year before 1900 and a format of %y.
3409
3410 - Issue #19406: implementation of the ensurepip module (part of PEP 453).
3411 Patch by Donald Stufft and Nick Coghlan.
3412
3413 - Issue #19544 and Issue #6286: Restore use of urllib over http allowing use
3414 of http_proxy for Distutils upload command, a feature accidentally lost
3415 in the rollback of distutils2.
3416
3417 - Issue #19544 and Issue #7457: Restore the read_pkg_file method to
3418 distutils.dist.DistributionMetadata accidentally removed in the undo of
3419 distutils2.
3420
3421 - Issue #16685: Added support for any bytes-like objects in the audioop module.
3422 Removed support for strings.
3423
3424 - Issue #7171: Add Windows implementation of ``inet_ntop`` and ``inet_pton``
3425 to socket module. Patch by Atsuo Ishimoto.
3426
3427 - Issue #19261: Added support for writing 24-bit samples in the sunau module.
3428
3429 - Issue #1097797: Added CP273 encoding, used on IBM mainframes in
3430 Germany and Austria. Mapping provided by Michael Bierenfeld.
3431
3432 - Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms.
3433
3434 - Issue #19378: Fixed a number of cases in the dis module where the new
3435 "file" parameter was not being honoured correctly
3436
3437 - Issue #19378: Removed the "dis.Bytecode.show_info" method
3438
3439 - Issue #19378: Renamed the "dis.Bytecode.display_code" method to
3440 "dis.Bytecode.dis" and converted it to returning a string rather than
3441 printing output.
3442
3443 - Issue #19378: the "line_offset" parameter in the new "dis.get_instructions"
3444 API has been renamed to "first_line" (and the default value and usage
3445 changed accordingly). This should reduce confusion with the more common use
3446 of "offset" in the dis docs to refer to bytecode offsets.
3447
3448 - Issue #18678: Corrected spwd struct member names in spwd module:
3449 sp_nam->sp_namp, and sp_pwd->sp_pwdp. The old names are kept as extra
3450 structseq members, for backward compatibility.
3451
3452 - Issue #6157: Fixed tkinter.Text.debug(). tkinter.Text.bbox() now raises
3453 TypeError instead of TclError on wrong number of arguments. Original patch
3454 by Guilherme Polo.
3455
3456 - Issue #10197: Rework subprocess.get[status]output to use subprocess
3457 functionality and thus to work on Windows. Patch by Nick Coghlan
3458
3459 - Issue #6160: The bbox() method of tkinter.Spinbox now returns a tuple of
3460 integers instead of a string. Based on patch by Guilherme Polo.
3461
3462 - Issue #19403: contextlib.redirect_stdout is now reentrant
3463
3464 - Issue #19286: Directories in ``package_data`` are no longer added to
3465 the filelist, preventing failure outlined in the ticket.
3466
3467 - Issue #19480: HTMLParser now accepts all valid start-tag names as defined
3468 by the HTML5 standard.
3469
3470 - Issue #15114: The html.parser module now raises a DeprecationWarning when the
3471 strict argument of HTMLParser or the HTMLParser.error method are used.
3472
3473 - Issue #19410: Undo the special-casing removal of '' for
3474 importlib.machinery.FileFinder.
3475
3476 - Issue #19424: Fix the warnings module to accept filename containing surrogate
3477 characters.
3478
3479 - Issue #19435: Fix directory traversal attack on CGIHttpRequestHandler.
3480
3481 - Issue #19227: Remove pthread_atfork() handler. The handler was added to
3482 solve #18747 but has caused issues.
3483
3484 - Issue #19420: Fix reference leak in module initialization code of
3485 _hashopenssl.c
3486
3487 - Issue #19329: Optimized compiling charsets in regular expressions.
3488
3489 - Issue #19227: Try to fix deadlocks caused by re-seeding then OpenSSL
3490 pseudo-random number generator on fork().
3491
3492 - Issue #16037: HTTPMessage.readheaders() raises an HTTPException when more than
3493 100 headers are read. Adapted from patch by Jyrki Pulliainen.
3494
3495 - Issue #16040: CVE-2013-1752: nntplib: Limit maximum line lengths to 2048 to
3496 prevent readline() calls from consuming too much memory. Patch by Jyrki
3497 Pulliainen.
3498
3499 - Issue #16041: CVE-2013-1752: poplib: Limit maximum line lengths to 2048 to
3500 prevent readline() calls from consuming too much memory. Patch by Jyrki
3501 Pulliainen.
3502
3503 - Issue #17997: Change behavior of ``ssl.match_hostname()`` to follow RFC 6125,
3504 for security reasons. It now doesn't match multiple wildcards nor wildcards
3505 inside IDN fragments.
3506
3507 - Issue #16039: CVE-2013-1752: Change use of readline in imaplib module to limit
3508 line length. Patch by Emil Lind.
3509
3510 - Issue #19330: the unnecessary wrapper functions have been removed from the
3511 implementations of the new contextlib.redirect_stdout and
3512 contextlib.suppress context managers, which also ensures they provide
3513 reasonable help() output on instances
3514
3515 - Issue #19393: Fix symtable.symtable function to not be confused when there are
3516 functions or classes named "top".
3517
3518 - Issue #18685: Restore re performance to pre-PEP 393 levels.
3519
3520 - Issue #19339: telnetlib module is now using time.monotonic() when available
3521 to compute timeout.
3522
3523 - Issue #19399: fix sporadic test_subprocess failure.
3524
3525 - Issue #13234: Fix os.listdir to work with extended paths on Windows.
3526 Patch by Santoso Wijaya.
3527
3528 - Issue #19375: The site module adding a "site-python" directory to sys.path,
3529 if it exists, is now deprecated.
3530
3531 - Issue #19379: Lazily import linecache in the warnings module, to make
3532 startup with warnings faster until a warning gets printed.
3533
3534 - Issue #19288: Fixed the "in" operator of dbm.gnu databases for string
3535 argument. Original patch by Arfrever Frehtes Taifersar Arahesis.
3536
3537 - Issue #19287: Fixed the "in" operator of dbm.ndbm databases for string
3538 argument. Original patch by Arfrever Frehtes Taifersar Arahesis.
3539
3540 - Issue #19327: Fixed the working of regular expressions with too big charset.
3541
3542 - Issue #17400: New 'is_global' attribute for ipaddress to tell if an address
3543 is allocated by IANA for global or private networks.
3544
3545 - Issue #19350: Increasing the test coverage of macurl2path. Patch by Colin
3546 Williams.
3547
3548 - Issue #19365: Optimized the parsing of long replacement string in re.sub*()
3549 functions.
3550
3551 - Issue #19352: Fix unittest discovery when a module can be reached
3552 through several paths (e.g. under Debian/Ubuntu with virtualenv).
3553
3554 - Issue #15207: Fix mimetypes to read from correct part of Windows registry
3555 Original patch by Dave Chambers
3556
3557 - Issue #16595: Add prlimit() to resource module.
3558
3559 - Issue #19324: Expose Linux-specific constants in resource module.
3560
3561 - Load SSL's error strings in hashlib.
3562
3563 - Issue #18527: Upgrade internal copy of zlib to 1.2.8.
3564
3565 - Issue #19274: Add a filterfunc parameter to PyZipFile.writepy.
3566
3567 - Issue #8964: fix platform._sys_version to handle IronPython 2.6+.
3568 Patch by Martin Matusiak.
3569
3570 - Issue #19413: Restore pre-3.3 reload() semantics of re-finding modules.
3571
3572 - Issue #18958: Improve error message for json.load(s) while passing a string
3573 that starts with a UTF-8 BOM.
3574
3575 - Issue #19307: Improve error message for json.load(s) while passing objects
3576 of the wrong type.
3577
3578 - Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by
3579 limiting the call to readline(). Original patch by Michał
3580 Jastrzębski and Giampaolo Rodola.
3581
3582 - Issue #17087: Improved the repr for regular expression match objects.
3583
3584 Tests
3585 -----
3586
3587 - Issue #19664: test_userdict's repr test no longer depends on the order
3588 of dict elements.
3589
3590 - Issue #19440: Clean up test_capi by removing an unnecessary __future__
3591 import, converting from test_main to unittest.main, and running the
3592 _testcapi module tests as subTests of a unittest TestCase method.
3593
3594 - Issue #19378: the main dis module tests are now run with both stdout
3595 redirection *and* passing an explicit file parameter
3596
3597 - Issue #19378: removed the not-actually-helpful assertInstructionMatches
3598 and assertBytecodeExactlyMatches helpers from bytecode_helper
3599
3600 - Issue #18702: All skipped tests now reported as skipped.
3601
3602 - Issue #19439: interpreter embedding tests are now executed on Windows
3603 (Patch by Zachary Ware)
3604
3605 - Issue #19085: Added basic tests for all tkinter widget options.
3606
3607 - Issue #19384: Fix test_py_compile for root user, patch by Claudiu Popa.
3608
3609 Documentation
3610 -------------
3611
3612 - Issue #18326: Clarify that list.sort's arguments are keyword-only. Also,
3613 attempt to reduce confusion in the glossary by not saying there are
3614 different "types" of arguments and parameters.
3615
3616 Build
3617 -----
3618
3619 - Issue #19358: "make clinic" now runs the Argument Clinic preprocessor
3620 over all CPython source files.
3621
3622 - Update SQLite to 3.8.1, xz to 5.0.5, and Tcl/Tk to 8.6.1 on Windows.
3623
3624 - Issue #16632: Enable DEP and ASLR on Windows.
3625
3626 - Issue #17791: Drop PREFIX and EXEC_PREFIX definitions from PC/pyconfig.h
3627
3628 - Add workaround for VS 2010 nmake clean issue. VS 2010 doesn't set up PATH
3629 for nmake.exe correctly.
3630
3631 - Issue #19550: Implement Windows installer changes of PEP 453 (ensurepip).
3632
3633 - Issue #19520: Fix compiler warning in the _sha3 module on 32bit Windows.
3634
3635 - Issue #19356: Avoid using a C variabled named "_self", it's a reserved
3636 word in some C compilers.
3637
3638 - Issue #15792: Correct build options on Win64. Patch by Jeremy Kloth.
3639
3640 - Issue #19373: Apply upstream change to Tk 8.5.15 fixing OS X 10.9
3641 screen refresh problem for OS X installer build.
3642
3643 - Issue #19649: On OS X, the same set of file names are now installed
3644 in bin directories for all configurations: non-framework vs framework,
3645 and single arch vs universal builds. pythonx.y-32 is now always
3646 installed for 64-bit/32-bit universal builds. The obsolete and
3647 undocumented pythonw* symlinks are no longer installed anywhere.
3648
3649 - Issue #19553: PEP 453 - "make install" and "make altinstall" now install or
3650 upgrade pip by default, using the bundled pip provided by the new ensurepip
3651 module. A new configure option, --with-ensurepip[=upgrade|install|no], is
3652 available to override the default ensurepip "--upgrade" option. The option
3653 can also be set with "make [alt]install ENSUREPIP=[upgrade|install|no]".
3654
3655 - Issue #19551: PEP 453 - the OS X installer now installs pip by default.
3656
3657 - Update third-party libraries for OS X installers: xz 5.0.3 -> 5.0.5,
3658 SQLite 3.7.13 -> 3.8.1
3659
3660 - Issue #15663: Revert OS X installer built-in Tcl/Tk support for 3.4.0b1.
3661 Some third-party projects, such as Matplotlib and PIL/Pillow,
3662 depended on being able to build with Tcl and Tk frameworks in
3663 /Library/Frameworks.
3664
3665 Tools/Demos
3666 -----------
3667
3668 - Issue #19730: Argument Clinic now supports all the existing PyArg
3669 "format units" as legacy converters, as well as two new features:
3670 "self converters" and the "version" directive.
3671
3672 - Issue #19552: pyvenv now bootstraps pip into virtual environments by
3673 default (pass --without-pip to request the old behaviour)
3674
3675 - Issue #19390: Argument Clinic no longer accepts malformed Python
3676 and C ids.
3677
3678
3679 What's New in Python 3.4.0 Alpha 4?
3680 ===================================
3681
3682 Release date: 2013-10-20
3683
3684 Core and Builtins
3685 -----------------
3686
3687 - Issue #19301: Give classes and functions that are explicitly marked global a
3688 global qualname.
3689
3690 - Issue #19279: UTF-7 decoder no longer produces illegal strings.
3691
3692 - Issue #16612: Add "Argument Clinic", a compile-time preprocessor for
3693 C files to generate argument parsing code. (See PEP 436.)
3694
3695 - Issue #18810: Shift stat calls in importlib.machinery.FileFinder such that
3696 the code is optimistic that if something exists in a directory named exactly
3697 like the possible package being searched for that it's in actuality a
3698 directory.
3699
3700 - Issue #18416: importlib.machinery.PathFinder now treats '' as the cwd and
3701 importlib.machinery.FileFinder no longer special-cases '' to '.'. This leads
3702 to modules imported from cwd to now possess an absolute file path for
3703 __file__ (this does not affect modules specified by path on the CLI but it
3704 does affect -m/runpy). It also allows FileFinder to be more consistent by not
3705 having an edge case.
3706
3707 - Issue #4555: All exported C symbols are now prefixed with either
3708 "Py" or "_Py".
3709
3710 - Issue #19219: Speed up marshal.loads(), and make pyc files slightly
3711 (5% to 10%) smaller.
3712
3713 - Issue #19221: Upgrade Unicode database to version 6.3.0.
3714
3715 - Issue #16742: The result of the C callback PyOS_ReadlineFunctionPointer must
3716 now be a string allocated by PyMem_RawMalloc() or PyMem_RawRealloc() (or NULL
3717 if an error occurred), instead of a string allocated by PyMem_Malloc() or
3718 PyMem_Realloc().
3719
3720 - Issue #19199: Remove ``PyThreadState.tick_counter`` field
3721
3722 - Fix macro expansion of _PyErr_OCCURRED(), and make sure to use it in at
3723 least one place so as to avoid regressions.
3724
3725 - Issue #19087: Improve bytearray allocation in order to allow cheap popping
3726 of data at the front (slice deletion).
3727
3728 - Issue #19014: memoryview.cast() is now allowed on zero-length views.
3729
3730 - Issue #18690: memoryview is now automatically registered with
3731 collections.abc.Sequence
3732
3733 - Issue #19078: memoryview now correctly supports the reversed builtin
3734 (Patch by Claudiu Popa)
3735
3736 Library
3737 -------
3738
3739 - Issue #17457: unittest test discovery now works with namespace packages.
3740 Patch by Claudiu Popa.
3741
3742 - Issue #18235: Fix the sysconfig variables LDSHARED and BLDSHARED under AIX.
3743 Patch by David Edelsohn.
3744
3745 - Issue #18606: Add the new "statistics" module (PEP 450). Contributed
3746 by Steven D'Aprano.
3747
3748 - Issue #12866: The audioop module now supports 24-bit samples.
3749
3750 - Issue #19254: Provide an optimized Python implementation of pbkdf2_hmac.
3751
3752 - Issues #19201, Issue #19222, Issue #19223: Add "x" mode (exclusive creation)
3753 in opening file to bz2, gzip and lzma modules. Patches by Tim Heaney and
3754 Vajrasky Kok.
3755
3756 - Fix a reference count leak in _sre.
3757
3758 - Issue #19262: Initial check in of the 'asyncio' package (a.k.a. Tulip,
3759 a.k.a. PEP 3156). There are no docs yet, and the PEP is slightly
3760 out of date with the code. This module will have *provisional* status
3761 in Python 3.4.
3762
3763 - Issue #19276: Fixed the wave module on 64-bit big-endian platforms.
3764
3765 - Issue #19266: Rename the new-in-3.4 ``contextlib.ignore`` context manager
3766 to ``contextlib.suppress`` in order to be more consistent with existing
3767 descriptions of that operation elsewhere in the language and standard
3768 library documentation (Patch by Zero Piraeus).
3769
3770 - Issue #18891: Completed the new email package (provisional) API additions
3771 by adding new classes EmailMessage, MIMEPart, and ContentManager.
3772
3773 - Issue #18281: Unused stat constants removed from `tarfile`.
3774
3775 - Issue #18999: Multiprocessing now supports 'contexts' with the same API
3776 as the module, but bound to specified start methods.
3777
3778 - Issue #18468: The re.split, re.findall, and re.sub functions and the group()
3779 and groups() methods of match object now always return a string or a bytes
3780 object.
3781
3782 - Issue #18725: The textwrap module now supports truncating multiline text.
3783
3784 - Issue #18776: atexit callbacks now display their full traceback when they
3785 raise an exception.
3786
3787 - Issue #17827: Add the missing documentation for ``codecs.encode`` and
3788 ``codecs.decode``.
3789
3790 - Issue #19218: Rename collections.abc to _collections_abc in order to
3791 speed up interpreter start.
3792
3793 - Issue #18582: Add 'pbkdf2_hmac' to the hashlib module. It implements PKCS#5
3794 password-based key derivation functions with HMAC as pseudorandom function.
3795
3796 - Issue #19131: The aifc module now correctly reads and writes sampwidth of
3797 compressed streams.
3798
3799 - Issue #19209: Remove import of copyreg from the os module to speed up
3800 interpreter startup. stat_result and statvfs_result are now hard-coded to
3801 reside in the os module.
3802
3803 - Issue #19205: Don't import the 're' module in site and sysconfig module to
3804 speed up interpreter start.
3805
3806 - Issue #9548: Add a minimal "_bootlocale" module that is imported by the
3807 _io module instead of the full locale module.
3808
3809 - Issue #18764: Remove the 'print' alias for the PDB 'p' command so that it no
3810 longer shadows the print function.
3811
3812 - Issue #19158: A rare race in BoundedSemaphore could allow .release() too
3813 often.
3814
3815 - Issue #15805: Add contextlib.redirect_stdout().
3816
3817 - Issue #18716: Deprecate the formatter module.
3818
3819 - Issue #10712: 2to3 has a new "asserts" fixer that replaces deprecated names
3820 of unittest methods (e.g. failUnlessEqual -> assertEqual).
3821
3822 - Issue #18037: 2to3 now escapes ``'\u'`` and ``'\U'`` in native strings.
3823
3824 - Issue #17839: base64.decodebytes and base64.encodebytes now accept any
3825 object that exports a 1 dimensional array of bytes (this means the same
3826 is now also true for base64_codec)
3827
3828 - Issue #19132: The pprint module now supports compact mode.
3829
3830 - Issue #19137: The pprint module now correctly formats instances of set and
3831 frozenset subclasses.
3832
3833 - Issue #10042: functools.total_ordering now correctly handles
3834 NotImplemented being returned by the underlying comparison function (Patch
3835 by Katie Miller)
3836
3837 - Issue #19092: contextlib.ExitStack now correctly reraises exceptions
3838 from the __exit__ callbacks of inner context managers (Patch by Hrvoje
3839 Nikšić)
3840
3841 - Issue #12641: Avoid passing "-mno-cygwin" to the mingw32 compiler, except
3842 when necessary. Patch by Oscar Benjamin.
3843
3844 - Issue #5845: In site.py, only load readline history from ~/.python_history
3845 if no history has been read already. This avoids double writes to the
3846 history file at shutdown.
3847
3848 - Properly initialize all fields of a SSL object after allocation.
3849
3850 - Issue #19095: SSLSocket.getpeercert() now raises ValueError when the
3851 SSL handshake hasn't been done.
3852
3853 - Issue #4366: Fix building extensions on all platforms when --enable-shared
3854 is used.
3855
3856 - Issue #19030: Fixed `inspect.getmembers` and `inspect.classify_class_attrs`
3857 to attempt activating descriptors before falling back to a __dict__ search
3858 for faulty descriptors. `inspect.classify_class_attrs` no longer returns
3859 Attributes whose home class is None.
3860
3861 C API
3862 -----
3863
3864 - Issue #1772673: The type of `char*` arguments now changed to `const char*`.
3865
3866 - Issue #16129: Added a `Py_SetStandardStreamEncoding` pre-initialization API
3867 to allow embedding applications like Blender to force a particular
3868 encoding and error handler for the standard IO streams (initial patch by
3869 Bastien Montagne)
3870
3871 Tests
3872 -----
3873
3874 - Issue #19275: Fix test_site on AMD64 Snow Leopard
3875
3876 - Issue #14407: Fix unittest test discovery in test_concurrent_futures.
3877
3878 - Issue #18919: Unified and extended tests for audio modules: aifc, sunau and
3879 wave.
3880
3881 - Issue #18714: Added tests for ``pdb.find_function()``.
3882
3883 Documentation
3884 -------------
3885
3886 - Issue #18758: Fixed and improved cross-references.
3887
3888 - Issue #18972: Modernize email examples and use the argparse module in them.
3889
3890 Build
3891 -----
3892
3893 - Issue #19130: Correct PCbuild/readme.txt, Python 3.3 and 3.4 require VS 2010.
3894
3895 - Issue #15663: Update OS X 10.6+ installer to use Tcl/Tk 8.5.15.
3896
3897 - Issue #14499: Fix several problems with OS X universal build support:
3898 1. ppc arch detection for extension module builds broke with Xcode 5
3899 2. ppc arch detection in configure did not work on OS X 10.4
3900 3. -sysroot and -arch flags were unnecessarily duplicated
3901 4. there was no obvious way to configure an intel-32 only build.
3902
3903 - Issue #19019: Change the OS X installer build script to use CFLAGS instead
3904 of OPT for special build options. By setting OPT, some compiler-specific
3905 options like -fwrapv were overridden and thus not used, which could result
3906 in broken interpreters when building with clang.
3907
3908
3909 What's New in Python 3.4.0 Alpha 3?
3910 ===================================
3911
3912 Release date: 2013-09-29
3913
3914 Core and Builtins
3915 -----------------
3916
3917 - Issue #18818: The "encodingname" part of PYTHONIOENCODING is now optional.
3918
3919 - Issue #19098: Prevent overflow in the compiler when the recursion limit is set
3920 absurdly high.
3921
3922 Library
3923 -------
3924
3925 - Issue #18929: `inspect.classify_class_attrs()` now correctly finds class
3926 attributes returned by `dir()` that are located in the metaclass.
3927
3928 - Issue #18950: Fix miscellaneous bugs in the sunau module.
3929 Au_read.readframes() now updates current file position and reads correct
3930 number of frames from multichannel stream. Au_write.writeframesraw() now
3931 correctly updates current file position. Au_read.getnframes() now returns an
3932 integer (as in Python 2). Au_read and Au_write now correctly works with file
3933 object if start file position is not a zero.
3934
3935 - Issue #18594: The fast path for collections.Counter() was never taken
3936 due to an over-restrictive type check.
3937
3938 - Issue #19053: ZipExtFile.read1() with non-zero argument no more returns empty
3939 bytes until end of data.
3940
3941 - logging: added support for Unix domain sockets to SocketHandler and
3942 DatagramHandler.
3943
3944 - Issue #18996: TestCase.assertEqual() now more cleverly shorten differing
3945 strings in error report.
3946
3947 - Issue #19034: repr() for tkinter.Tcl_Obj now exposes string reperesentation.
3948
3949 - Issue #18978: ``urllib.request.Request`` now allows the method to be
3950 indicated on the class and no longer sets it to None in ``__init__``.
3951
3952 - Issue #18626: the inspect module now offers a basic command line
3953 introspection interface (Initial patch by Claudiu Popa)
3954
3955 - Issue #3015: Fixed tkinter with wantobject=False. Any Tcl command call
3956 returned empty string.
3957
3958 - Issue #19037: The mailbox module now makes all changes to maildir files
3959 before moving them into place, to avoid race conditions with other programs
3960 that may be accessing the maildir directory.
3961
3962 - Issue #14984: On POSIX systems, when netrc is called without a filename
3963 argument (and therefore is reading the user's $HOME/.netrc file), it now
3964 enforces the same security rules as typical ftp clients: the .netrc file must
3965 be owned by the user that owns the process and must not be readable by any
3966 other user.
3967
3968 - Issue #18873: The tokenize module now detects Python source code encoding
3969 only in comment lines.
3970
3971 - Issue #17764: Enable http.server to bind to a user specified network
3972 interface. Patch contributed by Malte Swart.
3973
3974 - Issue #18937: Add an assertLogs() context manager to unittest.TestCase
3975 to ensure that a block of code emits a message using the logging module.
3976
3977 - Issue #17324: Fix http.server's request handling case on trailing '/'. Patch
3978 contributed by Vajrasky Kok.
3979
3980 - Issue #19018: The heapq.merge() function no longer suppresses IndexError
3981 in the underlying iterables.
3982
3983 - Issue #18784: The uuid module no longer attempts to load libc via ctypes.CDLL
3984 if all the necessary functions have already been found in libuuid. Patch by
3985 Evgeny Sologubov.
3986
3987 - The :envvar:`PYTHONFAULTHANDLER` environment variable now only enables the
3988 faulthandler module if the variable is non-empty. Same behaviour than other
3989 variables like :envvar:`PYTHONDONTWRITEBYTECODE`.
3990
3991 - Issue #1565525: New function ``traceback.clear_frames`` will clear
3992 the local variables of all the stack frames referenced by a traceback
3993 object.
3994
3995 Tests
3996 -----
3997
3998 - Issue #18952: Fix regression in support data downloads introduced when
3999 test.support was converted to a package. Regression noticed by Zachary
4000 Ware.
4001
4002 IDLE
4003 ----
4004
4005 - Issue #18873: IDLE now detects Python source code encoding only in comment
4006 lines.
4007
4008 - Issue #18988: The "Tab" key now works when a word is already autocompleted.
4009
4010 Documentation
4011 -------------
4012
4013 - Issue #17003: Unified the size argument names in the io module with common
4014 practice.
4015
4016 Build
4017 -----
4018
4019 - Issue #18596: Support the use of address sanity checking in recent versions
4020 of clang and GCC by appropriately marking known false alarms in the small
4021 object allocator. Patch contributed by Dhiru Kholia.
4022
4023 Tools/Demos
4024 -----------
4025
4026 - Issue #18873: 2to3 and the findnocoding.py script now detect Python source
4027 code encoding only in comment lines.
4028
4029
4030 What's New in Python 3.4.0 Alpha 2?
4031 ===================================
4032
4033 Release date: 2013-09-09
4034
4035 Core and Builtins
4036 -----------------
4037
4038 - Issue #18942: sys._debugmallocstats() output was damaged on Windows.
4039
4040 - Issue #18571: Implementation of the PEP 446: file descriptors and file
4041 handles are now created non-inheritable; add functions
4042 os.get/set_inheritable(), os.get/set_handle_inheritable() and
4043 socket.socket.get/set_inheritable().
4044
4045 - Issue #11619: The parser and the import machinery do not encode Unicode
4046 filenames anymore on Windows.
4047
4048 - Issue #18808: Non-daemon threads are now automatically joined when
4049 a sub-interpreter is shutdown (it would previously dump a fatal error).
4050
4051 - Remove support for compiling on systems without getcwd().
4052
4053 - Issue #18774: Remove last bits of GNU PTH thread code and thread_pth.h.
4054
4055 - Issue #18771: Add optimization to set object lookups to reduce the cost
4056 of hash collisions. The core idea is to inspect a second key/hash pair
4057 for each cache line retrieved.
4058
4059 - Issue #16105: When a signal handler fails to write to the file descriptor
4060 registered with ``signal.set_wakeup_fd()``, report an exception instead
4061 of ignoring the error.
4062
4063 - Issue #18722: Remove uses of the "register" keyword in C code.
4064
4065 - Issue #18667: Add missing "HAVE_FCHOWNAT" symbol to posix._have_functions.
4066
4067 - Issue #16499: Add command line option for isolated mode.
4068
4069 - Issue #15301: Parsing fd, uid, and gid parameters for builtins
4070 in Modules/posixmodule.c is now far more robust.
4071
4072 - Issue #18368: PyOS_StdioReadline() no longer leaks memory when realloc()
4073 fail.
4074
4075 - Issue #17934: Add a clear() method to frame objects, to help clean up
4076 expensive details (local variables) and break reference cycles.
4077
4078 - Issue #18780: %-formatting codes %d, %i, and %u now treat int-subclasses
4079 as int (displays value of int-subclass instead of str(int-subclass) ).
4080
4081 Library
4082 -------
4083
4084 - Issue #18808: Thread.join() now waits for the underlying thread state to
4085 be destroyed before returning. This prevents unpredictable aborts in
4086 Py_EndInterpreter() when some non-daemon threads are still running.
4087
4088 - Issue #18458: Prevent crashes with newer versions of libedit. Its readline
4089 emulation has changed from 0-based indexing to 1-based like gnu readline.
4090
4091 - Issue #18852: Handle case of ``readline.__doc__`` being ``None`` in the new
4092 readline activation code in ``site.py``.
4093
4094 - Issue #18672: Fixed format specifiers for Py_ssize_t in debugging output in
4095 the _sre module.
4096
4097 - Issue #18830: inspect.getclasstree() no longer produces duplicate entries even
4098 when input list contains duplicates.
4099
4100 - Issue #18878: sunau.open now supports the context management protocol. Based on
4101 patches by Claudiu Popa and R. David Murray.
4102
4103 - Issue #18909: Fix _tkinter.tkapp.interpaddr() on Windows 64-bit, don't cast
4104 64-bit pointer to long (32 bits).
4105
4106 - Issue #18876: The FileIO.mode attribute now better reflects the actual mode
4107 under which the file was opened. Patch by Erik Bray.
4108
4109 - Issue #16853: Add new selectors module.
4110
4111 - Issue #18882: Add threading.main_thread() function.
4112
4113 - Issue #18901: The sunau getparams method now returns a namedtuple rather than
4114 a plain tuple. Patch by Claudiu Popa.
4115
4116 - Issue #17487: The result of the wave getparams method now is pickleable again.
4117 Patch by Claudiu Popa.
4118
4119 - Issue #18756: os.urandom() now uses a lazily-opened persistent file
4120 descriptor, so as to avoid using many file descriptors when run in
4121 parallel from multiple threads.
4122
4123 - Issue #18418: After fork(), reinit all threads states, not only active ones.
4124 Patch by A. Jesse Jiryu Davis.
4125
4126 - Issue #17974: Switch unittest from using getopt to using argparse.
4127
4128 - Issue #11798: TestSuite now drops references to own tests after execution.
4129
4130 - Issue #16611: http.cookie now correctly parses the 'secure' and 'httponly'
4131 cookie flags.
4132
4133 - Issue #11973: Fix a problem in kevent. The flags and fflags fields are now
4134 properly handled as unsigned.
4135
4136 - Issue #18807: ``pyvenv`` now takes a --copies argument allowing copies
4137 instead of symlinks even where symlinks are available and the default.
4138
4139 - Issue #18538: ``python -m dis`` now uses argparse for argument processing.
4140 Patch by Michele Orrù.
4141
4142 - Issue #18394: Close cgi.FieldStorage's optional file.
4143
4144 - Issue #17702: On error, os.environb now suppresses the exception context
4145 when raising a new KeyError with the original key.
4146
4147 - Issue #16809: Fixed some tkinter incompabilities with Tcl/Tk 8.6.
4148
4149 - Issue #16809: Tkinter's splitlist() and split() methods now accept Tcl_Obj
4150 argument.
4151
4152 - Issue #18324: set_payload now correctly handles binary input. This also
4153 supersedes the previous fixes for #14360, #1717, and #16564.
4154
4155 - Issue #18794: Add a fileno() method and a closed attribute to select.devpoll
4156 objects.
4157
4158 - Issue #17119: Fixed integer overflows when processing large strings and tuples
4159 in the tkinter module.
4160
4161 - Issue #18747: Re-seed OpenSSL's pseudo-random number generator after fork.
4162 A pthread_atfork() parent handler is used to seed the PRNG with pid, time
4163 and some stack data.
4164
4165 - Issue #8865: Concurrent invocation of select.poll.poll() now raises a
4166 RuntimeError exception. Patch by Christian Schubert.
4167
4168 - Issue #18777: The ssl module now uses the new CRYPTO_THREADID API of
4169 OpenSSL 1.0.0+ instead of the deprecated CRYPTO id callback function.
4170
4171 - Issue #18768: Correct doc string of RAND_edg(). Patch by Vajrasky Kok.
4172
4173 - Issue #18178: Fix ctypes on BSD. dlmalloc.c was compiled twice which broke
4174 malloc weak symbols.
4175
4176 - Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes
4177 inside subjectAltName correctly. Formerly the module has used OpenSSL's
4178 GENERAL_NAME_print() function to get the string representation of ASN.1
4179 strings for ``rfc822Name`` (email), ``dNSName`` (DNS) and
4180 ``uniformResourceIdentifier`` (URI).
4181
4182 - Issue #18701: Remove support of old CPython versions (<3.0) from C code.
4183
4184 - Issue #18756: Improve error reporting in os.urandom() when the failure
4185 is due to something else than /dev/urandom not existing (for example,
4186 exhausting the file descriptor limit).
4187
4188 - Issue #18673: Add O_TMPFILE to os module. O_TMPFILE requires Linux kernel
4189 3.11 or newer. It's only defined on system with 3.11 uapi headers, too.
4190
4191 - Issue #18532: Change the builtin hash algorithms' names to lower case names
4192 as promised by hashlib's documentation.
4193
4194 - Issue #8713: add new spwan and forkserver start methods, and new functions
4195 get_all_start_methods, get_start_method, and set_start_method, to
4196 multiprocessing.
4197
4198 - Issue #18405: Improve the entropy of crypt.mksalt().
4199
4200 - Issue #12015: The tempfile module now uses a suffix of 8 random characters
4201 instead of 6, to reduce the risk of filename collision. The entropy was
4202 reduced when uppercase letters were removed from the charset used to generate
4203 random characters.
4204
4205 - Issue #18585: Add :func:`textwrap.shorten` to collapse and truncate a
4206 piece of text to a given length.
4207
4208 - Issue #18598: Tweak exception message for importlib.import_module() to
4209 include the module name when a key argument is missing.
4210
4211 - Issue #19151: Fix docstring and use of _get_supported_file_loaders() to
4212 reflect 2-tuples.
4213
4214 - Issue #19152: Add ExtensionFileLoader.get_filename().
4215
4216 - Issue #18676: Change 'positive' to 'non-negative' in queue.py put and get
4217 docstrings and ValueError messages. Patch by Zhongyue Luo
4218
4219 - Fix refcounting issue with extension types in tkinter.
4220
4221 - Issue #8112: xlmrpc.server's DocXMLRPCServer server no longer raises an error
4222 if methods have annotations; it now correctly displays the annotations.
4223
4224 - Issue #18600: Added policy argument to email.message.Message.as_string,
4225 and as_bytes and __bytes__ methods to Message.
4226
4227 - Issue #18671: Output more information when logging exceptions occur.
4228
4229 - Issue #18621: Prevent the site module's patched builtins from keeping
4230 too many references alive for too long.
4231
4232 - Issue #4885: Add weakref support to mmap objects. Patch by Valerie Lambert.
4233
4234 - Issue #8860: Fixed rounding in timedelta constructor.
4235
4236 - Issue #18849: Fixed a Windows-specific tempfile bug where collision with an
4237 existing directory caused mkstemp and related APIs to fail instead of
4238 retrying. Report and fix by Vlad Shcherbina.
4239
4240 - Issue #18920: argparse's default destination for the version action (-v,
4241 --version) has also been changed to stdout, to match the Python executable.
4242
4243 Tests
4244 -----
4245
4246 - Issue #18623: Factor out the _SuppressCoreFiles context manager into
4247 test.support. Patch by Valerie Lambert.
4248
4249 - Issue #12037: Fix test_email for desktop Windows.
4250
4251 - Issue #15507: test_subprocess's test_send_signal could fail if the test
4252 runner were run in an environment where the process inherited an ignore
4253 setting for SIGINT. Restore the SIGINT handler to the desired
4254 KeyboardInterrupt raising one during that test.
4255
4256 - Issue #16799: Switched from getopt to argparse style in regrtest's argument
4257 parsing. Added more tests for regrtest's argument parsing.
4258
4259 - Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as
4260 possible, since "localhost" goes through a DNS lookup under recent Windows
4261 versions.
4262
4263 IDLE
4264 ----
4265
4266 - Issue #18489: Add tests for SearchEngine. Original patch by Phil Webster.
4267
4268 Documentation
4269 -------------
4270
4271 - Issue #18743: Fix references to non-existent "StringIO" module.
4272
4273 - Issue #18783: Removed existing mentions of Python long type in docstrings,
4274 error messages and comments.
4275
4276 Build
4277 -----
4278
4279 - Issue #1584: Provide configure options to override default search paths for
4280 Tcl and Tk when building _tkinter.
4281
4282 - Issue #15663: Tcl/Tk 8.5.14 is now included with the OS X 10.6+ 64-/32-bit
4283 installer. It is no longer necessary to install a third-party version of
4284 Tcl/Tk 8.5 to work around the problems in the Apple-supplied Tcl/Tk 8.5
4285 shipped in OS X 10.6 and later releases.
4286
4287 Tools/Demos
4288 -----------
4289
4290 - Issue #18922: Now The Lib/smtpd.py and Tools/i18n/msgfmt.py scripts write
4291 their version strings to stdout, and not to sderr.
4292
4293
4294 What's New in Python 3.4.0 Alpha 1?
4295 ===================================
4296
4297 Release date: 2013-08-03
4298
4299 Core and Builtins
4300 -----------------
4301
4302 - Issue #16741: Fix an error reporting in int().
4303
4304 - Issue #17899: Fix rare file descriptor leak in os.listdir().
4305
4306 - Issue #10241: Clear extension module dict copies at interpreter shutdown.
4307 Patch by Neil Schemenauer, minimally modified.
4308
4309 - Issue #9035: ismount now recognises volumes mounted below a drive root
4310 on Windows. Original patch by Atsuo Ishimoto.
4311
4312 - Issue #18214: Improve finalization of Python modules to avoid setting
4313 their globals to None, in most cases.
4314
4315 - Issue #18112: PEP 442 implementation (safe object finalization).
4316
4317 - Issue #18552: Check return value of PyArena_AddPyObject() in
4318 obj2ast_object().
4319
4320 - Issue #18560: Fix potential NULL pointer dereference in sum().
4321
4322 - Issue #18520: Add a new PyStructSequence_InitType2() function, same than
4323 PyStructSequence_InitType() except that it has a return value (0 on success,
4324 -1 on error).
4325
4326 - Issue #15905: Fix theoretical buffer overflow in handling of sys.argv[0],
4327 prefix and exec_prefix if the operation system does not obey MAXPATHLEN.
4328
4329 - Issue #18408: Fix many various bugs in code handling errors, especially
4330 on memory allocation failure (MemoryError).
4331
4332 - Issue #18344: Fix potential ref-leaks in _bufferedreader_read_all().
4333
4334 - Issue #18342: Use the repr of a module name when an import fails when using
4335 ``from ... import ...``.
4336
4337 - Issue #17872: Fix a segfault in marshal.load() when input stream returns
4338 more bytes than requested.
4339
4340 - Issue #18338: `python --version` now prints version string to stdout, and
4341 not to stderr. Patch by Berker Peksag and Michael Dickens.
4342
4343 - Issue #18426: Fix NULL pointer dereference in C extension import when
4344 PyModule_GetDef() returns an error.
4345
4346 - Issue #17206: On Windows, increase the stack size from 2 MB to 4.2 MB to fix
4347 a stack overflow in the marshal module (fix a crash in test_marshal).
4348 Patch written by Jeremy Kloth.
4349
4350 - Issue #3329: Implement the PEP 445: Add new APIs to customize Python memory
4351 allocators.
4352
4353 - Issue #18328: Reorder ops in PyThreadState_Delete*() functions. Now the
4354 tstate is first removed from TLS and then deallocated.
4355
4356 - Issue #13483: Use VirtualAlloc in obmalloc on Windows.
4357
4358 - Issue #18184: PyUnicode_FromFormat() and PyUnicode_FromFormatV() now raise
4359 OverflowError when an argument of %c format is out of range.
4360
4361 - Issue #18111: The min() and max() functions now support a default argument
4362 to be returned instead of raising a ValueError on an empty sequence.
4363 (Contributed by Julian Berman.)
4364
4365 - Issue #18137: Detect integer overflow on precision in float.__format__()
4366 and complex.__format__().
4367
4368 - Issue #18183: Fix various unicode operations on strings with large unicode
4369 codepoints.
4370
4371 - Issue #18180: Fix ref leak in _PyImport_GetDynLoadWindows().
4372
4373 - Issue #18038: SyntaxError raised during compilation sources with illegal
4374 encoding now always contains an encoding name.
4375
4376 - Issue #17931: Resolve confusion on Windows between pids and process
4377 handles.
4378
4379 - Tweak the exception message when the magic number or size value in a bytecode
4380 file is truncated.
4381
4382 - Issue #17932: Fix an integer overflow issue on Windows 64-bit in iterators:
4383 change the C type of seqiterobject.it_index from long to Py_ssize_t.
4384
4385 - Issue #18065: Don't set __path__ to the package name for frozen packages.
4386
4387 - Issue #18088: When reloading a module, unconditionally reset all relevant
4388 attributes on the module (e.g. __name__, __loader__, __package__, __file__,
4389 __cached__).
4390
4391 - Issue #17937: Try harder to collect cyclic garbage at shutdown.
4392
4393 - Issue #12370: Prevent class bodies from interfering with the __class__
4394 closure.
4395
4396 - Issue #17644: Fix a crash in str.format when curly braces are used in square
4397 brackets.
4398
4399 - Issue #17237: Fix crash in the ASCII decoder on m68k.
4400
4401 - Issue #17927: Frame objects kept arguments alive if they had been
4402 copied into a cell, even if the cell was cleared.
4403
4404 - Issue #1545463: At shutdown, defer finalization of codec modules so
4405 that stderr remains usable.
4406
4407 - Issue #7330: Implement width and precision (ex: "%5.3s") for the format
4408 string of PyUnicode_FromFormat() function, original patch written by Ysj Ray.
4409
4410 - Issue #1545463: Global variables caught in reference cycles are now
4411 garbage-collected at shutdown.
4412
4413 - Issue #17094: Clear stale thread states after fork(). Note that this
4414 is a potentially disruptive change since it may release some system
4415 resources which would otherwise remain perpetually alive (e.g. database
4416 connections kept in thread-local storage).
4417
4418 - Issue #17408: Avoid using an obsolete instance of the copyreg module when
4419 the interpreter is shutdown and then started again.
4420
4421 - Issue #5845: Enable tab-completion in the interactive interpreter by
4422 default, thanks to a new sys.__interactivehook__.
4423
4424 - Issue #17115,17116: Module initialization now includes setting __package__ and
4425 __loader__ attributes to None.
4426
4427 - Issue #17853: Ensure locals of a class that shadow free variables always win
4428 over the closures.
4429
4430 - Issue #17863: In the interactive console, don't loop forever if the encoding
4431 can't be fetched from stdin.
4432
4433 - Issue #17867: Raise an ImportError if __import__ is not found in __builtins__.
4434
4435 - Issue #18698: Ensure importlib.reload() returns the module out of sys.modules.
4436
4437 - Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
4438 such as was shipped with Centos 5 and Mac OS X 10.4.
4439
4440 - Issue #17413: sys.settrace callbacks were being passed a string instead of an
4441 exception instance for the 'value' element of the arg tuple if the exception
4442 originated from C code; now an exception instance is always provided.
4443
4444 - Issue #17782: Fix undefined behaviour on platforms where
4445 ``struct timespec``'s "tv_nsec" member is not a C long.
4446
4447 - Issue #17722: When looking up __round__, resolve descriptors.
4448
4449 - Issue #16061: Speed up str.replace() for replacing 1-character strings.
4450
4451 - Issue #17715: Fix segmentation fault from raising an exception in a __trunc__
4452 method.
4453
4454 - Issue #17643: Add __callback__ attribute to weakref.ref.
4455
4456 - Issue #16447: Fixed potential segmentation fault when setting __name__ on a
4457 class.
4458
4459 - Issue #17669: Fix crash involving finalization of generators using yield from.
4460
4461 - Issue #14439: Python now prints the traceback on runpy failure at startup.
4462
4463 - Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks()
4464 when running on valgrind.
4465
4466 - Issue #17619: Make input() check for Ctrl-C correctly on Windows.
4467
4468 - Issue #17357: Add missing verbosity messages for -v/-vv that were lost during
4469 the importlib transition.
4470
4471 - Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
4472
4473 - Issue #17323: The "[X refs, Y blocks]" printed by debug builds has been
4474 disabled by default. It can be re-enabled with the `-X showrefcount` option.
4475
4476 - Issue #17328: Fix possible refleak in dict.setdefault.
4477
4478 - Issue #17275: Corrected class name in init error messages of the C version of
4479 BufferedWriter and BufferedRandom.
4480
4481 - Issue #7963: Fixed misleading error message that issued when object is
4482 called without arguments.
4483
4484 - Issue #8745: Small speed up zipimport on Windows. Patch by Catalin Iacob.
4485
4486 - Issue #5308: Raise ValueError when marshalling too large object (a sequence
4487 with size >= 2**31), instead of producing illegal marshal data.
4488
4489 - Issue #12983: Bytes literals with invalid ``\x`` escape now raise a SyntaxError
4490 and a full traceback including line number.
4491
4492 - Issue #16967: In function definition, evaluate positional defaults before
4493 keyword-only defaults.
4494
4495 - Issue #17173: Remove uses of locale-dependent C functions (isalpha() etc.)
4496 in the interpreter.
4497
4498 - Issue #17137: When an Unicode string is resized, the internal wide character
4499 string (wstr) format is now cleared.
4500
4501 - Issue #17043: The unicode-internal decoder no longer read past the end of
4502 input buffer.
4503
4504 - Issue #17098: All modules now have __loader__ set even if they pre-exist the
4505 bootstrapping of importlib.
4506
4507 - Issue #16979: Fix error handling bugs in the unicode-escape-decode decoder.
4508
4509 - Issue #16772: The base argument to the int constructor no longer accepts
4510 floats, or other non-integer objects with an __int__ method. Objects
4511 with an __index__ method are now accepted.
4512
4513 - Issue #10156: In the interpreter's initialization phase, unicode globals
4514 are now initialized dynamically as needed.
4515
4516 - Issue #16980: Fix processing of escaped non-ascii bytes in the
4517 unicode-escape-decode decoder.
4518
4519 - Issue #16975: Fix error handling bug in the escape-decode bytes decoder.
4520
4521 - Issue #14850: Now a charmap decoder treats U+FFFE as "undefined mapping"
4522 in any mapping, not only in a string.
4523
4524 - Issue #16613: Add *m* argument to ``collections.Chainmap.new_child`` to
4525 allow the new child map to be specified explicitly.
4526
4527 - Issue #16730: importlib.machinery.FileFinder now no longers raises an
4528 exception when trying to populate its cache and it finds out the directory is
4529 unreadable or has turned into a file. Reported and diagnosed by
4530 David Pritchard.
4531
4532 - Issue #16906: Fix a logic error that prevented most static strings from being
4533 cleared.
4534
4535 - Issue #11461: Fix the incremental UTF-16 decoder. Original patch by
4536 Amaury Forgeot d'Arc.
4537
4538 - Issue #16856: Fix a segmentation fault from calling repr() on a dict with
4539 a key whose repr raise an exception.
4540
4541 - Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB.
4542
4543 - Issue #16761: Calling int() with base argument only now raises TypeError.
4544
4545 - Issue #16759: Support the full DWORD (unsigned long) range in Reg2Py
4546 when retrieving a REG_DWORD value. This corrects functions like
4547 winreg.QueryValueEx that may have been returning truncated values.
4548
4549 - Issue #14420: Support the full DWORD (unsigned long) range in Py2Reg
4550 when passed a REG_DWORD value. Fixes OverflowError in winreg.SetValueEx.
4551
4552 - Issue #11939: Set the st_dev attribute of stat_result to allow Windows to
4553 take advantage of the os.path.samefile/sameopenfile/samestat implementations
4554 used by other platforms.
4555
4556 - Issue #16772: The int() constructor's second argument (base) no longer
4557 accepts non integer values. Consistent with the behavior in Python 2.
4558
4559 - Issue #14470: Remove w9xpopen support per PEP 11.
4560
4561 - Issue #9856: Replace deprecation warning with raising TypeError
4562 in object.__format__. Patch by Florent Xicluna.
4563
4564 - Issue #16597: In buffered and text IO, call close() on the underlying stream
4565 if invoking flush() fails.
4566
4567 - Issue #16722: In the bytes() constructor, try to call __bytes__ on the
4568 argument before __index__.
4569
4570 - Issue #16421: loading multiple modules from one shared object is now
4571 handled correctly (previously, the first module loaded from that file
4572 was silently returned). Patch by Václav Šmilauer.
4573
4574 - Issue #16602: When a weakref's target was part of a long deallocation
4575 chain, the object could remain reachable through its weakref even though
4576 its refcount had dropped to zero.
4577
4578 - Issue #16495: Remove extraneous NULL encoding check from bytes_decode().
4579
4580 - Issue #16619: Create NameConstant AST class to represent None, True, and False
4581 literals. As a result, these constants are never loaded at runtime from
4582 builtins.
4583
4584 - Issue #16455: On FreeBSD and Solaris, if the locale is C, the
4585 ASCII/surrogateescape codec is now used (instead of the locale encoding) to
4586 decode the command line arguments. This change fixes inconsistencies with
4587 os.fsencode() and os.fsdecode(), because these operating systems announce an
4588 ASCII locale encoding, but actually use the ISO-8859-1 encoding in practice.
4589
4590 - Issue #16562: Optimize dict equality testing. Patch by Serhiy Storchaka.
4591
4592 - Issue #16588: Silence unused-but-set warnings in Python/thread_pthread
4593
4594 - Issue #16592: stringlib_bytes_join doesn't raise MemoryError on allocation
4595 failure.
4596
4597 - Issue #16546: Fix: ast.YieldFrom argument is now mandatory.
4598
4599 - Issue #16514: Fix regression causing a traceback when sys.path[0] is None
4600 (actually, any non-string or non-bytes type).
4601
4602 - Issue #16306: Fix multiple error messages when unknown command line
4603 parameters where passed to the interpreter. Patch by Hieu Nguyen.
4604
4605 - Issue #16215: Fix potential double memory free in str.replace(). Patch
4606 by Serhiy Storchaka.
4607
4608 - Issue #16290: A float return value from the __complex__ special method is no
4609 longer accepted in the complex() constructor.
4610
4611 - Issue #16416: On Mac OS X, operating system data are now always
4612 encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
4613 (which may be ASCII if no locale environment variable is set), to avoid
4614 inconsistencies with os.fsencode() and os.fsdecode() functions which are
4615 already using UTF-8/surrogateescape.
4616
4617 - Issue #16453: Fix equality testing of dead weakref objects.
4618
4619 - Issue #9535: Fix pending signals that have been received but not yet
4620 handled by Python to not persist after os.fork() in the child process.
4621
4622 - Issue #14794: Fix slice.indices to return correct results for huge values,
4623 rather than raising OverflowError.
4624
4625 - Issue #15001: fix segfault on "del sys.modules['__main__']". Patch by Victor
4626 Stinner.
4627
4628 - Issue #8271: the utf-8 decoder now outputs the correct number of U+FFFD
4629 characters when used with the 'replace' error handler on invalid utf-8
4630 sequences. Patch by Serhiy Storchaka, tests by Ezio Melotti.
4631
4632 - Issue #5765: Apply a hard recursion limit in the compiler instead of
4633 blowing the stack and segfaulting. Initial patch by Andrea Griffini.
4634
4635 - Issue #16402: When slicing a range, fix shadowing of exceptions from
4636 __index__.
4637
4638 - Issue #16336: fix input checking in the surrogatepass error handler.
4639 Patch by Serhiy Storchaka.
4640
4641 - Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now
4642 raises an error.
4643
4644 - Issue #7317: Display full tracebacks when an error occurs asynchronously.
4645 Patch by Alon Horev with update by Alexey Kachayev.
4646
4647 - Issue #16309: Make PYTHONPATH="" behavior the same as if PYTHONPATH
4648 not set at all.
4649
4650 - Issue #10189: Improve the error reporting of SyntaxErrors related to global
4651 and nonlocal statements.
4652
4653 - Fix segfaults on setting __qualname__ on builtin types and attempting to
4654 delete it on any type.
4655
4656 - Issue #14625: Rewrite the UTF-32 decoder. It is now 3x to 4x faster. Patch
4657 written by Serhiy Storchaka.
4658
4659 - Issue #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass
4660 received a nonempty dict from the constructor.
4661
4662 - Issue #16271: Fix strange bugs that resulted from __qualname__ appearing in a
4663 class's __dict__ and on type.
4664
4665 - Issue #12805: Make bytes.join and bytearray.join faster when the separator
4666 is empty. Patch by Serhiy Storchaka.
4667
4668 - Issue #6074: Ensure cached bytecode files can always be updated by the
4669 user that created them, even when the source file is read-only.
4670
4671 - Issue #15958: bytes.join and bytearray.join now accept arbitrary buffer
4672 objects.
4673
4674 - Issue #14783: Improve int() docstring and switch docstrings for str(),
4675 range(), and slice() to use multi-line signatures.
4676
4677 - Issue #16160: Subclass support now works for types.SimpleNamespace.
4678
4679 - Issue #16148: Implement PEP 424, adding operator.length_hint and
4680 PyObject_LengthHint.
4681
4682 - Upgrade Unicode data (UCD) to version 6.2.
4683
4684 - Issue #15379: Fix passing of non-BMP characters as integers for the charmap
4685 decoder (already working as unicode strings). Patch by Serhiy Storchaka.
4686
4687 - Issue #15144: Fix possible integer overflow when handling pointers as integer
4688 values, by using `Py_uintptr_t` instead of `size_t`. Patch by Serhiy
4689 Storchaka.
4690
4691 - Issue #15965: Explicitly cast `AT_FDCWD` as (int). Required on Solaris 10
4692 (which defines `AT_FDCWD` as ``0xffd19553``), harmless on other platforms.
4693
4694 - Issue #15839: Convert SystemErrors in `super()` to RuntimeErrors.
4695
4696 - Issue #15448: Buffered IO now frees the buffer when closed, instead
4697 of when deallocating.
4698
4699 - Issue #15846: Fix SystemError which happened when using `ast.parse()` in an
4700 exception handler on code with syntax errors.
4701
4702 - Issue #15897: zipimport.c doesn't check return value of fseek().
4703 Patch by Felipe Cruz.
4704
4705 - Issue #15801: Make sure mappings passed to '%' formatting are actually
4706 subscriptable.
4707
4708 - Issue #15111: __import__ should propagate ImportError when raised as a
4709 side-effect of a module triggered from using fromlist.
4710
4711 - Issue #15022: Add pickle and comparison support to types.SimpleNamespace.
4712
4713 Library
4714 -------
4715
4716 - Issue #4331: Added functools.partialmethod (Initial patch by Alon Horev)
4717
4718 - Issue #13461: Fix a crash in the TextIOWrapper.tell method on 64-bit
4719 platforms. Patch by Yogesh Chaudhari.
4720
4721 - Issue #18681: Fix a NameError in importlib.reload() (noticed by Weizhao Li).
4722
4723 - Issue #14323: Expanded the number of digits in the coefficients for the
4724 RGB -- YIQ conversions so that they match the FCC NTSC versions.
4725
4726 - Issue #17998: Fix an internal error in regular expression engine.
4727
4728 - Issue #17557: Fix os.getgroups() to work with the modified behavior of
4729 getgroups(2) on OS X 10.8. Original patch by Mateusz Lenik.
4730
4731 - Issue #18608: Avoid keeping a strong reference to the locale module
4732 inside the _io module.
4733
4734 - Issue #18619: Fix atexit leaking callbacks registered from sub-interpreters,
4735 and make it GC-aware.
4736
4737 - Issue #15699: The readline module now uses PEP 3121-style module
4738 initialization, so as to reclaim allocated resources (Python callbacks)
4739 at shutdown. Original patch by Robin Schreiber.
4740
4741 - Issue #17616: wave.open now supports the context management protocol.
4742
4743 - Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
4744 'SHA1' instead of 'SHA'.
4745
4746 - Issue #13266: Added inspect.unwrap to easily unravel __wrapped__ chains
4747 (initial patch by Daniel Urban and Aaron Iles)
4748
4749 - Issue #18561: Skip name in ctypes' _build_callargs() if name is NULL.
4750
4751 - Issue #18559: Fix NULL pointer dereference error in _pickle module
4752
4753 - Issue #18556: Check the return type of PyUnicode_AsWideChar() in ctype's
4754 U_set().
4755
4756 - Issue #17818: aifc.getparams now returns a namedtuple.
4757
4758 - Issue #18549: Eliminate dead code in socket_ntohl()
4759
4760 - Issue #18530: Remove additional stat call from posixpath.ismount.
4761 Patch by Alex Gaynor.
4762
4763 - Issue #18514: Fix unreachable Py_DECREF() call in PyCData_FromBaseObj()
4764
4765 - Issue #9177: Calling read() or write() now raises ValueError, not
4766 AttributeError, on a closed SSL socket. Patch by Senko Rasic.
4767
4768 - Issue #18513: Fix behaviour of cmath.rect w.r.t. signed zeros on OS X 10.8 +
4769 gcc.
4770
4771 - Issue #18479: Changed venv Activate.ps1 to make deactivate a function, and
4772 removed Deactivate.ps1.
4773
4774 - Issue #18480: Add missing call to PyType_Ready to the _elementtree extension.
4775
4776 - Issue #17778: Fix test discovery for test_multiprocessing. (Patch by
4777 Zachary Ware.)
4778
4779 - Issue #18393: The private module _gestalt and private functions
4780 platform._mac_ver_gestalt, platform._mac_ver_lookup and
4781 platform._bcd2str have been removed. This does not affect the public
4782 interface of the platform module.
4783
4784 - Issue #17482: functools.update_wrapper (and functools.wraps) now set the
4785 __wrapped__ attribute correctly even if the underlying function has a
4786 __wrapped__ attribute set.
4787
4788 - Issue #18431: The new email header parser now decodes RFC2047 encoded words
4789 in structured headers.
4790
4791 - Issue #18432: The sched module's queue method was incorrectly returning
4792 an iterator instead of a list.
4793
4794 - Issue #18044: The new email header parser was mis-parsing encoded words where
4795 an encoded character immediately followed the '?' that follows the CTE
4796 character, resulting in a decoding failure. They are now decoded correctly.
4797
4798 - Issue #18101: Tcl.split() now process strings nested in a tuple as it
4799 do with byte strings.
4800
4801 - Issue #18116: getpass was always getting an error when testing /dev/tty,
4802 and thus was always falling back to stdin, and would then raise an exception
4803 if stdin could not be used (such as /dev/null). It also leaked an open file.
4804 All of these issues are now fixed.
4805
4806 - Issue #17198: Fix a NameError in the dbm module. Patch by Valentina
4807 Mukhamedzhanova.
4808
4809 - Issue #18013: Fix cgi.FieldStorage to parse the W3C sample form.
4810
4811 - Issue #18020: improve html.escape speed by an order of magnitude.
4812 Patch by Matt Bryant.
4813
4814 - Issue #18347: ElementTree's html serializer now preserves the case of
4815 closing tags.
4816
4817 - Issue #17261: Ensure multiprocessing's proxies use proper address.
4818
4819 - Issue #18343: faulthandler.register() now keeps the previous signal handler
4820 when the function is called twice, so faulthandler.unregister() restores
4821 correctly the original signal handler.
4822
4823 - Issue #17097: Make multiprocessing ignore EINTR.
4824
4825 - Issue #18339: Negative ints keys in unpickler.memo dict no longer cause a
4826 segfault inside the _pickle C extension.
4827
4828 - Issue #18240: The HMAC module is no longer restricted to bytes and accepts
4829 any bytes-like object, e.g. memoryview. Original patch by Jonas Borgström.
4830
4831 - Issue #18224: Removed pydoc script from created venv, as it causes problems
4832 on Windows and adds no value over and above python -m pydoc ...
4833
4834 - Issue #18155: The csv module now correctly handles csv files that use
4835 a delimter character that has a special meaning in regexes, instead of
4836 throwing an exception.
4837
4838 - Issue #14360: encode_quopri can now be successfully used as an encoder
4839 when constructing a MIMEApplication object.
4840
4841 - Issue #11390: Add -o and -f command line options to the doctest CLI to
4842 specify doctest options (and convert it to using argparse).
4843
4844 - Issue #18135: ssl.SSLSocket.write() now raises an OverflowError if the input
4845 string in longer than 2 gigabytes, and ssl.SSLContext.load_cert_chain()
4846 raises a ValueError if the password is longer than 2 gigabytes. The ssl
4847 module does not support partial write.
4848
4849 - Issue #11016: Add C implementation of the stat module as _stat.
4850
4851 - Issue #18248: Fix libffi build on AIX.
4852
4853 - Issue #18259: Declare sethostname in socketmodule.c for AIX
4854
4855 - Issue #18147: Add diagnostic functions to ssl.SSLContext(). get_ca_list()
4856 lists all loaded CA certificates and cert_store_stats() returns amount of
4857 loaded X.509 certs, X.509 CA certs and CRLs.
4858
4859 - Issue #18167: cgi.FieldStorage no longer fails to handle multipart/form-data
4860 when ``\r\n`` appears at end of 65535 bytes without other newlines.
4861
4862 - Issue #18076: Introduce importlib.util.decode_source().
4863
4864 - Issue #18357: add tests for dictview set difference.
4865 Patch by Fraser Tweedale.
4866
4867 - importlib.abc.SourceLoader.get_source() no longer changes SyntaxError or
4868 UnicodeDecodeError into ImportError.
4869
4870 - Issue #18058, 18057: Make the namespace package loader meet the
4871 importlib.abc.InspectLoader ABC, allowing for namespace packages to work with
4872 runpy.
4873
4874 - Issue #17177: The imp module is pending deprecation.
4875
4876 - subprocess: Prevent a possible double close of parent pipe fds when the
4877 subprocess exec runs into an error. Prevent a regular multi-close of the
4878 /dev/null fd when any of stdin, stdout and stderr was set to DEVNULL.
4879
4880 - Issue #18194: Introduce importlib.util.cache_from_source() and
4881 source_from_cache() while documenting the equivalent functions in imp as
4882 deprecated.
4883
4884 - Issue #17907: Document imp.new_module() as deprecated in favour of
4885 types.ModuleType.
4886
4887 - Issue #18192: Introduce importlib.util.MAGIC_NUMBER and document as deprecated
4888 imp.get_magic().
4889
4890 - Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
4891 Patch by Mark Levitt
4892
4893 - Issue #18193: Add importlib.reload().
4894
4895 - Issue #18157: Stop using imp.load_module() in pydoc.
4896
4897 - Issue #16102: Make uuid._netbios_getnode() work again on Python 3.
4898
4899 - Issue #17134: Add ssl.enum_cert_store() as interface to Windows' cert store.
4900
4901 - Issue #18143: Implement ssl.get_default_verify_paths() in order to debug
4902 the default locations for cafile and capath.
4903
4904 - Issue #17314: Move multiprocessing.forking over to importlib.
4905
4906 - Issue #11959: SMTPServer and SMTPChannel now take an optional map, use of
4907 which avoids affecting global state.
4908
4909 - Issue #18109: os.uname() now decodes fields from the locale encoding, and
4910 socket.gethostname() now decodes the hostname from the locale encoding,
4911 instead of using the UTF-8 encoding in strict mode.
4912
4913 - Issue #18089: Implement importlib.abc.InspectLoader.load_module.
4914
4915 - Issue #18088: Introduce importlib.abc.Loader.init_module_attrs for setting
4916 module attributes. Leads to the pending deprecation of
4917 importlib.util.module_for_loader.
4918
4919 - Issue #17403: urllib.parse.robotparser normalizes the urls before adding to
4920 ruleline. This helps in handling certain types invalid urls in a conservative
4921 manner. Patch contributed by Mher Movsisyan.
4922
4923 - Issue #18070: Have importlib.util.module_for_loader() set attributes
4924 unconditionally in order to properly support reloading.
4925
4926 - Added importlib.util.module_to_load to return a context manager to provide the
4927 proper module object to load.
4928
4929 - Issue #18025: Fixed a segfault in io.BufferedIOBase.readinto() when raw
4930 stream's read() returns more bytes than requested.
4931
4932 - Issue #18011: As was originally intended, base64.b32decode() now raises a
4933 binascii.Error if there are non-b32-alphabet characters present in the input
4934 string, instead of a TypeError.
4935
4936 - Issue #18072: Implement importlib.abc.InspectLoader.get_code() and
4937 importlib.abc.ExecutionLoader.get_code().
4938
4939 - Issue #8240: Set the SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag on SSL
4940 sockets.
4941
4942 - Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X
4943 with port None or "0" and flags AI_NUMERICSERV.
4944
4945 - Issue #16986: ElementTree now correctly works with string input when the
4946 internal XML encoding is not UTF-8 or US-ASCII.
4947
4948 - Issue #17996: socket module now exposes AF_LINK constant on BSD and OSX.
4949
4950 - Issue #17900: Allowed pickling of recursive OrderedDicts. Decreased pickled
4951 size and pickling time.
4952
4953 - Issue #17914: Add os.cpu_count(). Patch by Yogesh Chaudhari, based on an
4954 initial patch by Trent Nelson.
4955
4956 - Issue #17812: Fixed quadratic complexity of base64.b32encode().
4957 Optimize base64.b32encode() and base64.b32decode() (speed up to 3x).
4958
4959 - Issue #17980: Fix possible abuse of ssl.match_hostname() for denial of
4960 service using certificates with many wildcards (CVE-2013-2099).
4961
4962 - Issue #15758: Fix FileIO.readall() so it no longer has O(n**2) complexity.
4963
4964 - Issue #14596: The struct.Struct() objects now use a more compact
4965 implementation.
4966
4967 - Issue #17981: logging's SysLogHandler now closes the socket when it catches
4968 socket OSErrors.
4969
4970 - Issue #17964: Fix os.sysconf(): the return type of the C sysconf() function
4971 is long, not int.
4972
4973 - Fix typos in the multiprocessing module.
4974
4975 - Issue #17754: Make ctypes.util.find_library() independent of the locale.
4976
4977 - Issue #17968: Fix memory leak in os.listxattr().
4978
4979 - Issue #17606: Fixed support of encoded byte strings in the XMLGenerator
4980 characters() and ignorableWhitespace() methods. Original patch by Sebastian
4981 Ortiz Vasquez.
4982
4983 - Issue #17732: Ignore distutils.cfg options pertaining to install paths if a
4984 virtual environment is active.
4985
4986 - Issue #17915: Fix interoperability of xml.sax with file objects returned by
4987 codecs.open().
4988
4989 - Issue #16601: Restarting iteration over tarfile really restarts rather
4990 than continuing from where it left off. Patch by Michael Birtwell.
4991
4992 - Issue #17289: The readline module now plays nicer with external modules
4993 or applications changing the rl_completer_word_break_characters global
4994 variable. Initial patch by Bradley Froehle.
4995
4996 - Issue #12181: select module: Fix struct kevent definition on OpenBSD 64-bit
4997 platforms. Patch by Federico Schwindt.
4998
4999 - Issue #11816: multiple improvements to the dis module: get_instructions
5000 generator, ability to redirect output to a file, Bytecode and Instruction
5001 abstractions. Patch by Nick Coghlan, Ryan Kelly and Thomas Kluyver.
5002
5003 - Issue #13831: Embed stringification of remote traceback in local
5004 traceback raised when pool task raises an exception.
5005
5006 - Issue #15528: Add weakref.finalize to support finalization using
5007 weakref callbacks.
5008
5009 - Issue #14173: Avoid crashing when reading a signal handler during
5010 interpreter shutdown.
5011
5012 - Issue #15902: Fix imp.load_module() accepting None as a file when loading an
5013 extension module.
5014
5015 - Issue #13721: SSLSocket.getpeercert() and SSLSocket.do_handshake() now
5016 raise an OSError with ENOTCONN, instead of an AttributeError, when the
5017 SSLSocket is not connected.
5018
5019 - Issue #14679: add an __all__ (that contains only HTMLParser) to html.parser.
5020
5021 - Issue #17802: Fix an UnboundLocalError in html.parser. Initial tests by
5022 Thomas Barlow.
5023
5024 - Issue #17358: Modules loaded by imp.load_source() and load_compiled() (and by
5025 extension load_module()) now have a better chance of working when reloaded.
5026
5027 - Issue #17804: New function ``struct.iter_unpack`` allows for streaming
5028 struct unpacking.
5029
5030 - Issue #17830: When keyword.py is used to update a keyword file, it now
5031 preserves the line endings of the original file.
5032
5033 - Issue #17272: Making the urllib.request's Request.full_url a descriptor.
5034 Fixes bugs with assignment to full_url. Patch by Demian Brecht.
5035
5036 - Issue #17353: Plistlib emitted empty data tags with deeply nested datastructures
5037
5038 - Issue #11714: Use 'with' statements to assure a Semaphore releases a
5039 condition variable. Original patch by Thomas Rachel.
5040
5041 - Issue #16624: `subprocess.check_output` now accepts an `input` argument,
5042 allowing the subprocess's stdin to be provided as a (byte) string.
5043 Patch by Zack Weinberg.
5044
5045 - Issue #17795: Reverted backwards-incompatible change in SysLogHandler with
5046 Unix domain sockets.
5047
5048 - Issue #16694: Add a pure Python implementation of the operator module.
5049 Patch by Zachary Ware.
5050
5051 - Issue #11182: remove the unused and undocumented pydoc.Scanner class.
5052 Patch by Martin Morrison.
5053
5054 - Issue #17741: Add ElementTree.XMLPullParser, an event-driven parser for
5055 non-blocking applications.
5056
5057 - Issue #17555: Fix ForkAwareThreadLock so that size of after fork
5058 registry does not grow exponentially with generation of process.
5059
5060 - Issue #17707: fix regression in multiprocessing.Queue's get() method where
5061 it did not block for short timeouts.
5062
5063 - Issue #17720: Fix the Python implementation of pickle.Unpickler to correctly
5064 process the APPENDS opcode when it is used on non-list objects.
5065
5066 - Issue #17012: shutil.which() no longer falls back to the PATH environment
5067 variable if an empty path argument is specified. Patch by Serhiy Storchaka.
5068
5069 - Issue #17710: Fix pickle raising a SystemError on bogus input.
5070
5071 - Issue #17341: Include the invalid name in the error messages from re about
5072 invalid group names.
5073
5074 - Issue #17702: os.environ now raises KeyError with the original environment
5075 variable name (str on UNIX), instead of using the encoded name (bytes on
5076 UNIX).
5077
5078 - Issue #16163: Make the importlib based version of pkgutil.iter_importers
5079 work for submodules. Initial patch by Berker Peksag.
5080
5081 - Issue #16804: Fix a bug in the 'site' module that caused running
5082 'python -S -m site' to incorrectly throw an exception.
5083
5084 - Issue #15480: Remove the deprecated and unused TYPE_INT64 code from marshal.
5085 Initial patch by Daniel Riti.
5086
5087 - Issue #2118: SMTPException is now a subclass of OSError.
5088
5089 - Issue #17016: Get rid of possible pointer wraparounds and integer overflows
5090 in the re module. Patch by Nickolai Zeldovich.
5091
5092 - Issue #16658: add missing return to HTTPConnection.send().
5093 Patch by Jeff Knupp.
5094
5095 - Issue #9556: the logging package now allows specifying a time-of-day for a
5096 TimedRotatingFileHandler to rotate.
5097
5098 - Issue #14971: unittest test discovery no longer gets confused when a function
5099 has a different __name__ than its name in the TestCase class dictionary.
5100
5101 - Issue #17487: The wave getparams method now returns a namedtuple rather than
5102 a plain tuple.
5103
5104 - Issue #17675: socket repr() provides local and remote addresses (if any).
5105 Patch by Giampaolo Rodola'
5106
5107 - Issue #17093: Make the ABCs in importlib.abc provide default values or raise
5108 reasonable exceptions for their methods to make them more amenable to super()
5109 calls.
5110
5111 - Issue #17566: Make importlib.abc.Loader.module_repr() optional instead of an
5112 abstractmethod; now it raises NotImplementedError so as to be ignored by default.
5113
5114 - Issue #17678: Remove the use of deprecated method in http/cookiejar.py by
5115 changing the call to get_origin_req_host() to origin_req_host.
5116
5117 - Issue #17666: Fix reading gzip files with an extra field.
5118
5119 - Issue #16475: Support object instancing, recursion and interned strings
5120 in marshal
5121
5122 - Issue #17502: Process DEFAULT values in mock side_effect that returns iterator.
5123
5124 - Issue #16795: On the ast.arguments object, unify vararg with varargannotation
5125 and kwarg and kwargannotation. Change the column offset of ast.Attribute to be
5126 at the attribute name.
5127
5128 - Issue #17434: Properly raise a SyntaxError when a string occurs between future
5129 imports.
5130
5131 - Issue #17117: Import and @importlib.util.set_loader now set __loader__ when
5132 it has a value of None or the attribute doesn't exist.
5133
5134 - Issue #17032: The "global" in the "NameError: global name 'x' is not defined"
5135 error message has been removed. Patch by Ram Rachum.
5136
5137 - Issue #18080: When building a C extension module on OS X, if the compiler
5138 is overridden with the CC environment variable, use the new compiler as
5139 the default for linking if LDSHARED is not also overridden. This restores
5140 Distutils behavior introduced in 3.2.3 and inadvertently dropped in 3.3.0.
5141
5142 - Issue #18113: Fixed a refcount leak in the curses.panel module's
5143 set_userptr() method. Reported by Atsuo Ishimoto.
5144
5145 - Implement PEP 443 "Single-dispatch generic functions".
5146
5147 - Implement PEP 435 "Adding an Enum type to the Python standard library".
5148
5149 - Issue #15596: Faster pickling of unicode strings.
5150
5151 - Issue #17572: Avoid chained exceptions when passing bad directives to
5152 time.strptime(). Initial patch by Claudiu Popa.
5153
5154 - Issue #17435: threading.Timer's __init__ method no longer uses mutable
5155 default values for the args and kwargs parameters.
5156
5157 - Issue #17526: fix an IndexError raised while passing code without filename to
5158 inspect.findsource(). Initial patch by Tyler Doyle.
5159
5160 - Issue #17540: Added style parameter to logging formatter configuration by dict.
5161
5162 - Issue #16692: The ssl module now supports TLS 1.1 and TLS 1.2. Initial
5163 patch by Michele Orrù.
5164
5165 - Issue #17025: multiprocessing: Reduce Queue and SimpleQueue contention.
5166
5167 - Issue #17536: Add to webbrowser's browser list: www-browser, x-www-browser,
5168 iceweasel, iceape.
5169
5170 - Issue #17150: pprint now uses line continuations to wrap long string
5171 literals.
5172
5173 - Issue #17488: Change the subprocess.Popen bufsize parameter default value
5174 from unbuffered (0) to buffering (-1) to match the behavior existing code
5175 expects and match the behavior of the subprocess module in Python 2 to avoid
5176 introducing hard to track down bugs.
5177
5178 - Issue #17521: Corrected non-enabling of logger following two calls to
5179 fileConfig().
5180
5181 - Issue #17508: Corrected logging MemoryHandler configuration in dictConfig()
5182 where the target handler wasn't configured first.
5183
5184 - Issue #17209: curses.window.get_wch() now correctly handles KeyboardInterrupt
5185 (CTRL+c).
5186
5187 - Issue #5713: smtplib now handles 421 (closing connection) error codes when
5188 sending mail by closing the socket and reporting the 421 error code via the
5189 exception appropriate to the command that received the error response.
5190
5191 - Issue #16997: unittest.TestCase now provides a subTest() context manager
5192 to procedurally generate, in an easy way, small test instances.
5193
5194 - Issue #17485: Also delete the Request Content-Length header if the data
5195 attribute is deleted. (Follow on to issue Issue #16464).
5196
5197 - Issue #15927: CVS now correctly parses escaped newlines and carriage
5198 when parsing with quoting turned off.
5199
5200 - Issue #17467: add readline and readlines support to mock_open in
5201 unittest.mock.
5202
5203 - Issue #13248: removed deprecated and undocumented difflib.isbjunk,
5204 isbpopular.
5205
5206 - Issue #17192: Update the ctypes module's libffi to v3.0.13. This
5207 specifically addresses a stack misalignment issue on x86 and issues on
5208 some more recent platforms.
5209
5210 - Issue #8862: Fixed curses cleanup when getkey is interrupted by a signal.
5211
5212 - Issue #17443: imaplib.IMAP4_stream was using the default unbuffered IO
5213 in subprocess, but the imap code assumes buffered IO. In Python2 this
5214 worked by accident. IMAP4_stream now explicitly uses buffered IO.
5215
5216 - Issue #17476: Fixed regression relative to Python2 in undocumented pydoc
5217 'allmethods'; it was missing unbound methods on the class.
5218
5219 - Issue #17474: Remove the deprecated methods of Request class.
5220
5221 - Issue #16709: unittest discover order is no-longer filesystem specific. Patch
5222 by Jeff Ramnani.
5223
5224 - Use the HTTPS PyPI url for upload, overriding any plain HTTP URL in pypirc.
5225
5226 - Issue #5024: sndhdr.whichhdr now returns the frame count for WAV files
5227 rather than -1.
5228
5229 - Issue #17460: Remove the strict argument of HTTPConnection and removing the
5230 DeprecationWarning being issued from 3.2 onwards.
5231
5232 - Issue #16880: Do not assume _imp.load_dynamic() is defined in the imp module.
5233
5234 - Issue #16389: Fixed a performance regression relative to Python 3.1 in the
5235 caching of compiled regular expressions.
5236
5237 - Added missing FeedParser and BytesFeedParser to email.parser.__all__.
5238
5239 - Issue #17431: Fix missing import of BytesFeedParser in email.parser.
5240
5241 - Issue #12921: http.server's send_error takes an explain argument to send more
5242 information in response. Patch contributed by Karl.
5243
5244 - Issue #17414: Add timeit, repeat, and default_timer to timeit.__all__.
5245
5246 - Issue #1285086: Get rid of the refcounting hack and speed up
5247 urllib.parse.unquote() and urllib.parse.unquote_to_bytes().
5248
5249 - Issue #17099: Have importlib.find_loader() raise ValueError when __loader__
5250 is not set, harmonizing with what happens when the attribute is set to None.
5251
5252 - Expose the O_PATH constant in the os module if it is available.
5253
5254 - Issue #17368: Fix an off-by-one error in the Python JSON decoder that caused
5255 a failure while decoding empty object literals when object_pairs_hook was
5256 specified.
5257
5258 - Issue #17385: Fix quadratic behavior in threading.Condition. The FIFO
5259 queue now uses a deque instead of a list.
5260
5261 - Issue #15806: Add contextlib.ignore(). This creates a context manager to
5262 ignore specified exceptions, replacing the "except SomeException: pass" idiom.
5263
5264 - Issue #14645: The email generator classes now produce output using the
5265 specified linesep throughout. Previously if the prolog, epilog, or
5266 body were stored with a different linesep, that linesep was used. This
5267 fix corrects an RFC non-compliance issue with smtplib.send_message.
5268
5269 - Issue #17278: Fix a crash in heapq.heappush() and heapq.heappop() when
5270 the list is being resized concurrently.
5271
5272 - Issue #16962: Use getdents64 instead of the obsolete getdents syscall
5273 in the subprocess module on Linux.
5274
5275 - Issue #16935: unittest now counts the module as skipped if it raises SkipTest,
5276 instead of counting it as an error. Patch by Zachary Ware.
5277
5278 - Issue #17018: Make Process.join() retry if os.waitpid() fails with EINTR.
5279
5280 - Issue #17223: array module: Fix a crasher when converting an array containing
5281 invalid characters (outside range [U+0000; U+10ffff]) to Unicode:
5282 repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob.
5283
5284 - Issue #17197: profile/cProfile modules refactored so that code of run() and
5285 runctx() utility functions is not duplicated in both modules.
5286
5287 - Issue #14720: sqlite3: Convert datetime microseconds correctly.
5288 Patch by Lowe Thiderman.
5289
5290 - Issue #15132: Allow a list for the defaultTest argument of
5291 unittest.TestProgram. Patch by Jyrki Pulliainen.
5292
5293 - Issue #17225: JSON decoder now counts columns in the first line starting
5294 with 1, as in other lines.
5295
5296 - Issue #6623: Added explicit DeprecationWarning for ftplib.netrc, which has
5297 been deprecated and undocumented for a long time.
5298
5299 - Issue #13700: Fix byte/string handling in imaplib authentication when an
5300 authobject is specified.
5301
5302 - Issue #13153: Tkinter functions now raise TclError instead of ValueError when
5303 a string argument contains non-BMP character.
5304
5305 - Issue #9669: Protect re against infinite loops on zero-width matching in
5306 non-greedy repeat. Patch by Matthew Barnett.
5307
5308 - Issue #13169: The maximal repetition number in a regular expression has been
5309 increased from 65534 to 2147483647 (on 32-bit platform) or 4294967294 (on
5310 64-bit).
5311
5312 - Issue #17143: Fix a missing import in the trace module. Initial patch by
5313 Berker Peksag.
5314
5315 - Issue #15220: email.feedparser's line splitting algorithm is now simpler and
5316 faster.
5317
5318 - Issue #16743: Fix mmap overflow check on 32 bit Windows.
5319
5320 - Issue #16996: webbrowser module now uses shutil.which() to find a
5321 web-browser on the executable search path.
5322
5323 - Issue #16800: tempfile.gettempdir() no longer left temporary files when
5324 the disk is full. Original patch by Amir Szekely.
5325
5326 - Issue #17192: Import libffi-3.0.12.
5327
5328 - Issue #16564: Fixed regression relative to Python2 in the operation of
5329 email.encoders.encode_7or8bit when used with binary data.
5330
5331 - Issue #17052: unittest discovery should use self.testLoader.
5332
5333 - Issue #4591: Uid and gid values larger than 2**31 are supported now.
5334
5335 - Issue #17141: random.vonmisesvariate() no longer hangs for large kappas.
5336
5337 - Issue #17149: Fix random.vonmisesvariate to always return results in
5338 [0, 2*math.pi].
5339
5340 - Issue #1470548: XMLGenerator now works with binary output streams.
5341
5342 - Issue #6975: os.path.realpath() now correctly resolves multiple nested
5343 symlinks on POSIX platforms.
5344
5345 - Issue #13773: sqlite3.connect() gets a new `uri` parameter to pass the
5346 filename as a URI, allowing to pass custom options.
5347
5348 - Issue #16564: Fixed regression relative to Python2 in the operation of
5349 email.encoders.encode_noop when used with binary data.
5350
5351 - Issue #10355: The mode, name, encoding and newlines properties now work on
5352 SpooledTemporaryFile objects even when they have not yet rolled over.
5353 Obsolete method xreadline (which has never worked in Python 3) has been
5354 removed.
5355
5356 - Issue #16686: Fixed a lot of bugs in audioop module. Fixed crashes in
5357 avgpp(), maxpp() and ratecv(). Fixed an integer overflow in add(), bias(),
5358 and ratecv(). reverse(), lin2lin() and ratecv() no more lose precision for
5359 32-bit samples. max() and rms() no more returns a negative result and
5360 various other functions now work correctly with 32-bit sample -0x80000000.
5361
5362 - Issue #17073: Fix some integer overflows in sqlite3 module.
5363
5364 - Issue #16723: httplib.HTTPResponse no longer marked closed when the connection
5365 is automatically closed.
5366
5367 - Issue #15359: Add CAN_BCM protocol support to the socket module. Patch by
5368 Brian Thorne.
5369
5370 - Issue #16948: Fix quoted printable body encoding for non-latin1 character
5371 sets in the email package.
5372
5373 - Issue #16811: Fix folding of headers with no value in the provisional email
5374 policies.
5375
5376 - Issue #17132: Update symbol for "yield from" grammar changes.
5377
5378 - Issue #17076: Make copying of xattrs more tolerant of missing FS support.
5379 Patch by Thomas Wouters.
5380
5381 - Issue #17089: Expat parser now correctly works with string input when the
5382 internal XML encoding is not UTF-8 or US-ASCII. It also now accepts bytes
5383 and strings larger than 2 GiB.
5384
5385 - Issue #6083: Fix multiple segmentation faults occurred when PyArg_ParseTuple
5386 parses nested mutating sequence.
5387
5388 - Issue #5289: Fix ctypes.util.find_library on Solaris.
5389
5390 - Issue #17106: Fix a segmentation fault in io.TextIOWrapper when an underlying
5391 stream or a decoder produces data of an unexpected type (i.e. when
5392 io.TextIOWrapper initialized with text stream or use bytes-to-bytes codec).
5393
5394 - Issue #17015: When it has a spec, a Mock object now inspects its signature
5395 when matching calls, so that arguments can be matched positionally or
5396 by name.
5397
5398 - Issue #15633: httplib.HTTPResponse is now mark closed when the server
5399 sends less than the advertised Content-Length.
5400
5401 - Issue #12268: The io module file object write methods no longer abort early
5402 when one of its write system calls is interrupted (EINTR).
5403
5404 - Issue #6972: The zipfile module no longer overwrites files outside of
5405 its destination path when extracting malicious zip files.
5406
5407 - Issue #4844: ZipFile now raises BadZipFile when opens a ZIP file with an
5408 incomplete "End of Central Directory" record. Original patch by Guilherme
5409 Polo and Alan McIntyre.
5410
5411 - Issue #17071: Signature.bind() now works when one of the keyword arguments
5412 is named ``self``.
5413
5414 - Issue #12004: Fix an internal error in PyZipFile when writing an invalid
5415 Python file. Patch by Ben Morgan.
5416
5417 - Have py_compile use importlib as much as possible to avoid code duplication.
5418 Code now raises FileExistsError if the file path to be used for the
5419 byte-compiled file is a symlink or non-regular file as a warning that import
5420 will not keep the file path type if it writes to that path.
5421
5422 - Issue #16972: Have site.addpackage() consider already known paths even when
5423 none are explicitly passed in. Bug report and fix by Kirill.
5424
5425 - Issue #1602133: on Mac OS X a shared library build (``--enable-shared``)
5426 now fills the ``os.environ`` variable correctly.
5427
5428 - Issue #15505: `unittest.installHandler` no longer assumes SIGINT handler is
5429 set to a callable object.
5430
5431 - Issue #13454: Fix a crash when deleting an iterator created by itertools.tee()
5432 if all other iterators were very advanced before.
5433
5434 - Issue #12411: Fix to cgi.parse_multipart to correctly use bytes boundaries
5435 and bytes data. Patch by Jonas Wagner.
5436
5437 - Issue #16957: shutil.which() no longer searches a bare file name in the
5438 current directory on Unix and no longer searches a relative file path with
5439 a directory part in PATH directories. Patch by Thomas Kluyver.
5440
5441 - Issue #1159051: GzipFile now raises EOFError when reading a corrupted file
5442 with truncated header or footer.
5443
5444 - Issue #16993: shutil.which() now preserves the case of the path and extension
5445 on Windows.
5446
5447 - Issue #16992: On Windows in signal.set_wakeup_fd, validate the file
5448 descriptor argument.
5449
5450 - Issue #16422: For compatibility with the Python version, the C version of
5451 decimal now uses strings instead of integers for rounding mode constants.
5452
5453 - Issue #15861: tkinter now correctly works with lists and tuples containing
5454 strings with whitespaces, backslashes or unbalanced braces.
5455
5456 - Issue #9720: zipfile now writes correct local headers for files larger than
5457 4 GiB.
5458
5459 - Issue #16955: Fix the poll() method for multiprocessing's socket
5460 connections on Windows.
5461
5462 - SSLContext.load_dh_params() now properly closes the input file.
5463
5464 - Issue #15031: Refactor some .pyc management code to cut down on code
5465 duplication. Thanks to Ronan Lamy for the report and taking an initial stab
5466 at the problem.
5467
5468 - Issue #16398: Optimize deque.rotate() so that it only moves pointers
5469 and doesn't touch the underlying data with increfs and decrefs.
5470
5471 - Issue #16900: Issue a ResourceWarning when an ssl socket is left unclosed.
5472
5473 - Issue #13899: ``\A``, ``\Z``, and ``\B`` now correctly match the A, Z,
5474 and B literals when used inside character classes (e.g. ``'[\A]'``).
5475 Patch by Matthew Barnett.
5476
5477 - Issue #15545: Fix regression in sqlite3's iterdump method where it was
5478 failing if the connection used a row factory (such as sqlite3.Row) that
5479 produced unsortable objects. (Regression was introduced by fix for 9750).
5480
5481 - fcntl: add F_DUPFD_CLOEXEC constant, available on Linux 2.6.24+.
5482
5483 - Issue #15972: Fix error messages when os functions expecting a file name or
5484 file descriptor receive the incorrect type.
5485
5486 - Issue #8109: The ssl module now has support for server-side SNI, thanks
5487 to a :meth:`SSLContext.set_servername_callback` method. Patch by Daniel
5488 Black.
5489
5490 - Issue #16860: In tempfile, use O_CLOEXEC when available to set the
5491 close-on-exec flag atomically.
5492
5493 - Issue #16674: random.getrandbits() is now 20-40% faster for small integers.
5494
5495 - Issue #16009: JSON error messages now provide more information.
5496
5497 - Issue #16828: Fix error incorrectly raised by bz2.compress(b'') and
5498 bz2.BZ2Compressor.compress(b''). Initial patch by Martin Packman.
5499
5500 - Issue #16833: In http.client.HTTPConnection, do not concatenate the request
5501 headers and body when the payload exceeds 16 KB, since it can consume more
5502 memory for no benefit. Patch by Benno Leslie.
5503
5504 - Issue #16541: tk_setPalette() now works with keyword arguments.
5505
5506 - Issue #16820: In configparser, `parser.popitem()` no longer raises ValueError.
5507 This makes `parser.clean()` work correctly.
5508
5509 - Issue #16820: In configparser, ``parser['section'] = {}`` now preserves
5510 section order within the parser. This makes `parser.update()` preserve section
5511 order as well.
5512
5513 - Issue #16820: In configparser, ``parser['DEFAULT'] = {}`` now correctly
5514 clears previous values stored in the default section. Same goes for
5515 ``parser.update({'DEFAULT': {}})``.
5516
5517 - Issue #9586: Redefine SEM_FAILED on MacOSX to keep compiler happy.
5518
5519 - Issue #16787: Increase asyncore and asynchat default output buffers size, to
5520 decrease CPU usage and increase throughput.
5521
5522 - Issue #10527: make multiprocessing use poll() instead of select() if available.
5523
5524 - Issue #16688: Now regexes contained backreferences correctly work with
5525 non-ASCII strings. Patch by Matthew Barnett.
5526
5527 - Issue #16486: Make aifc files act as context managers.
5528
5529 - Issue #16485: Now file descriptors are closed if file header patching failed
5530 on closing an aifc file.
5531
5532 - Issue #16640: Run less code under a lock in sched module.
5533
5534 - Issue #16165: sched.scheduler.run() no longer blocks a scheduler for other
5535 threads.
5536
5537 - Issue #16641: Default values of sched.scheduler.enter() are no longer
5538 modifiable.
5539
5540 - Issue #16618: Make glob.glob match consistently across strings and bytes
5541 regarding leading dots. Patch by Serhiy Storchaka.
5542
5543 - Issue #16788: Add samestat to Lib/ntpath.py
5544
5545 - Issue #16713: Parsing of 'tel' urls using urlparse separates params from
5546 path.
5547
5548 - Issue #16443: Add docstrings to regular expression match objects.
5549 Patch by Anton Kasyanov.
5550
5551 - Issue #15701: Fix HTTPError info method call to return the headers information.
5552
5553 - Issue #16752: Add a missing import to modulefinder. Patch by Berker Peksag.
5554
5555 - Issue #16646: ftplib.FTP.makeport() might lose socket error details.
5556 (patch by Serhiy Storchaka)
5557
5558 - Issue #16626: Fix infinite recursion in glob.glob() on Windows when the
5559 pattern contains a wildcard in the drive or UNC path. Patch by Serhiy
5560 Storchaka.
5561
5562 - Issue #15783: Except for the number methods, the C version of decimal now
5563 supports all None default values present in decimal.py. These values were
5564 largely undocumented.
5565
5566 - Issue #11175: argparse.FileType now accepts encoding and errors
5567 arguments. Patch by Lucas Maystre.
5568
5569 - Issue #16488: epoll() objects now support the `with` statement. Patch
5570 by Serhiy Storchaka.
5571
5572 - Issue #16298: In HTTPResponse.read(), close the socket when there is no
5573 Content-Length and the incoming stream is finished. Patch by Eran
5574 Rundstein.
5575
5576 - Issue #16049: Add abc.ABC class to enable the use of inheritance to create
5577 ABCs, rather than the more cumbersome metaclass=ABCMeta. Patch by Bruno
5578 Dupuis.
5579
5580 - Expose the TCP_FASTOPEN and MSG_FASTOPEN flags in socket when they're
5581 available.
5582
5583 - Issue #15701: Add a .headers attribute to urllib.error.HTTPError. Patch
5584 contributed by Berker Peksag.
5585
5586 - Issue #15872: Fix 3.3 regression introduced by the new fd-based shutil.rmtree
5587 that caused it to not ignore certain errors when ignore_errors was set.
5588 Patch by Alessandro Moura and Serhiy Storchaka.
5589
5590 - Issue #16248: Disable code execution from the user's home directory by
5591 tkinter when the -E flag is passed to Python. Patch by Zachary Ware.
5592
5593 - Issue #13390: New function :func:`sys.getallocatedblocks()` returns the
5594 number of memory blocks currently allocated.
5595
5596 - Issue #16628: Fix a memory leak in ctypes.resize().
5597
5598 - Issue #13614: Fix setup.py register failure with invalid rst in description.
5599 Patch by Julien Courteau and Pierre Paul Lefebvre.
5600
5601 - Issue #13512: Create ~/.pypirc securely (CVE-2011-4944). Initial patch by
5602 Philip Jenvey, tested by Mageia and Debian.
5603
5604 - Issue #7719: Make distutils ignore ``.nfs*`` files instead of choking later
5605 on. Initial patch by SilentGhost and Jeff Ramnani.
5606
5607 - Issue #13120: Allow to call pdb.set_trace() from thread.
5608 Patch by Ilya Sandler.
5609
5610 - Issue #16585: Make CJK encoders support error handlers that return bytes per
5611 PEP 383.
5612
5613 - Issue #10182: The re module doesn't truncate indices to 32 bits anymore.
5614 Patch by Serhiy Storchaka.
5615
5616 - Issue #16333: use (",", ": ") as default separator in json when indent is
5617 specified, to avoid trailing whitespace. Patch by Serhiy Storchaka.
5618
5619 - Issue #16573: In 2to3, treat enumerate() like a consuming call, so superfluous
5620 list() calls aren't added to filter(), map(), and zip() which are directly
5621 passed enumerate().
5622
5623 - Issue #16464: Reset the Content-Length header when a urllib Request is reused
5624 with new data.
5625
5626 - Issue #12848: The pure Python pickle implementation now treats object
5627 lengths as unsigned 32-bit integers, like the C implementation does.
5628 Patch by Serhiy Storchaka.
5629
5630 - Issue #16423: urllib.request now has support for ``data:`` URLs. Patch by
5631 Mathias Panzenböck.
5632
5633 - Issue #4473: Add a POP3.stls() to switch a clear-text POP3 session into
5634 an encrypted POP3 session, on supported servers. Patch by Lorenzo Catucci.
5635
5636 - Issue #4473: Add a POP3.capa() method to query the capabilities advertised
5637 by the POP3 server. Patch by Lorenzo Catucci.
5638
5639 - Issue #4473: Ensure the socket is shutdown cleanly in POP3.close().
5640 Patch by Lorenzo Catucci.
5641
5642 - Issue #16522: added FAIL_FAST flag to doctest.
5643
5644 - Issue #15627: Add the importlib.abc.InspectLoader.source_to_code() method.
5645
5646 - Issue #16408: Fix file descriptors not being closed in error conditions
5647 in the zipfile module. Patch by Serhiy Storchaka.
5648
5649 - Issue #14631: Add a new :class:`weakref.WeakMethod` to simulate weak
5650 references to bound methods.
5651
5652 - Issue #16469: Fix exceptions from float -> Fraction and Decimal -> Fraction
5653 conversions for special values to be consistent with those for float -> int
5654 and Decimal -> int. Patch by Alexey Kachayev.
5655
5656 - Issue #16481: multiprocessing no longer leaks process handles on Windows.
5657
5658 - Issue #12428: Add a pure Python implementation of functools.partial().
5659 Patch by Brian Thorne.
5660
5661 - Issue #16140: The subprocess module no longer double closes its child
5662 subprocess.PIPE parent file descriptors on child error prior to exec().
5663
5664 - Remove a bare print to stdout from the subprocess module that could have
5665 happened if the child process wrote garbage to its pre-exec error pipe.
5666
5667 - The subprocess module now raises its own SubprocessError instead of a
5668 RuntimeError in various error situations which should not normally happen.
5669
5670 - Issue #16327: The subprocess module no longer leaks file descriptors
5671 used for stdin/stdout/stderr pipes to the child when fork() fails.
5672
5673 - Issue #14396: Handle the odd rare case of waitpid returning 0 when not
5674 expected in subprocess.Popen.wait().
5675
5676 - Issue #16411: Fix a bug where zlib.decompressobj().flush() might try to access
5677 previously-freed memory. Patch by Serhiy Storchaka.
5678
5679 - Issue #16357: fix calling accept() on a SSLSocket created through
5680 SSLContext.wrap_socket(). Original patch by Jeff McNeil.
5681
5682 - Issue #16409: The reporthook callback made by the legacy
5683 urllib.request.urlretrieve API now properly supplies a constant non-zero
5684 block_size as it did in Python 3.2 and 2.7. This matches the behavior of
5685 urllib.request.URLopener.retrieve.
5686
5687 - Issue #16431: Use the type information when constructing a Decimal subtype
5688 from a Decimal argument.
5689
5690 - Issue #15641: Clean up deprecated classes from importlib.
5691 Patch by Taras Lyapun.
5692
5693 - Issue #16350: zlib.decompressobj().decompress() now accumulates data from
5694 successive calls after EOF in unused_data, instead of only saving the argument
5695 to the last call. decompressobj().flush() now correctly sets unused_data and
5696 unconsumed_tail. A bug in the handling of MemoryError when setting the
5697 unconsumed_tail attribute has also been fixed. Patch by Serhiy Storchaka.
5698
5699 - Issue #12759: sre_parse now raises a proper error when the name of the group
5700 is missing. Initial patch by Serhiy Storchaka.
5701
5702 - Issue #16152: fix tokenize to ignore whitespace at the end of the code when
5703 no newline is found. Patch by Ned Batchelder.
5704
5705 - Issue #16284: Prevent keeping unnecessary references to worker functions
5706 in concurrent.futures ThreadPoolExecutor.
5707
5708 - Issue #16230: Fix a crash in select.select() when one the lists changes
5709 size while iterated on. Patch by Serhiy Storchaka.
5710
5711 - Issue #16228: Fix a crash in the json module where a list changes size
5712 while it is being encoded. Patch by Serhiy Storchaka.
5713
5714 - Issue #16351: New function gc.get_stats() returns per-generation collection
5715 statistics.
5716
5717 - Issue #14897: Enhance error messages of struct.pack and
5718 struct.pack_into. Patch by Matti Mäki.
5719
5720 - Issue #16316: mimetypes now recognizes the .xz and .txz (.tar.xz) extensions.
5721 Patch by Serhiy Storchaka.
5722
5723 - Issue #12890: cgitb no longer prints spurious <p> tags in text
5724 mode when the logdir option is specified.
5725
5726 - Issue #16307: Fix multiprocessing.Pool.map_async not calling its callbacks.
5727 Patch by Janne Karila.
5728
5729 - Issue #16305: Fix a segmentation fault occurring when interrupting
5730 math.factorial.
5731
5732 - Issue #16116: Fix include and library paths to be correct when building C
5733 extensions in venvs.
5734
5735 - Issue #16245: Fix the value of a few entities in html.entities.html5.
5736
5737 - Issue #16301: Fix the localhost verification in urllib/request.py for file://
5738 urls.
5739
5740 - Issue #16250: Fix the invocations of URLError which had misplaced filename
5741 attribute for exception.
5742
5743 - Issue #10836: Fix exception raised when file not found in urlretrieve
5744 Initial patch by Ezio Melotti.
5745
5746 - Issue #14398: Fix size truncation and overflow bugs in the bz2 module.
5747
5748 - Issue #12692: Fix resource leak in urllib.request when talking to an HTTP
5749 server that does not include a ``Connection: close`` header in its responses.
5750
5751 - Issue #12034: Fix bogus caching of result in check_GetFinalPathNameByHandle.
5752 Patch by Atsuo Ishimoto.
5753
5754 - Improve performance of `lzma.LZMAFile` (see also issue #16034).
5755
5756 - Issue #16220: wsgiref now always calls close() on an iterable response.
5757 Patch by Brent Tubbs.
5758
5759 - Issue #16270: urllib may hang when used for retrieving files via FTP by using
5760 a context manager. Patch by Giampaolo Rodola'.
5761
5762 - Issue #16461: Wave library should be able to deal with 4GB wav files,
5763 and sample rate of 44100 Hz.
5764
5765 - Issue #16176: Properly identify Windows 8 via platform.platform()
5766
5767 - Issue #16088: BaseHTTPRequestHandler's send_error method includes a
5768 Content-Length header in it's response now. Patch by Antoine Pitrou.
5769
5770 - Issue #16114: The subprocess module no longer provides a misleading error
5771 message stating that args[0] did not exist when either the cwd or executable
5772 keyword arguments specified a path that did not exist.
5773
5774 - Issue #16169: Fix ctypes.WinError()'s confusion between errno and winerror.
5775
5776 - Issue #16110: logging.fileConfig now accepts a pre-initialised ConfigParser
5777 instance.
5778
5779 - Issue #1492704: shutil.copyfile() raises a distinct SameFileError now if
5780 source and destination are the same file. Patch by Atsuo Ishimoto.
5781
5782 - Issue #13896: Make shelf instances work with 'with' as context managers.
5783 Original patch by Filip Gruszczyński.
5784
5785 - Issue #15417: Add support for csh and fish in venv activation scripts.
5786
5787 - Issue #14377: ElementTree.write and some of the module-level functions have
5788 a new parameter - *short_empty_elements*. It controls how elements with no
5789 contents are emitted.
5790
5791 - Issue #16089: Allow ElementTree.TreeBuilder to work again with a non-Element
5792 element_factory (fixes a regression in SimpleTAL).
5793
5794 - Issue #9650: List commonly used format codes in time.strftime and
5795 time.strptime docsttings. Original patch by Mike Hoy.
5796
5797 - Issue #15452: logging configuration socket listener now has a verify option
5798 that allows an application to apply a verification function to the
5799 received configuration data before it is acted upon.
5800
5801 - Issue #16034: Fix performance regressions in the new `bz2.BZ2File`
5802 implementation. Initial patch by Serhiy Storchaka.
5803
5804 - `pty.spawn()` now returns the child process status returned by `os.waitpid()`.
5805
5806 - Issue #15756: `subprocess.poll()` now properly handles `errno.ECHILD` to
5807 return a returncode of 0 when the child has already exited or cannot be waited
5808 on.
5809
5810 - Issue #15323: Improve failure message of `Mock.assert_called_once_with()`.
5811
5812 - Issue #16064: ``unittest -m`` claims executable is "python", not "python3".
5813
5814 - Issue #12376: Pass on parameters in `TextTestResult.__init__()` super call.
5815
5816 - Issue #15222: Insert blank line after each message in mbox mailboxes.
5817
5818 - Issue #16013: Fix `csv.Reader` parsing issue with ending quote characters.
5819 Patch by Serhiy Storchaka.
5820
5821 - Issue #15421: Fix an OverflowError in `Calendar.itermonthdates()` after
5822 `datetime.MAXYEAR`. Patch by Cédric Krier.
5823
5824 - Issue #16112: platform.architecture does not correctly escape argument to
5825 /usr/bin/file. Patch by David Benjamin.
5826
5827 - Issue #15970: `xml.etree.ElementTree` now serializes correctly the empty HTML
5828 elements 'meta' and 'param'.
5829
5830 - Issue #15842: The `SocketIO.{readable,writable,seekable}` methods now raise
5831 ValueError when the file-like object is closed. Patch by Alessandro Moura.
5832
5833 - Issue #15876: Fix a refleak in the `curses` module: window.encoding.
5834
5835 - Issue #15881: Fix `atexit` hook in `multiprocessing`. Original patch by Chris
5836 McDonough.
5837
5838 - Issue #15841: The readable(), writable() and seekable() methods of
5839 `io.BytesIO` and `io.StringIO` objects now raise ValueError when the object
5840 has been closed. Patch by Alessandro Moura.
5841
5842 - Issue #15447: Use `subprocess.DEVNULL` in webbrowser, instead of opening
5843 `os.devnull` explicitly and leaving it open.
5844
5845 - Issue #15509: `webbrowser.UnixBrowser` no longer passes empty arguments to
5846 Popen when ``%action`` substitutions produce empty strings.
5847
5848 - Issue #12776, issue #11839: Call `argparse` type function (specified by
5849 add_argument) only once. Before, the type function was called twice in the
5850 case where the default was specified and the argument was given as well. This
5851 was especially problematic for the FileType type, as a default file would
5852 always be opened, even if a file argument was specified on the command line.
5853
5854 - Issue #15906: Fix a regression in argparse caused by the preceding change,
5855 when ``action='append'``, ``type='str'`` and ``default=[]``.
5856
5857 - Issue #16113: Added sha3 module based on the Keccak reference implementation
5858 3.2. The `hashlib` module has four additional hash algorithms: `sha3_224`,
5859 `sha3_256`, `sha3_384` and `sha3_512`. As part of the patch some common
5860 code was moved from _hashopenssl.c to hashlib.h.
5861
5862 - ctypes.call_commethod was removed, since its only usage was in the defunct
5863 samples directory.
5864
5865 - Issue #16692: Added TLSv1.1 and TLSv1.2 support for the ssl modules.
5866
5867 - Issue #16832: add abc.get_cache_token() to expose cache validity checking
5868 support in ABCMeta.
5869
5870 IDLE
5871 ----
5872
5873 - Issue #18429: Format / Format Paragraph, now works when comment blocks
5874 are selected. As with text blocks, this works best when the selection
5875 only includes complete lines.
5876
5877 - Issue #18226: Add docstrings and unittests for FormatParagraph.py.
5878 Original patches by Todd Rovito and Phil Webster.
5879
5880 - Issue #18279: Format - Strip trailing whitespace no longer marks a file as
5881 changed when it has not been changed. This fix followed the addition of a
5882 test file originally written by Phil Webster (the issue's main goal).
5883
5884 - Issue #7136: In the Idle File menu, "New Window" is renamed "New File".
5885 Patch by Tal Einat, Roget Serwy, and Todd Rovito.
5886
5887 - Remove dead imports of imp.
5888
5889 - Issue #18196: Avoid displaying spurious SystemExit tracebacks.
5890
5891 - Issue #5492: Avoid traceback when exiting IDLE caused by a race condition.
5892
5893 - Issue #17511: Keep IDLE find dialog open after clicking "Find Next".
5894 Original patch by Sarah K.
5895
5896 - Issue #18055: Move IDLE off of imp and on to importlib.
5897
5898 - Issue #15392: Create a unittest framework for IDLE.
5899 Initial patch by Rajagopalasarma Jayakrishnan.
5900 See Lib/idlelib/idle_test/README.txt for how to run Idle tests.
5901
5902 - Issue #14146: Highlight source line while debugging on Windows.
5903
5904 - Issue #17838: Allow sys.stdin to be reassigned.
5905
5906 - Issue #13495: Avoid loading the color delegator twice in IDLE.
5907
5908 - Issue #17798: Allow IDLE to edit new files when specified on command line.
5909
5910 - Issue #14735: Update IDLE docs to omit "Control-z on Windows".
5911
5912 - Issue #17532: Always include Options menu for IDLE on OS X.
5913 Patch by Guilherme Simões.
5914
5915 - Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit().
5916
5917 - Issue #17657: Show full Tk version in IDLE's about dialog.
5918 Patch by Todd Rovito.
5919
5920 - Issue #17613: Prevent traceback when removing syntax colorizer in IDLE.
5921
5922 - Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
5923
5924 - Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
5925
5926 - Issue #17625: In IDLE, close the replace dialog after it is used.
5927
5928 - Issue #14254: IDLE now handles readline correctly across shell restarts.
5929
5930 - Issue #17614: IDLE no longer raises exception when quickly closing a file.
5931
5932 - Issue #6698: IDLE now opens just an editor window when configured to do so.
5933
5934 - Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
5935 raises an exception.
5936
5937 - Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo.
5938
5939 - Issue #17114: IDLE now uses non-strict config parser.
5940
5941 - Issue #9290: In IDLE the sys.std* streams now implement io.TextIOBase
5942 interface and support all mandatory methods and properties.
5943
5944 - Issue #5066: Update IDLE docs. Patch by Todd Rovito.
5945
5946 - Issue #16829: IDLE printing no longer fails if there are spaces or other
5947 special characters in the file path.
5948
5949 - Issue #16491: IDLE now prints chained exception tracebacks.
5950
5951 - Issue #16819: IDLE method completion now correctly works for bytes literals.
5952
5953 - Issue #16504: IDLE now catches SyntaxErrors raised by tokenizer. Patch by
5954 Roger Serwy.
5955
5956 - Issue #16511: Use default IDLE width and height if config param is not valid.
5957 Patch Serhiy Storchaka.
5958
5959 - Issue #1207589: Add Cut/Copy/Paste items to IDLE right click Context Menu.
5960 Patch by Todd Rovito.
5961
5962 - Issue #16123: IDLE - deprecate running without a subprocess.
5963 Patch by Roger Serwy.
5964
5965 Tests
5966 -----
5967
5968 - Issue #1666318: Add a test that shutil.copytree() retains directory
5969 permissions. Patch by Catherine Devlin.
5970
5971 - Issue #18273: move the tests in Lib/test/json_tests to Lib/test/test_json
5972 and make them discoverable by unittest. Patch by Zachary Ware.
5973
5974 - Fix a fcntl test case on KFreeBSD, Debian #708653 (Petr Salinger).
5975
5976 - Issue #18396: Fix spurious test failure in test_signal on Windows when
5977 faulthandler is enabled (Patch by Jeremy Kloth)
5978
5979 - Issue #17046: Fix broken test_executable_without_cwd in test_subprocess.
5980
5981 - Issue #15415: Add new temp_dir() and change_cwd() context managers to
5982 test.support, and refactor temp_cwd() to use them. Patch by Chris Jerdonek.
5983
5984 - Issue #15494: test.support is now a package rather than a module (Initial
5985 patch by Indra Talip)
5986
5987 - Issue #17944: test_zipfile now discoverable and uses subclassing to
5988 generate tests for different compression types. Fixed a bug with skipping
5989 some tests due to use of exhausted iterators.
5990
5991 - Issue #18266: test_largefile now works with unittest test discovery and
5992 supports running only selected tests. Patch by Zachary Ware.
5993
5994 - Issue #17767: test_locale now works with unittest test discovery.
5995 Original patch by Zachary Ware.
5996
5997 - Issue #18375: Assume --randomize when --randseed is used for running the
5998 testsuite.
5999
6000 - Issue #11185: Fix test_wait4 under AIX. Patch by Sébastien Sablé.
6001
6002 - Issue #18207: Fix test_ssl for some versions of OpenSSL that ignore seconds
6003 in ASN1_TIME fields.
6004
6005 - Issue #18094: test_uuid no longer reports skipped tests as passed.
6006
6007 - Issue #17992: Add timeouts to asyncore and asynchat tests so that they won't
6008 accidentally hang.
6009
6010 - Issue #17833: Fix test_gdb failures seen on machines where debug symbols
6011 for glibc are available (seen on PPC64 Linux).
6012
6013 - Issue #7855: Add tests for ctypes/winreg for issues found in IronPython.
6014 Initial patch by Dino Viehland.
6015
6016 - Issue #11078: test___all__ now checks for duplicates in __all__.
6017 Initial patch by R. David Murray.
6018
6019 - Issue #17712: Fix test_gdb failures on Ubuntu 13.04.
6020
6021 - Issue #17835: Fix test_io when the default OS pipe buffer size is larger
6022 than one million bytes.
6023
6024 - Issue #17065: Use process-unique key for winreg tests to avoid failures if
6025 test is run multiple times in parallel (eg: on a buildbot host).
6026
6027 - Issue #12820: add tests for the xml.dom.minicompat module.
6028 Patch by John Chandler and Phil Connell.
6029
6030 - Issue #17691: test_univnewlines now works with unittest test discovery.
6031 Patch by Zachary Ware.
6032
6033 - Issue #17790: test_set now works with unittest test discovery.
6034 Patch by Zachary Ware.
6035
6036 - Issue #17789: test_random now works with unittest test discovery.
6037 Patch by Zachary Ware.
6038
6039 - Issue #17779: test_osx_env now works with unittest test discovery.
6040 Patch by Zachary Ware.
6041
6042 - Issue #17766: test_iterlen now works with unittest test discovery.
6043 Patch by Zachary Ware.
6044
6045 - Issue #17690: test_time now works with unittest test discovery.
6046 Patch by Zachary Ware.
6047
6048 - Issue #17692: test_sqlite now works with unittest test discovery.
6049 Patch by Zachary Ware.
6050
6051 - Issue #11995: test_pydoc doesn't import all sys.path modules anymore.
6052
6053 - Issue #17448: test_sax now skips if there are no xml parsers available
6054 instead of raising an ImportError.
6055
6056 - Issue #11420: make test suite pass with -B/DONTWRITEBYTECODE set.
6057 Initial patch by Thomas Wouters.
6058
6059 - Issue #10652: make tcl/tk tests run after __all__ test, patch by
6060 Zachary Ware.
6061
6062 - Issue #11963: remove human verification from test_parser and test_subprocess.
6063
6064 - Issue #11732: add a new suppress_crash_popup() context manager to test.support
6065 that disables crash popups on Windows and use it in test_faulthandler and
6066 test_capi.
6067
6068 - Issue #13898: test_ssl no longer prints a spurious stack trace on Ubuntu.
6069
6070 - Issue #17283: Share code between `__main__.py` and `regrtest.py` in
6071 `Lib/test`.
6072
6073 - Issue #17249: convert a test in test_capi to use unittest and reap threads.
6074
6075 - Issue #17107: Test client-side SNI support in urllib.request thanks to
6076 the new server-side SNI support in the ssl module. Initial patch by
6077 Daniel Black.
6078
6079 - Issue #17041: Fix testing when Python is configured with the
6080 --without-doc-strings.
6081
6082 - Issue #16923: Fix ResourceWarnings in test_ssl.
6083
6084 - Issue #15539: Added regression tests for Tools/scripts/pindent.py.
6085
6086 - Issue #17479: test_io now works with unittest test discovery.
6087 Patch by Zachary Ware.
6088
6089 - Issue #17066: test_robotparser now works with unittest test discovery.
6090 Patch by Zachary Ware.
6091
6092 - Issue #17334: test_index now works with unittest test discovery.
6093 Patch by Zachary Ware.
6094
6095 - Issue #17333: test_imaplib now works with unittest test discovery.
6096 Patch by Zachary Ware.
6097
6098 - Issue #17082: test_dbm* now work with unittest test discovery.
6099 Patch by Zachary Ware.
6100
6101 - Issue #17079: test_ctypes now works with unittest test discovery.
6102 Patch by Zachary Ware.
6103
6104 - Issue #17304: test_hash now works with unittest test discovery.
6105 Patch by Zachary Ware.
6106
6107 - Issue #17303: test_future* now work with unittest test discovery.
6108 Patch by Zachary Ware.
6109
6110 - Issue #17163: test_file now works with unittest test discovery.
6111 Patch by Zachary Ware.
6112
6113 - Issue #16925: test_configparser now works with unittest test discovery.
6114 Patch by Zachary Ware.
6115
6116 - Issue #16918: test_codecs now works with unittest test discovery.
6117 Patch by Zachary Ware.
6118
6119 - Issue #16919: test_crypt now works with unittest test discovery.
6120 Patch by Zachary Ware.
6121
6122 - Issue #16910: test_bytes, test_unicode, and test_userstring now work with
6123 unittest test discovery. Patch by Zachary Ware.
6124
6125 - Issue #16905: test_warnings now works with unittest test discovery.
6126 Initial patch by Berker Peksag.
6127
6128 - Issue #16898: test_bufio now works with unittest test discovery.
6129 Patch by Zachary Ware.
6130
6131 - Issue #16888: test_array now works with unittest test discovery.
6132 Patch by Zachary Ware.
6133
6134 - Issue #16896: test_asyncore now works with unittest test discovery.
6135 Patch by Zachary Ware.
6136
6137 - Issue #16897: test_bisect now works with unittest test discovery.
6138 Initial patch by Zachary Ware.
6139
6140 - Issue #16852: test_genericpath, test_posixpath, test_ntpath, and test_macpath
6141 now work with unittest test discovery. Patch by Zachary Ware.
6142
6143 - Issue #16748: test_heapq now works with unittest test discovery.
6144
6145 - Issue #10646: Tests rearranged for os.samefile/samestat to check for not
6146 just symlinks but also hard links.
6147
6148 - Issue #15302: Switch regrtest from using getopt to using argparse.
6149
6150 - Issue #15324: Fix regrtest parsing of --fromfile, --match, and --randomize
6151 options.
6152
6153 - Issue #16702: test_urllib2_localnet tests now correctly ignores proxies for
6154 localhost tests.
6155
6156 - Issue #16664: Add regression tests for glob's behaviour concerning entries
6157 starting with a ".". Patch by Sebastian Kreft.
6158
6159 - Issue #13390: The ``-R`` option to regrtest now also checks for memory
6160 allocation leaks, using :func:`sys.getallocatedblocks()`.
6161
6162 - Issue #16559: Add more tests for the json module, including some from the
6163 official test suite at json.org. Patch by Serhiy Storchaka.
6164
6165 - Issue #16661: Fix the `os.getgrouplist()` test by not assuming that it gives
6166 the same output as :command:`id -G`.
6167
6168 - Issue #16115: Add some tests for the executable argument to
6169 subprocess.Popen(). Initial patch by Kushal Das.
6170
6171 - Issue #16126: PyErr_Format format mismatch in _testcapimodule.c.
6172 Patch by Serhiy Storchaka.
6173
6174 - Issue #15304: Fix warning message when `os.chdir()` fails inside
6175 `test.support.temp_cwd()`. Patch by Chris Jerdonek.
6176
6177 - Issue #15802: Fix test logic in `TestMaildir.test_create_tmp()`. Patch by
6178 Serhiy Storchaka.
6179
6180 - Issue #15557: Added a test suite for the webbrowser module, thanks to Anton
6181 Barkovsky.
6182
6183 - Issue #16698: Skip posix test_getgroups when built with OS X
6184 deployment target prior to 10.6.
6185
6186 Build
6187 -----
6188
6189 - Issue #16067: Add description into MSI file to replace installer's
6190 temporary name.
6191
6192 - Issue #18257: Fix readlink usage in python-config. Install the python
6193 version again on Darwin.
6194
6195 - Issue #18481: Add C coverage reporting with gcov and lcov. A new make target
6196 "coverage-report" creates an instrumented Python build, runs unit tests
6197 and creates a HTML. The report can be updated with "make coverage-lcov".
6198
6199 - Issue #17845: Clarified the message printed when some module are not built.
6200
6201 - Issue #18256: Compilation fix for recent AIX releases. Patch by
6202 David Edelsohn.
6203
6204 - Issue #17547: In configure, explicitly pass -Wformat for the benefit for GCC
6205 4.8.
6206
6207 - Issue #15172: Document NASM 2.10+ as requirement for building OpenSSL 1.0.1
6208 on Windows.
6209
6210 - Issue #17591: Use lowercase filenames when including Windows header files.
6211 Patch by Roumen Petrov.
6212
6213 - Issue #17550: Fix the --enable-profiling configure switch.
6214
6215 - Issue #17425: Build with openssl 1.0.1d on Windows.
6216
6217 - Issue #16754: Fix the incorrect shared library extension on linux. Introduce
6218 two makefile macros SHLIB_SUFFIX and EXT_SUFFIX. SO now has the value of
6219 SHLIB_SUFFIX again (as in 2.x and 3.1). The SO macro is removed in 3.4.
6220
6221 - Issue #5033: Fix building of the sqlite3 extension module when the
6222 SQLite library version has "beta" in it. Patch by Andreas Pelme.
6223
6224 - Issue #17228: Fix building without pymalloc.
6225
6226 - Issue #3718: Use AC_ARG_VAR to set MACHDEP in configure.ac.
6227
6228 - Issue #16235: Implement python-config as a shell script.
6229
6230 - Issue #16769: Remove outdated Visual Studio projects.
6231
6232 - Issue #17031: Fix running regen in cross builds.
6233
6234 - Issue #3754: fix typo in pthread AC_CACHE_VAL.
6235
6236 - Issue #15484: Fix _PYTHON_PROJECT_BASE for srcdir != builddir builds;
6237 use _PYTHON_PROJECT_BASE in distutils/sysconfig.py.
6238
6239 - Drop support for Windows 2000 (changeset e52df05b496a).
6240
6241 - Issue #17029: Let h2py search the multiarch system include directory.
6242
6243 - Issue #16953: Fix socket module compilation on platforms with
6244 HAVE_BROKEN_POLL. Patch by Jeffrey Armstrong.
6245
6246 - Issue #16320: Remove redundant Makefile dependencies for strings and bytes.
6247
6248 - Cross compiling needs host and build settings. configure no longer
6249 creates a broken PYTHON_FOR_BUILD variable when --build is missing.
6250
6251 - Fix cross compiling issue in setup.py, ensure that lib_dirs and inc_dirs are
6252 defined in cross compiling mode, too.
6253
6254 - Issue #16836: Enable IPv6 support even if IPv6 is disabled on the build host.
6255
6256 - Issue #16593: Have BSD 'make -s' do the right thing, thanks to Daniel Shahaf
6257
6258 - Issue #16262: fix out-of-src-tree builds, if mercurial is not installed.
6259
6260 - Issue #15298: ensure _sysconfigdata is generated in build directory, not
6261 source directory.
6262
6263 - Issue #15833: Fix a regression in 3.3 that resulted in exceptions being
6264 raised if importlib failed to write byte-compiled files. This affected
6265 attempts to build Python out-of-tree from a read-only source directory.
6266
6267 - Issue #15923: Fix a mistake in ``asdl_c.py`` that resulted in a TypeError
6268 after 2801bf875a24 (see #15801).
6269
6270 - Issue #16135: Remove OS/2 support.
6271
6272 - Issue #15819: Make sure we can build Python out-of-tree from a read-only
6273 source directory. (Somewhat related to issue #9860.)
6274
6275 - Issue #15587: Enable Tk high-resolution text rendering on Macs with
6276 Retina displays. Applies to Tkinter apps, such as IDLE, on OS X
6277 framework builds linked with Cocoa Tk 8.5.
6278
6279 - Issue #17161: make install now also installs a python3 man page.
6280
6281 C-API
6282 -----
6283
6284 - Issue #18351: Fix various issues in a function in importlib provided to help
6285 PyImport_ExecCodeModuleWithPathnames() (and thus by extension
6286 PyImport_ExecCodeModule() and PyImport_ExecCodeModuleEx()).
6287
6288 - Issue #9369: The types of `char*` arguments of PyObject_CallFunction() and
6289 PyObject_CallMethod() now changed to `const char*`. Based on patches by
6290 Jörg Müller and Lars Buitinck.
6291
6292 - Issue #17206: Py_CLEAR(), Py_DECREF(), Py_XINCREF() and Py_XDECREF() now
6293 expand their arguments once instead of multiple times. Patch written by Illia
6294 Polosukhin.
6295
6296 - Issue #17522: Add the PyGILState_Check() API.
6297
6298 - Issue #17327: Add PyDict_SetDefault.
6299
6300 - Issue #16881: Fix Py_ARRAY_LENGTH macro for GCC < 3.1.
6301
6302 - Issue #16505: Remove unused Py_TPFLAGS_INT_SUBCLASS.
6303
6304 - Issue #16086: PyTypeObject.tp_flags and PyType_Spec.flags are now unsigned
6305 (unsigned long and unsigned int) to avoid an undefined behaviour with
6306 Py_TPFLAGS_TYPE_SUBCLASS ((1 << 31). PyType_GetFlags() result type is
6307 now unsigned too (unsigned long, instead of long).
6308
6309 - Issue #16166: Add PY_LITTLE_ENDIAN and PY_BIG_ENDIAN macros and unified
6310 endianness detection and handling.
6311
6312 Documentation
6313 -------------
6314
6315 - Issue #17701: Improving strftime documentation.
6316
6317 - Issue #18440: Clarify that `hash()` can truncate the value returned from an
6318 object's custom `__hash__()` method.
6319
6320 - Issue #17844: Add links to encoders and decoders for bytes-to-bytes codecs.
6321
6322 - Issue #14097: improve the "introduction" page of the tutorial.
6323
6324 - Issue #17977: The documentation for the cadefault argument's default value
6325 in urllib.request.urlopen() is fixed to match the code.
6326
6327 - Issue #6696: add documentation for the Profile objects, and improve
6328 profile/cProfile docs. Patch by Tom Pinckney.
6329
6330 - Issue #15940: Specify effect of locale on time functions.
6331
6332 - Issue #17538: Document XML vulnerabilties
6333
6334 - Issue #16642: sched.scheduler timefunc initial default is time.monotonic.
6335 Patch by Ramchandra Apte
6336
6337 - Issue #17047: remove doubled words in docs and docstrings
6338 reported by Serhiy Storchaka and Matthew Barnett.
6339
6340 - Issue #15465: Document the versioning macros in the C API docs rather than
6341 the standard library docs. Patch by Kushal Das.
6342
6343 - Issue #16406: Combine the pages for uploading and registering to PyPI.
6344
6345 - Issue #16403: Document how distutils uses the maintainer field in
6346 PKG-INFO. Patch by Jyrki Pulliainen.
6347
6348 - Issue #16695: Document how glob handles filenames starting with a
6349 dot. Initial patch by Jyrki Pulliainen.
6350
6351 - Issue #8890: Stop advertising an insecure practice by replacing uses
6352 of the /tmp directory with better alternatives in the documentation.
6353 Patch by Geoff Wilson.
6354
6355 - Issue #17203: add long option names to unittest discovery docs.
6356
6357 - Issue #13094: add "Why do lambdas defined in a loop with different values
6358 all return the same result?" programming FAQ.
6359
6360 - Issue #14901: Update portions of the Windows FAQ.
6361 Patch by Ashish Nitin Patil.
6362
6363 - Issue #16267: Better document the 3.3+ approach to combining
6364 @abstractmethod with @staticmethod, @classmethod and @property
6365
6366 - Issue #15209: Clarify exception chaining description in exceptions module
6367 documentation
6368
6369 - Issue #15990: Improve argument/parameter documentation.
6370
6371 - Issue #16209: Move the documentation for the str built-in function to a new
6372 str class entry in the "Text Sequence Type" section.
6373
6374 - Issue #13538: Improve str() and object.__str__() documentation.
6375
6376 - Issue #16489: Make it clearer that importlib.find_loader() needs parent
6377 packages to be explicitly imported.
6378
6379 - Issue #16400: Update the description of which versions of a given package
6380 PyPI displays.
6381
6382 - Issue #15677: Document that zlib and gzip accept a compression level of 0 to
6383 mean 'no compression'. Patch by Brian Brazil.
6384
6385 - Issue #16197: Update winreg docstrings and documentation to match code.
6386 Patch by Zachary Ware.
6387
6388 - Issue #8040: added a version switcher to the documentation. Patch by
6389 Yury Selivanov.
6390
6391 - Issue #16241: Document -X faulthandler command line option.
6392 Patch by Marek Šuppa.
6393
6394 - Additional comments and some style changes in the concurrent.futures URL
6395 retrieval example
6396
6397 - Issue #16115: Improve subprocess.Popen() documentation around args, shell,
6398 and executable arguments.
6399
6400 - Issue #13498: Clarify docs of os.makedirs()'s exist_ok argument. Done with
6401 great native-speaker help from R. David Murray.
6402
6403 - Issue #15533: Clarify docs and add tests for `subprocess.Popen()`'s cwd
6404 argument.
6405
6406 - Issue #15979: Improve timeit documentation.
6407
6408 - Issue #16036: Improve documentation of built-in `int()`'s signature and
6409 arguments.
6410
6411 - Issue #15935: Clarification of `argparse` docs, re: add_argument() type and
6412 default arguments. Patch contributed by Chris Jerdonek.
6413
6414 - Issue #11964: Document a change in v3.2 to the behavior of the indent
6415 parameter of json encoding operations.
6416
6417 - Issue #15116: Remove references to appscript as it is no longer being
6418 supported.
6419
6420 Tools/Demos
6421 -----------
6422
6423 - Issue #18817: Fix a resource warning in Lib/aifc.py demo. Patch by
6424 Vajrasky Kok.
6425
6426 - Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
6427
6428 - Issue #18448: Fix a typo in Tools/demo/eiffel.py.
6429
6430 - Issue #18457: Fixed saving of formulas and complex numbers in
6431 Tools/demo/ss1.py.
6432
6433 - Issue #18449: Make Tools/demo/ss1.py work again on Python 3. Patch by
6434 Févry Thibault.
6435
6436 - Issue #12990: The "Python Launcher" on OSX could not launch python scripts
6437 that have paths that include wide characters.
6438
6439 - Issue #15239: Make mkstringprep.py work again on Python 3.
6440
6441 - Issue #17028: Allowed Python arguments to be supplied to the Windows
6442 launcher.
6443
6444 - Issue #17156: pygettext.py now detects the encoding of source files and
6445 correctly writes and escapes non-ascii characters.
6446
6447 - Issue #15539: Fix a number of bugs in Tools/scripts/pindent.py. Now
6448 pindent.py works with a "with" statement. pindent.py no longer produces
6449 improper indentation. pindent.py now works with continued lines broken after
6450 "class" or "def" keywords and with continuations at the start of line.
6451
6452 - Issue #11797: Add a 2to3 fixer that maps reload() to imp.reload().
6453
6454 - Issue #10966: Remove the concept of unexpected skipped tests.
6455
6456 - Issue #9893: Removed the Misc/Vim directory.
6457
6458 - Removed the Misc/TextMate directory.
6459
6460 - Issue #16245: Add the Tools/scripts/parse_html5_entities.py script to parse
6461 the list of HTML5 entities and update the html.entities.html5 dictionary.
6462
6463 - Issue #15378: Fix Tools/unicode/comparecodecs.py. Patch by Serhiy Storchaka.
6464
6465 - Issue #16549: Make json.tool work again on Python 3 and add tests.
6466 Initial patch by Berker Peksag and Serhiy Storchaka.
6467
6468 - Issue #13301: use ast.literal_eval() instead of eval() in Tools/i18n/msgfmt.py.
6469 Patch by Serhiy Storchaka.
6470
6471 Windows
6472 -------
6473
6474 - Issue #18569: The installer now adds .py to the PATHEXT variable when extensions
6475 are registered. Patch by Paul Moore.
6476
6477
6478 What's New in Python 3.3.0?
6479 ===========================
6480
6481 *Release date: 29-Sep-2012*
6482
6483 Core and Builtins
6484 -----------------
6485
6486 - Issue #16046: Fix loading sourceless legacy .pyo files.
6487
6488 - Issue #16060: Fix refcounting bug when `__trunc__()` returns an object whose
6489 `__int__()` gives a non-integer. Patch by Serhiy Storchaka.
6490
6491 Extension Modules
6492 -----------------
6493
6494 - Issue #16012: Fix a regression in pyexpat. The parser's `UseForeignDTD()`
6495 method doesn't require an argument again.
6496
6497
6498 What's New in Python 3.3.0 Release Candidate 3?
6499 ===============================================
6500
6501 *Release date: 23-Sep-2012*
6502
6503 Core and Builtins
6504 -----------------
6505
6506 - Issue #15900: Fix reference leak in `PyUnicode_TranslateCharmap()`.
6507
6508 - Issue #15926: Fix crash after multiple reinitializations of the interpreter.
6509
6510 - Issue #15895: Fix FILE pointer leak in one error branch of
6511 `PyRun_SimpleFileExFlags()` when filename points to a pyc/pyo file, closeit is
6512 false an and set_main_loader() fails.
6513
6514 - Fixes for a few crash and memory leak regressions found by Coverity.
6515
6516 Library
6517 -------
6518
6519 - Issue #15882: Change `_decimal` to accept any coefficient tuple when
6520 constructing infinities. This is done for backwards compatibility with
6521 decimal.py: Infinity coefficients are undefined in _decimal (in accordance
6522 with the specification).
6523
6524 - Issue #15925: Fix a regression in `email.util` where the `parsedate()` and
6525 `parsedate_tz()` functions did not return None anymore when the argument could
6526 not be parsed.
6527
6528 Extension Modules
6529 -----------------
6530
6531 - Issue #15973: Fix a segmentation fault when comparing datetime timezone
6532 objects.
6533
6534 - Issue #15977: Fix memory leak in Modules/_ssl.c when the function
6535 _set_npn_protocols() is called multiple times, thanks to Daniel Sommermann.
6536
6537 - Issue #15969: `faulthandler` module: rename dump_tracebacks_later() to
6538 dump_traceback_later() and cancel_dump_tracebacks_later() to
6539 cancel_dump_traceback_later().
6540
6541 - _decimal module: use only C 89 style comments.
6542
6543
6544 What's New in Python 3.3.0 Release Candidate 2?
6545 ===============================================
6546
6547 *Release date: 09-Sep-2012*
6548
6549 Core and Builtins
6550 -----------------
6551
6552 - Issue #13992: The trashcan mechanism is now thread-safe. This eliminates
6553 sporadic crashes in multi-thread programs when several long deallocator chains
6554 ran concurrently and involved subclasses of built-in container types.
6555
6556 - Issue #15784: Modify `OSError`.__str__() to better distinguish between errno
6557 error numbers and Windows error numbers.
6558
6559 - Issue #15781: Fix two small race conditions in import's module locking.
6560
6561 Library
6562 -------
6563
6564 - Issue #17158: Add 'symbols' to help() welcome message; clarify
6565 'modules spam' messages.
6566
6567 - Issue #15847: Fix a regression in argparse, which did not accept tuples as
6568 argument lists anymore.
6569
6570 - Issue #15828: Restore support for C extensions in `imp.load_module()`.
6571
6572 - Issue #15340: Fix importing the random module when ``/dev/urandom`` cannot be
6573 opened. This was a regression caused by the hash randomization patch.
6574
6575 - Issue #10650: Deprecate the watchexp parameter of the `Decimal.quantize()`
6576 method.
6577
6578 - Issue #15785: Modify `window.get_wch()` API of the curses module: return a
6579 character for most keys, and an integer for special keys, instead of always
6580 returning an integer. So it is now possible to distinguish special keys like
6581 keypad keys.
6582
6583 - Issue #14223: Fix `window.addch()` of the curses module for special characters
6584 like curses.ACS_HLINE: the Python function addch(int) and addch(bytes) is now
6585 calling the C function waddch()/mvwaddch() (as it was done in Python 3.2),
6586 instead of wadd_wch()/mvwadd_wch(). The Python function addch(str) is still
6587 calling the C function wadd_wch()/mvwadd_wch() if the Python curses is linked
6588 to libncursesw.
6589
6590 Build
6591 -----
6592
6593 - Issue #15822: Really ensure 2to3 grammar pickles are properly installed
6594 (replaces fixes for Issue #15645).
6595
6596 Documentation
6597 -------------
6598
6599 - Issue #15814: The memoryview enhancements in 3.3.0 accidentally permitted the
6600 hashing of multi-dimensional memorviews and memoryviews with multi-byte item
6601 formats. The intended restrictions have now been documented - they will be
6602 correctly enforced in 3.3.1.
6603
6604
6605 What's New in Python 3.3.0 Release Candidate 1?
6606 ===============================================
6607
6608 *Release date: 25-Aug-2012*
6609
6610 Core and Builtins
6611 -----------------
6612
6613 - Issue #15573: memoryview comparisons are now performed by value with full
6614 support for any valid struct module format definition.
6615
6616 - Issue #15316: When an item in the fromlist for `__import__()` doesn't exist,
6617 don't raise an error, but if an exception is raised as part of an import do
6618 let that propagate.
6619
6620 - Issue #15778: Ensure that ``str(ImportError(msg))`` returns a str even when
6621 msg isn't a str.
6622
6623 - Issue #2051: Source file permission bits are once again correctly copied to
6624 the cached bytecode file. (The migration to importlib reintroduced this
6625 problem because these was no regression test. A test has been added as part of
6626 this patch)
6627
6628 - Issue #15761: Fix crash when ``PYTHONEXECUTABLE`` is set on Mac OS X.
6629
6630 - Issue #15726: Fix incorrect bounds checking in PyState_FindModule. Patch by
6631 Robin Schreiber.
6632
6633 - Issue #15604: Update uses of `PyObject_IsTrue()` to check for and handle
6634 errors correctly. Patch by Serhiy Storchaka.
6635
6636 - Issue #14846: `importlib.FileFinder` now handles the case where the directory
6637 being searched is removed after a previous import attempt.
6638
6639 Library
6640 -------
6641
6642 - Issue #13370: Ensure that ctypes works on Mac OS X when Python is compiled
6643 using the clang compiler.
6644
6645 - Issue #13072: The array module's 'u' format code is now deprecated and will be
6646 removed in Python 4.0.
6647
6648 - Issue #15544: Fix Decimal.__float__ to work with payload-carrying NaNs.
6649
6650 - Issue #15776: Allow pyvenv to work in existing directory with --clean.
6651
6652 - Issue #15249: email's BytesGenerator now correctly mangles From lines (when
6653 requested) even if the body contains undecodable bytes.
6654
6655 - Issue #15777: Fix a refleak in _posixsubprocess.
6656
6657 - Issue #665194: Update `email.utils.localtime` to use datetime.astimezone and
6658 correctly handle historic changes in UTC offsets.
6659
6660 - Issue #15199: Fix JavaScript's default MIME type to application/javascript.
6661 Patch by Bohuslav Kabrda.
6662
6663 - Issue #12643: `code.InteractiveConsole` now respects `sys.excepthook` when
6664 displaying exceptions. Patch by Aaron Iles.
6665
6666 - Issue #13579: `string.Formatter` now understands the 'a' conversion specifier.
6667
6668 - Issue #15595: Fix ``subprocess.Popen(universal_newlines=True)`` for certain
6669 locales (utf-16 and utf-32 family). Patch by Chris Jerdonek.
6670
6671 - Issue #15477: In cmath and math modules, add workaround for platforms whose
6672 system-supplied log1p function doesn't respect signs of zeros.
6673
6674 - Issue #15715: `importlib.__import__()` will silence an ImportError when the
6675 use of fromlist leads to a failed import.
6676
6677 - Issue #14669: Fix pickling of connections and sockets on Mac OS X by
6678 sending/receiving an acknowledgment after file descriptor transfer.
6679 TestPicklingConnection has been reenabled for Mac OS X.
6680
6681 - Issue #11062: Fix adding a message from file to Babyl mailbox.
6682
6683 - Issue #15646: Prevent equivalent of a fork bomb when using `multiprocessing`
6684 on Windows without the ``if __name__ == '__main__'`` idiom.
6685
6686 IDLE
6687 ----
6688
6689 - Issue #15678: Fix IDLE menus when started from OS X command line (3.3.0b2
6690 regression).
6691
6692 Documentation
6693 -------------
6694
6695 - Touched up the Python 2 to 3 porting guide.
6696
6697 - Issue #14674: Add a discussion of the `json` module's standard compliance.
6698 Patch by Chris Rebert.
6699
6700 - Create a 'Concurrent Execution' section in the docs, and split up the
6701 'Optional Operating System Services' section to use a more user-centric
6702 classification scheme (splitting them across the new CE section, IPC and text
6703 processing). Operating system limitations can be reflected with the Sphinx
6704 ``:platform:`` tag, it doesn't make sense as part of the Table of Contents.
6705
6706 - Issue #4966: Bring the sequence docs up to date for the Py3k transition and
6707 the many language enhancements since they were original written.
6708
6709 - The "path importer" misnomer has been replaced with Eric Snow's
6710 more-awkward-but-at-least-not-wrong suggestion of "path based finder" in the
6711 import system reference docs.
6712
6713 - Issue #15640: Document `importlib.abc.Finder` as deprecated.
6714
6715 - Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by
6716 Daniel Ellis.
6717
6718 Tests
6719 -----
6720
6721 - Issue #15747: ZFS always returns EOPNOTSUPP when attempting to set the
6722 UF_IMMUTABLE flag (via either chflags or lchflags); refactor affected tests in
6723 test_posix.py to account for this.
6724
6725 - Issue #15285: Refactor the approach for testing connect timeouts using two
6726 external hosts that have been configured specifically for this type of test.
6727
6728 - Issue #15743: Remove the deprecated method usage in `urllib` tests. Patch by
6729 Jeff Knupp.
6730
6731 - Issue #15615: Add some tests for the `json` module's handling of invalid input
6732 data. Patch by Kushal Das.
6733
6734 Build
6735 -----
6736
6737 - Output lib files for PGO build into PGO directory.
6738
6739 - Pick up 32-bit launcher from PGO directory on 64-bit PGO build.
6740
6741 - Drop ``PC\python_nt.h`` as it's not used. Add input dependency on custom
6742 build step.
6743
6744 - Issue #15511: Drop explicit dependency on pythonxy.lib from _decimal amd64
6745 configuration.
6746
6747 - Add missing PGI/PGO configurations for pywlauncher.
6748
6749 - Issue #15645: Ensure 2to3 grammar pickles are properly installed.
6750
6751
6752 What's New in Python 3.3.0 Beta 2?
6753 ==================================
6754
6755 *Release date: 12-Aug-2012*
6756
6757 Core and Builtins
6758 -----------------
6759
6760 - Issue #15568: Fix the return value of ``yield from`` when StopIteration is
6761 raised by a custom iterator.
6762
6763 - Issue #13119: `sys.stdout` and `sys.stderr` are now using "\r\n" newline on
6764 Windows, as Python 2.
6765
6766 - Issue #15534: Fix the fast-search function for non-ASCII Unicode strings.
6767
6768 - Issue #15508: Fix the docstring for `__import__()` to have the proper default
6769 value of 0 for 'level' and to not mention negative levels since they are not
6770 supported.
6771
6772 - Issue #15425: Eliminated traceback noise from more situations involving
6773 importlib.
6774
6775 - Issue #14578: Support modules registered in the Windows registry again.
6776
6777 - Issue #15466: Stop using TYPE_INT64 in marshal, to make importlib.h (and other
6778 byte code files) equal between 32-bit and 64-bit systems.
6779
6780 - Issue #1692335: Move initial exception args assignment to
6781 `BaseException.__new__()` to help pickling of naive subclasses.
6782
6783 - Issue #12834: Fix `PyBuffer_ToContiguous()` for non-contiguous arrays.
6784
6785 - Issue #15456: Fix code `__sizeof__()` after #12399 change. Patch by Serhiy
6786 Storchaka.
6787
6788 - Issue #15404: Refleak in PyMethodObject repr.
6789
6790 - Issue #15394: An issue in `PyModule_Create()` that caused references to be
6791 leaked on some error paths has been fixed. Patch by Julia Lawall.
6792
6793 - Issue #15368: An issue that caused bytecode generation to be non-deterministic
6794 has been fixed.
6795
6796 - Issue #15202: Consistently use the name "follow_symlinks" for new parameters
6797 in os and shutil functions.
6798
6799 - Issue #15314: ``__main__.__loader__`` is now set correctly during interpreter
6800 startup.
6801
6802 - Issue #15111: When a module imported using 'from import' has an ImportError
6803 inside itself, don't mask that fact behind a generic ImportError for the
6804 module itself.
6805
6806 - Issue #15293: Add GC support to the AST base node type.
6807
6808 - Issue #15291: Fix a memory leak where AST nodes where not properly
6809 deallocated.
6810
6811 - Issue #15110: Fix the tracebacks generated by "import xxx" to not show the
6812 importlib stack frames.
6813
6814 - Issue #16369: Global PyTypeObjects not initialized with PyType_Ready(...).
6815
6816 - Issue #15020: The program name used to search for Python's path is now
6817 "python3" under Unix, not "python".
6818
6819 - Issue #15897: zipimport.c doesn't check return value of fseek().
6820 Patch by Felipe Cruz.
6821
6822 - Issue #15033: Fix the exit status bug when modules invoked using -m switch,
6823 return the proper failure return value (1). Patch contributed by Jeff Knupp.
6824
6825 - Issue #15229: An `OSError` subclass whose __init__ doesn't call back
6826 OSError.__init__ could produce incomplete instances, leading to crashes when
6827 calling str() on them.
6828
6829 - Issue #15307: Virtual environments now use symlinks with framework builds on
6830 Mac OS X, like other POSIX builds.
6831
6832 Library
6833 -------
6834
6835 - Issue #14590: configparser now correctly strips inline comments when delimiter
6836 occurs earlier without preceding space.
6837
6838 - Issue #15424: Add a `__sizeof__()` implementation for array objects. Patch by
6839 Ludwig Hähne.
6840
6841 - Issue #15576: Allow extension modules to act as a package's __init__ module.
6842
6843 - Issue #15502: Have `importlib.invalidate_caches()` work on `sys.meta_path`
6844 instead of `sys.path_importer_cache`.
6845
6846 - Issue #15163: Pydoc shouldn't list __loader__ as module data.
6847
6848 - Issue #15471: Do not use mutable objects as defaults for
6849 `importlib.__import__()`.
6850
6851 - Issue #15559: To avoid a problematic failure mode when passed to the bytes
6852 constructor, objects in the ipaddress module no longer implement `__index__()`
6853 (they still implement `__int__()` as appropriate).
6854
6855 - Issue #15546: Fix handling of pathological input data in the peek() and
6856 read1() methods of the BZ2File, GzipFile and LZMAFile classes.
6857
6858 - Issue #12655: Instead of requiring a custom type, `os.sched_getaffinity()` and
6859 `os.sched_setaffinity()` now use regular sets of integers to represent the
6860 CPUs a process is restricted to.
6861
6862 - Issue #15538: Fix compilation of the `socket.getnameinfo()` /
6863 `socket.getaddrinfo()` emulation code. Patch by Philipp Hagemeister.
6864
6865 - Issue #15519: Properly expose WindowsRegistryFinder in importlib (and use the
6866 correct term for it). Original patch by Eric Snow.
6867
6868 - Issue #15502: Bring the importlib ABCs into line with the current state of the
6869 import protocols given PEP 420. Original patch by Eric Snow.
6870
6871 - Issue #15499: Launching a webbrowser in Unix used to sleep for a few seconds.
6872 Original patch by Anton Barkovsky.
6873
6874 - Issue #15463: The faulthandler module truncates strings to 500 characters,
6875 instead of 100, to be able to display long file paths.
6876
6877 - Issue #6056: Make `multiprocessing` use setblocking(True) on the sockets it
6878 uses. Original patch by J Derek Wilson.
6879
6880 - Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
6881
6882 - Issue #15413: `os.times()` had disappeared under Windows.
6883
6884 - Issue #15402: An issue in the struct module that caused `sys.getsizeof()` to
6885 return incorrect results for struct.Struct instances has been fixed. Initial
6886 patch by Serhiy Storchaka.
6887
6888 - Issue #15232: When mangle_from is True, `email.Generator` now correctly
6889 mangles lines that start with 'From ' that occur in a MIME preamble or
6890 epilogue.
6891
6892 - Issue #15094: Incorrectly placed #endif in _tkinter.c. Patch by Serhiy
6893 Storchaka.
6894
6895 - Issue #13922: `argparse` no longer incorrectly strips '--'s that appear after
6896 the first one.
6897
6898 - Issue #12353: `argparse` now correctly handles null argument values.
6899
6900 - Issue #10017, issue #14998: Fix TypeError using pprint on dictionaries with
6901 user-defined types as keys or other unorderable keys.
6902
6903 - Issue #15397: `inspect.getmodulename()` is now based directly on importlib via
6904 a new `importlib.machinery.all_suffixes()` API.
6905
6906 - Issue #14635: `telnetlib` will use poll() rather than select() when possible to
6907 avoid failing due to the select() file descriptor limit.
6908
6909 - Issue #15180: Clarify posixpath.join() error message when mixing str & bytes.
6910
6911 - Issue #15343: pkgutil now includes an iter_importer_modules implementation for
6912 importlib.machinery.FileFinder (similar to the way it already handled
6913 zipimport.zipimporter).
6914
6915 - Issue #15314: runpy now sets __main__.__loader__ correctly.
6916
6917 - Issue #15357: The import emulation in pkgutil is now deprecated. pkgutil uses
6918 importlib internally rather than the emulation.
6919
6920 - Issue #15233: Python now guarantees that callables registered with the atexit
6921 module will be called in a deterministic order.
6922
6923 - Issue #15238: `shutil.copystat()` now copies Linux "extended attributes".
6924
6925 - Issue #15230: runpy.run_path now correctly sets __package__ as described in
6926 the documentation.
6927
6928 - Issue #15315: Support VS 2010 in distutils cygwincompiler.
6929
6930 - Issue #15294: Fix a regression in pkgutil.extend_path()'s handling of nested
6931 namespace packages.
6932
6933 - Issue #15056: `imp.cache_from_source()` and `imp.source_from_cache()` raise
6934 NotImplementedError when `sys.implementation.cache_tag` is set to None.
6935
6936 - Issue #15256: Grammatical mistake in exception raised by `imp.find_module()`.
6937
6938 - Issue #5931: `wsgiref` environ variable SERVER_SOFTWARE will specify an
6939 implementation specific term like CPython, Jython instead of generic "Python".
6940
6941 - Issue #13248: Remove obsolete argument "max_buffer_size" of BufferedWriter and
6942 BufferedRWPair, from the io module.
6943
6944 - Issue #13248: Remove obsolete argument "version" of `argparse.ArgumentParser`.
6945
6946 - Issue #14814: Implement more consistent ordering and sorting behaviour for
6947 ipaddress objects.
6948
6949 - Issue #14814: `ipaddress` network objects correctly return NotImplemented when
6950 compared to arbitrary objects instead of raising TypeError.
6951
6952 - Issue #14990: Correctly fail with SyntaxError on invalid encoding declaration.
6953
6954 - Issue #14814: `ipaddress` now provides more informative error messages when
6955 constructing instances directly (changes permitted during beta due to
6956 provisional API status).
6957
6958 - Issue #15247: `io.FileIO` now raises an error when given a file descriptor
6959 pointing to a directory.
6960
6961 - Issue #15261: Stop os.stat(fd) crashing on Windows when fd not open.
6962
6963 - Issue #15166: Implement `imp.get_tag()` using `sys.implementation.cache_tag`.
6964
6965 - Issue #15210: Catch KeyError when `importlib.__init__()` can't find
6966 _frozen_importlib in sys.modules, not ImportError.
6967
6968 - Issue #15030: `importlib.abc.PyPycLoader` now supports the new source size
6969 header field in .pyc files.
6970
6971 - Issue #5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on
6972 flush().
6973
6974 - Issue #10571: Fix the "--sign" option of distutils' upload command. Patch by
6975 Jakub Wilk.
6976
6977 - Issue #9559: If messages were only added, a new file is no longer created and
6978 renamed over the old file when flush() is called on an mbox, MMDF or Babyl
6979 mailbox.
6980
6981 - Issue #10924: Fixed `crypt.mksalt()` to use a RNG that is suitable for
6982 cryptographic purpose.
6983
6984 - Issue #15184: Ensure consistent results of OS X configuration tailoring for
6985 universal builds by factoring out common OS X-specific customizations from
6986 sysconfig, distutils.sysconfig, distutils.util, and distutils.unixccompiler
6987 into a new module _osx_support.
6988
6989 C API
6990 -----
6991
6992 - Issue #15610: `PyImport_ImportModuleEx()` now uses a 'level' of 0 instead of -1.
6993
6994 - Issue #15169, issue #14599: Strip out the C implementation of
6995 `imp.source_from_cache()` used by PyImport_ExecCodeModuleWithPathnames() and
6996 used the Python code instead. Leads to PyImport_ExecCodeModuleObject() to not
6997 try to infer the source path from the bytecode path as
6998 PyImport_ExecCodeModuleWithPathnames() does.
6999
7000 Extension Modules
7001 -----------------
7002
7003 - Issue #6493: An issue in ctypes on Windows that caused structure bitfields of
7004 type `ctypes.c_uint32` and width 32 to incorrectly be set has been fixed.
7005
7006 - Issue #15194: Update libffi to the 3.0.11 release.
7007
7008 IDLE
7009 ----
7010
7011 - Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog
7012 ended with ``\``. Patch by Roger Serwy.
7013
7014 Tools/Demos
7015 -----------
7016
7017 - Issue #15458: python-config gets a new option --configdir to print the $LIBPL
7018 value.
7019
7020 - Move importlib.test.benchmark to Tools/importbench.
7021
7022 - Issue #12605: The gdb hooks for debugging CPython (within Tools/gdb) have been
7023 enhanced to show information on more C frames relevant to CPython within the
7024 "py-bt" and "py-bt-full" commands:
7025
7026 * C frames that are waiting on the GIL
7027 * C frames that are garbage-collecting
7028 * C frames that are due to the invocation of a PyCFunction
7029
7030 Documentation
7031 -------------
7032
7033 - Issue #15041: Update "see also" list in tkinter documentation.
7034
7035 - Issue #15444: Use proper spelling for non-ASCII contributor names. Patch by
7036 Serhiy Storchaka.
7037
7038 - Issue #15295: Reorganize and rewrite the documentation on the import system.
7039
7040 - Issue #15230: Clearly document some of the limitations of the runpy module and
7041 nudge readers towards importlib when appropriate.
7042
7043 - Issue #15053: Copy Python 3.3 import lock change notice to all relevant
7044 functions in imp instead of just at the top of the relevant section.
7045
7046 - Issue #15288: Link to the term "loader" in notes in pkgutil about how things
7047 won't work as expected in Python 3.3 and mark the requisite functions as
7048 "changed" since they will no longer work with modules directly imported by
7049 import itself.
7050
7051 - Issue #13557: Clarify effect of giving two different namespaces to `exec()` or
7052 `execfile()`.
7053
7054 - Issue #15250: Document that `filecmp.dircmp()` compares files shallowly. Patch
7055 contributed by Chris Jerdonek.
7056
7057 - Issue #15442: Expose the default list of directories ignored by
7058 `filecmp.dircmp()` as a module attribute, and expand the list to more modern
7059 values.
7060
7061 Tests
7062 -----
7063
7064 - Issue #15467: Move helpers for `__sizeof__()` tests into test_support. Patch
7065 by Serhiy Storchaka.
7066
7067 - Issue #15320: Make iterating the list of tests thread-safe when running tests
7068 in multiprocess mode. Patch by Chris Jerdonek.
7069
7070 - Issue #15168: Move `importlib.test` to `test.test_importlib`.
7071
7072 - Issue #15091: Reactivate a test on UNIX which was failing thanks to a
7073 forgotten `importlib.invalidate_caches()` call.
7074
7075 - Issue #15230: Adopted a more systematic approach in the runpy tests.
7076
7077 - Issue #15300: Ensure the temporary test working directories are in the same
7078 parent folder when running tests in multiprocess mode from a Python build.
7079 Patch by Chris Jerdonek.
7080
7081 - Issue #15284: Skip {send,recv}msg tests in test_socket when IPv6 is not
7082 enabled. Patch by Brian Brazil.
7083
7084 - Issue #15277: Fix a resource leak in support.py when IPv6 is disabled. Patch
7085 by Brian Brazil.
7086
7087 Build
7088 -----
7089
7090 - Issue #11715: Fix multiarch detection without having Debian development tools
7091 (dpkg-dev) installed.
7092
7093 - Issue #15037: Build OS X installers with local copy of ncurses 5.9 libraries
7094 to avoid curses.unget_wch bug present in older versions of ncurses such as
7095 those shipped with OS X.
7096
7097 - Issue #15560: Fix building _sqlite3 extension on OS X with an SDK. Also, for
7098 OS X installers, ensure consistent sqlite3 behavior and feature availability
7099 by building a local copy of libsqlite3 rather than depending on the wide range
7100 of versions supplied with various OS X releases.
7101
7102 - Issue #8847: Disable COMDAT folding in Windows PGO builds.
7103
7104 - Issue #14018: Fix OS X Tcl/Tk framework checking when using OS X SDKs.
7105
7106 - Issue #16256: OS X installer now sets correct permissions for doc directory.
7107
7108 - Issue #15431: Add _freeze_importlib project to regenerate importlib.h on
7109 Windows. Patch by Kristján Valur Jónsson.
7110
7111 - Issue #14197: For OS X framework builds, ensure links to the shared library
7112 are created with the proper ABI suffix.
7113
7114 - Issue #14330: For cross builds, don't use host python, use host search paths
7115 for host compiler.
7116
7117 - Issue #15235: Allow Berkley DB versions up to 5.3 to build the dbm module.
7118
7119 - Issue #15268: Search curses.h in /usr/include/ncursesw.
7120
7121
7122 What's New in Python 3.3.0 Beta 1?
7123 ==================================
7124
7125 *Release date: 27-Jun-2012*
7126
7127 Core and Builtins
7128 -----------------
7129
7130 - Fix a (most likely) very rare memory leak when calling main() and not being
7131 able to decode a command-line argument.
7132
7133 - Issue #14815: Use Py_ssize_t instead of long for the object hash, to
7134 preserve all 64 bits of hash on Win64.
7135
7136 - Issue #12268: File readline, readlines and read() or readall() methods
7137 no longer lose data when an underlying read system call is interrupted.
7138 IOError is no longer raised due to a read system call returning EINTR
7139 from within these methods.
7140
7141 - Issue #11626: Add _SizeT functions to stable ABI.
7142
7143 - Issue #15142: Fix reference leak when deallocating instances of types
7144 created using PyType_FromSpec().
7145
7146 - Issue #10053: Don't close FDs when FileIO.__init__ fails. Loosely based on
7147 the work by Hirokazu Yamamoto.
7148
7149 - Issue #15096: Removed support for ur'' as the raw notation isn't
7150 compatible with Python 2.x's raw unicode strings.
7151
7152 - Issue #13783: Generator objects now use the identifier APIs internally
7153
7154 - Issue #14874: Restore charmap decoding speed to pre-PEP 393 levels.
7155 Patch by Serhiy Storchaka.
7156
7157 - Issue #15026: utf-16 encoding is now significantly faster (up to 10x).
7158 Patch by Serhiy Storchaka.
7159
7160 - Issue #11022: open() and io.TextIOWrapper are now calling
7161 locale.getpreferredencoding(False) instead of locale.getpreferredencoding()
7162 in text mode if the encoding is not specified. Don't change temporary the
7163 locale encoding using locale.setlocale(), use the current locale encoding
7164 instead of the user preferred encoding.
7165
7166 - Issue #14673: Add Eric Snow's sys.implementation implementation.
7167
7168 - Issue #15038: Optimize python Locks on Windows.
7169
7170 Library
7171 -------
7172
7173 - Issue #12288: Consider '0' and '0.0' as valid initialvalue
7174 for tkinter SimpleDialog.
7175
7176 - Issue #15512: Add a __sizeof__ implementation for parser.
7177 Patch by Serhiy Storchaka.
7178
7179 - Issue #15469: Add a __sizeof__ implementation for deque objects.
7180 Patch by Serhiy Storchaka.
7181
7182 - Issue #15489: Add a __sizeof__ implementation for BytesIO objects.
7183 Patch by Serhiy Storchaka.
7184
7185 - Issue #15487: Add a __sizeof__ implementation for buffered I/O objects.
7186 Patch by Serhiy Storchaka.
7187
7188 - Issue #15514: Correct __sizeof__ support for cpu_set.
7189 Patch by Serhiy Storchaka.
7190
7191 - Issue #15177: Added dir_fd parameter to os.fwalk().
7192
7193 - Issue #15061: Re-implemented hmac.compare_digest() in C to prevent further
7194 timing analysis and to support all buffer protocol aware objects as well as
7195 ASCII only str instances safely.
7196
7197 - Issue #15164: Change return value of platform.uname() from a
7198 plain tuple to a collections.namedtuple.
7199
7200 - Support Mageia Linux in the platform module.
7201
7202 - Issue #11678: Support Arch linux in the platform module.
7203
7204 - Issue #15118: Change return value of os.uname() and os.times() from
7205 plain tuples to immutable iterable objects with named attributes
7206 (structseq objects).
7207
7208 - Speed up _decimal by another 10-15% by caching the thread local context
7209 that was last accessed. In the pi benchmark (64-bit platform, prec=9),
7210 _decimal is now only 1.5x slower than float.
7211
7212 - Remove the packaging module, which is not ready for prime time.
7213
7214 - Issue #15154: Add "dir_fd" parameter to os.rmdir, remove "rmdir"
7215 parameter from os.remove / os.unlink.
7216
7217 - Issue #4489: Add a shutil.rmtree that isn't susceptible to symlink attacks.
7218 It is used automatically on platforms supporting the necessary os.openat()
7219 and os.unlinkat() functions. Main code by Martin von Löwis.
7220
7221 - Issue #15156: HTMLParser now uses the new "html.entities.html5" dictionary.
7222
7223 - Issue #11113: add a new "html5" dictionary containing the named character
7224 references defined by the HTML5 standard and the equivalent Unicode
7225 character(s) to the html.entities module.
7226
7227 - Issue #15114: the strict mode of HTMLParser and the HTMLParseError exception
7228 are deprecated now that the parser is able to parse invalid markup.
7229
7230 - Issue #3665: \u and \U escapes are now supported in unicode regular
7231 expressions. Patch by Serhiy Storchaka.
7232
7233 - Issue #15153: Added inspect.getgeneratorlocals to simplify white box
7234 testing of generator state updates
7235
7236 - Issue #13062: Added inspect.getclosurevars to simplify testing stateful
7237 closures
7238
7239 - Issue #11024: Fixes and additional tests for Time2Internaldate.
7240
7241 - Issue #14626: Large refactoring of functions / parameters in the os module.
7242 Many functions now support "dir_fd" and "follow_symlinks" parameters;
7243 some also support accepting an open file descriptor in place of a path
7244 string. Added os.support_* collections as LBYL helpers. Removed many
7245 functions only previously seen in 3.3 alpha releases (often starting with
7246 "f" or "l", or ending with "at"). Originally suggested by Serhiy Storchaka;
7247 implemented by Larry Hastings.
7248
7249 - Issue #15008: Implement PEP 362 "Signature Objects".
7250 Patch by Yury Selivanov.
7251
7252 - Issue #15138: base64.urlsafe_{en,de}code() are now 3-4x faster.
7253
7254 - Issue #444582: Add shutil.which, for finding programs on the system path.
7255 Original patch by Erik Demaine, with later iterations by Jan Killian
7256 and Brian Curtin.
7257
7258 - Issue #14837: SSL errors now have ``library`` and ``reason`` attributes
7259 describing precisely what happened and in which OpenSSL submodule. The
7260 str() of a SSLError is also enhanced accordingly.
7261
7262 - Issue #9527: datetime.astimezone() method will now supply a class
7263 timezone instance corresponding to the system local timezone when
7264 called with no arguments.
7265
7266 - Issue #14653: email.utils.mktime_tz() no longer relies on system
7267 mktime() when timezone offest is supplied.
7268
7269 - Issue #14684: zlib.compressobj() and zlib.decompressobj() now support the use
7270 of predefined compression dictionaries. Original patch by Sam Rushing.
7271
7272 - Fix GzipFile's handling of filenames given as bytes objects.
7273
7274 - Issue #14772: Return destination values from some shutil functions.
7275
7276 - Issue #15064: Implement context management protocol for multiprocessing types
7277
7278 - Issue #15101: Make pool finalizer avoid joining current thread.
7279
7280 - Issue #14657: The frozen instance of importlib used for bootstrap is now
7281 also the module imported as importlib._bootstrap.
7282
7283 - Issue #14055: Add __sizeof__ support to _elementtree.
7284
7285 - Issue #15054: A bug in tokenize.tokenize that caused string literals
7286 with 'b' prefixes to be incorrectly tokenized has been fixed.
7287 Patch by Serhiy Storchaka.
7288
7289 - Issue #15006: Allow equality comparison between naive and aware
7290 time or datetime objects.
7291
7292 - Issue #15036: Mailbox no longer throws an error if a flush is done
7293 between operations when removing or changing multiple items in mbox,
7294 MMDF, or Babyl mailboxes.
7295
7296 - Issue #14059: Implement multiprocessing.Barrier.
7297
7298 - Issue #15061: The inappropriately named hmac.secure_compare has been
7299 renamed to hmac.compare_digest, restricted to operating on bytes inputs
7300 only and had its documentation updated to more accurately reflect both its
7301 intent and its limitations
7302
7303 - Issue #13841: Make child processes exit using sys.exit() on Windows.
7304
7305 - Issue #14936: curses_panel was converted to PEP 3121 and PEP 384 API.
7306 Patch by Robin Schreiber.
7307
7308 - Issue #1667546: On platforms supporting tm_zone and tm_gmtoff fields
7309 in struct tm, time.struct_time objects returned by time.gmtime(),
7310 time.localtime() and time.strptime() functions now have tm_zone and
7311 tm_gmtoff attributes. Original patch by Paul Boddie.
7312
7313 - Rename adjusted attribute to adjustable in time.get_clock_info() result.
7314
7315 - Issue #3518: Remove references to non-existent BaseManager.from_address()
7316 method.
7317
7318 - Issue #13857: Added textwrap.indent() function (initial patch by Ezra
7319 Berch)
7320
7321 - Issue #2736: Added datetime.timestamp() method.
7322
7323 - Issue #13854: Make multiprocessing properly handle non-integer
7324 non-string argument to SystemExit.
7325
7326 - Issue #12157: Make pool.map() empty iterables correctly. Initial
7327 patch by mouad.
7328
7329 - Issue #11823: disassembly now shows argument counts on calls with keyword args.
7330
7331 - Issue #14711: os.stat_float_times() has been deprecated.
7332
7333 - LZMAFile now accepts the modes "rb"/"wb"/"ab" as synonyms of "r"/"w"/"a".
7334
7335 - The bz2 and lzma modules now each contain an open() function, allowing
7336 compressed files to readily be opened in text mode as well as binary mode.
7337
7338 - BZ2File.__init__() and LZMAFile.__init__() now accept a file object as their
7339 first argument, rather than requiring a separate "fileobj" argument.
7340
7341 - gzip.open() now accepts file objects as well as filenames.
7342
7343 - Issue #14992: os.makedirs(path, exist_ok=True) would raise an OSError
7344 when the path existed and had the S_ISGID mode bit set when it was
7345 not explicitly asked for. This is no longer an exception as mkdir
7346 cannot control if the OS sets that bit for it or not.
7347
7348 - Issue #14989: Make the CGI enable option to http.server available via command
7349 line.
7350
7351 - Issue #14987: Add a missing import statement to inspect.
7352
7353 - Issue #1079: email.header.decode_header now correctly parses all the examples
7354 in RFC2047. There is a necessary visible behavior change: the leading and/or
7355 trailing whitespace on ASCII parts is now preserved.
7356
7357 - Issue #14969: Better handling of exception chaining in contextlib.ExitStack
7358
7359 - Issue #14963: Convert contextlib.ExitStack.__exit__ to use an iterative
7360 algorithm (Patch by Alon Horev)
7361
7362 - Issue #14785: Add sys._debugmallocstats() to help debug low-level memory
7363 allocation issues
7364
7365 - Issue #14443: Ensure that .py files are byte-compiled with the correct Python
7366 executable within bdist_rpm even on older versions of RPM
7367
7368 C-API
7369 -----
7370
7371 - Issue #15146: Add PyType_FromSpecWithBases. Patch by Robin Schreiber.
7372
7373 - Issue #15042: Add PyState_AddModule and PyState_RemoveModule. Add version
7374 guard for Py_LIMITED_API additions. Patch by Robin Schreiber.
7375
7376 - Issue #13783: Inadvertent additions to the public C API in the PEP 380
7377 implementation have either been removed or marked as private interfaces.
7378
7379 Extension Modules
7380 -----------------
7381
7382 - Issue #15000: Support the "unique" x32 architecture in _posixsubprocess.c.
7383
7384 IDLE
7385 ----
7386
7387 - Issue #9803: Don't close IDLE on saving if breakpoint is open.
7388 Patch by Roger Serwy.
7389
7390 - Issue #14962: Update text coloring in IDLE shell window after changing
7391 options. Patch by Roger Serwy.
7392
7393 Documentation
7394 -------------
7395
7396 - Issue #15176: Clarified behavior, documentation, and implementation
7397 of os.listdir().
7398
7399 - Issue #14982: Document that pkgutil's iteration functions require the
7400 non-standard iter_modules() method to be defined by an importer (something
7401 the importlib importers do not define).
7402
7403 - Issue #15081: Document PyState_FindModule.
7404 Patch by Robin Schreiber.
7405
7406 - Issue #14814: Added first draft of ipaddress module API reference
7407
7408 Tests
7409 -----
7410
7411 - Issue #15187: Bugfix: remove temporary directories test_shutil was leaving
7412 behind.
7413
7414 - Issue #14769: test_capi now has SkipitemTest, which cleverly checks
7415 for "parity" between PyArg_ParseTuple() and the Python/getargs.c static
7416 function skipitem() for all possible "format units".
7417
7418 - test_nntplib now tolerates being run from behind NNTP gateways that add
7419 "X-Antivirus" headers to articles
7420
7421 - Issue #15043: test_gdb is now skipped entirely if gdb security settings
7422 block loading of the gdb hooks
7423
7424 - Issue #14963: Add test cases for exception handling behaviour
7425 in contextlib.ExitStack (Initial patch by Alon Horev)
7426
7427 Build
7428 -----
7429
7430 - Issue #13590: Improve support for OS X Xcode 4:
7431 * Try to avoid building Python or extension modules with problematic
7432 llvm-gcc compiler.
7433 * Since Xcode 4 removes ppc support, extension module builds now
7434 check for ppc compiler support and automatically remove ppc and
7435 ppc64 archs when not available.
7436 * Since Xcode 4 no longer install SDKs in default locations,
7437 extension module builds now revert to using installed headers
7438 and libs if the SDK used to build the interpreter is not
7439 available.
7440 * Update ./configure to use better defaults for universal builds;
7441 in particular, --enable-universalsdk=yes uses the Xcode default
7442 SDK and --with-universal-archs now defaults to "intel" if ppc
7443 not available.
7444
7445 - Issue #14225: Fix Unicode support for curses (#12567) on OS X
7446
7447 - Issue #14928: Fix importlib bootstrap issues by using a custom executable
7448 (Modules/_freeze_importlib) to build Python/importlib.h.
7449
7450
7451 What's New in Python 3.3.0 Alpha 4?
7452 ===================================
7453
7454 *Release date: 31-May-2012*
7455
7456 Core and Builtins
7457 -----------------
7458
7459 - Issue #14835: Make plistlib output empty arrays & dicts like OS X.
7460 Patch by Sidney San Martín.
7461
7462 - Issue #14744: Use the new _PyUnicodeWriter internal API to speed up
7463 str%args and str.format(args).
7464
7465 - Issue #14930: Make memoryview objects weakrefable.
7466
7467 - Issue #14775: Fix a potential quadratic dict build-up due to the garbage
7468 collector repeatedly trying to untrack dicts.
7469
7470 - Issue #14857: fix regression in references to PEP 3135 implicit __class__
7471 closure variable (Reopens issue #12370)
7472
7473 - Issue #14712 (PEP 405): Virtual environments. Implemented by Vinay Sajip.
7474
7475 - Issue #14660 (PEP 420): Namespace packages. Implemented by Eric Smith.
7476
7477 - Issue #14494: Fix __future__.py and its documentation to note that
7478 absolute imports are the default behavior in 3.0 instead of 2.7.
7479 Patch by Sven Marnach.
7480
7481 - Issue #9260: A finer-grained import lock. Most of the import sequence
7482 now uses per-module locks rather than the global import lock, eliminating
7483 well-known issues with threads and imports.
7484
7485 - Issue #14624: UTF-16 decoding is now 3x to 4x faster on various inputs.
7486 Patch by Serhiy Storchaka.
7487
7488 - asdl_seq and asdl_int_seq are now Py_ssize_t sized.
7489
7490 - Issue #14133 (PEP 415): Implement suppression of __context__ display with an
7491 attribute on BaseException. This replaces the original mechanism of PEP 409.
7492
7493 - Issue #14417: Mutating a dict during lookup now restarts the lookup instead
7494 of raising a RuntimeError (undoes issue #14205).
7495
7496 - Issue #14738: Speed-up UTF-8 decoding on non-ASCII data. Patch by Serhiy
7497 Storchaka.
7498
7499 - Issue #14700: Fix two broken and undefined-behaviour-inducing overflow checks
7500 in old-style string formatting.
7501
7502 Library
7503 -------
7504
7505 - Issue #14690: Use monotonic clock instead of system clock in the sched,
7506 subprocess and trace modules.
7507
7508 - Issue #14443: Tell rpmbuild to use the correct version of Python in
7509 bdist_rpm. Initial patch by Ross Lagerwall.
7510
7511 - Issue #12515: email now registers a defect if it gets to EOF while parsing
7512 a MIME part without seeing the closing MIME boundary.
7513
7514 - Issue #1672568: email now always decodes base64 payloads, adding padding and
7515 ignoring non-base64-alphabet characters if needed, and registering defects
7516 for any such problems.
7517
7518 - Issue #14925: email now registers a defect when the parser decides that there
7519 is a missing header/body separator line. MalformedHeaderDefect, which the
7520 existing code would never actually generate, is deprecated.
7521
7522 - Issue #10365: File open dialog now works instead of crashing even when
7523 the parent window is closed before the dialog. Patch by Roger Serwy.
7524
7525 - Issue #8739: Updated smtpd to support RFC 5321, and added support for the
7526 RFC 1870 SIZE extension.
7527
7528 - Issue #665194: Added a localtime function to email.utils to provide an
7529 aware local datetime for use in setting Date headers.
7530
7531 - Issue #12586: Added new provisional policies that implement convenient
7532 unicode support for email headers. See What's New for details.
7533
7534 - Issue #14731: Refactored email Policy framework to support full backward
7535 compatibility with Python 3.2 by default yet allow for the introduction of
7536 new features through new policies. Note that Policy.must_be_7bit is renamed
7537 to cte_type.
7538
7539 - Issue #14876: Use user-selected font for highlight configuration.
7540
7541 - Issue #14920: Fix the help(urllib.parse) failure on locale C on terminals.
7542 Have ascii characters in help.
7543
7544 - Issue #14548: Make multiprocessing finalizers check pid before
7545 running to cope with possibility of gc running just after fork.
7546
7547 - Issue #14036: Add an additional check to validate that port in urlparse does
7548 not go in illegal range and returns None.
7549
7550 - Issue #14862: Add missing names to os.__all__
7551
7552 - Issue #14875: Use float('inf') instead of float('1e66666') in the json module.
7553
7554 - Issue #13585: Added contextlib.ExitStack
7555
7556 - PEP 3144, Issue #14814: Added the ipaddress module
7557
7558 - Issue #14426: Correct the Date format in Expires attribute of Set-Cookie
7559 Header in Cookie.py.
7560
7561 - Issue #14588: The types module now provide new_class() and prepare_class()
7562 functions to support PEP 3115 compliant dynamic class creation. Patch by
7563 Daniel Urban and Nick Coghlan.
7564
7565 - Issue #13152: Allow specifying a custom tabsize for expanding tabs in
7566 textwrap. Patch by John Feuerstein.
7567
7568 - Issue #14721: Send the correct 'Content-length: 0' header when the body is an
7569 empty string ''. Initial Patch contributed by Arve Knudsen.
7570
7571 - Issue #14072: Fix parsing of 'tel' URIs in urlparse by making the check for
7572 ports stricter.
7573
7574 - Issue #9374: Generic parsing of query and fragment portions of url for any
7575 scheme. Supported both by RFC3986 and RFC2396.
7576
7577 - Issue #14798: Fix the functions in pyclbr to raise an ImportError
7578 when the first part of a dotted name is not a package. Patch by
7579 Xavier de Gaye.
7580
7581 - Issue #12098: multiprocessing on Windows now starts child processes
7582 using the same sys.flags as the current process. Initial patch by
7583 Sergey Mezentsev.
7584
7585 - Issue #13031: Small speed-up for tarfile when unzipping tarfiles.
7586 Patch by Justin Peel.
7587
7588 - Issue #14780: urllib.request.urlopen() now has a ``cadefault`` argument
7589 to use the default certificate store. Initial patch by James Oakley.
7590
7591 - Issue #14829: Fix bisect and range() indexing with large indices
7592 (>= 2 ** 32) under 64-bit Windows.
7593
7594 - Issue #14732: The _csv module now uses PEP 3121 module initialization.
7595 Patch by Robin Schreiber.
7596
7597 - Issue #14809: Add HTTP status codes introduced by RFC 6585 to http.server
7598 and http.client. Patch by EungJun Yi.
7599
7600 - Issue #14777: tkinter may return undecoded UTF-8 bytes as a string when
7601 accessing the Tk clipboard. Modify clipboard_get() to first request type
7602 UTF8_STRING when no specific type is requested in an X11 windowing
7603 environment, falling back to the current default type STRING if that fails.
7604 Original patch by Thomas Kluyver.
7605
7606 - Issue #14773: Fix os.fwalk() failing on dangling symlinks.
7607
7608 - Issue #12541: Be lenient with quotes around Realm field of HTTP Basic
7609 Authentation in urllib2.
7610
7611 - Issue #14807: move undocumented tarfile.filemode() to stat.filemode() and add
7612 doc entry. Add tarfile.filemode alias with deprecation warning.
7613
7614 - Issue #13815: TarFile.extractfile() now returns io.BufferedReader objects.
7615
7616 - Issue #14532: Add a secure_compare() helper to the hmac module, to mitigate
7617 timing attacks. Patch by Jon Oberheide.
7618
7619 - Add importlib.util.resolve_name().
7620
7621 - Issue #14366: Support lzma compression in zip files.
7622 Patch by Serhiy Storchaka.
7623
7624 - Issue #13959: Introduce importlib.find_loader() and document
7625 imp.find_module/load_module as deprecated.
7626
7627 - Issue #14082: shutil.copy2() now copies extended attributes, if possible.
7628 Patch by Hynek Schlawack.
7629
7630 - Issue #13959: Make importlib.abc.FileLoader.load_module()/get_filename() and
7631 importlib.machinery.ExtensionFileLoader.load_module() have their single
7632 argument be optional. Allows for the replacement (and thus deprecation) of
7633 imp.load_source()/load_package()/load_compiled().
7634
7635 - Issue #13959: imp.get_suffixes() has been deprecated in favour of the new
7636 attributes on importlib.machinery: SOURCE_SUFFIXES, DEBUG_BYTECODE_SUFFIXES,
7637 OPTIMIZED_BYTECODE_SUFFIXES, BYTECODE_SUFFIXES, and EXTENSION_SUFFIXES. This
7638 led to an indirect deprecation of inspect.getmoduleinfo().
7639
7640 - Issue #14662: Prevent shutil failures on OS X when destination does not
7641 support chflag operations. Patch by Hynek Schlawack.
7642
7643 - Issue #14157: Fix time.strptime failing without a year on February 29th.
7644 Patch by Hynek Schlawack.
7645
7646 - Issue #14753: Make multiprocessing's handling of negative timeouts
7647 the same as it was in Python 3.2.
7648
7649 - Issue #14583: Fix importlib bug when a package's __init__.py would first
7650 import one of its modules then raise an error.
7651
7652 - Issue #14741: Fix missing support for Ellipsis ('...') in parser module.
7653
7654 - Issue #14697: Fix missing support for set displays and set comprehensions in
7655 parser module.
7656
7657 - Issue #14701: Fix missing support for 'raise ... from' in parser module.
7658
7659 - Add support for timeouts to the acquire() methods of
7660 multiprocessing's lock/semaphore/condition proxies.
7661
7662 - Issue #13989: Add support for text mode to gzip.open().
7663
7664 - Issue #14127: The os.stat() result object now provides three additional
7665 fields: st_ctime_ns, st_mtime_ns, and st_atime_ns, providing those times as an
7666 integer with nanosecond resolution. The functions os.utime(), os.lutimes(),
7667 and os.futimes() now accept a new parameter, ns, which accepts mtime and atime
7668 as integers with nanosecond resolution.
7669
7670 - Issue #14127 and #10148: shutil.copystat now preserves exact mtime and atime
7671 on filesystems providing nanosecond resolution.
7672
7673 IDLE
7674 ----
7675
7676 - Issue #14958: Change IDLE systax highlighting to recognize all string and
7677 byte literals supported in Python 3.3.
7678
7679 - Issue #10997: Prevent a duplicate entry in IDLE's "Recent Files" menu.
7680
7681 - Issue #14929: Stop IDLE 3.x from closing on Unicode decode errors when
7682 grepping. Patch by Roger Serwy.
7683
7684 - Issue #12510: Attempting to get invalid tooltip no longer closes IDLE.
7685 Other tooltipss have been corrected or improved and the number of tests
7686 has been tripled. Original patch by Roger Serwy.
7687
7688 Tools/Demos
7689 -----------
7690
7691 - Issue #14695: Bring Tools/parser/unparse.py support up to date with
7692 the Python 3.3 Grammar.
7693
7694 Build
7695 -----
7696
7697 - Issue #14472: Update .gitignore. Patch by Matej Cepl.
7698
7699 - Upgrade Windows library versions: bzip 1.0.6, OpenSSL 1.0.1c.
7700
7701 - Issue #14693: Under non-Windows platforms, hashlib's fallback modules are
7702 always compiled, even if OpenSSL is present at build time.
7703
7704 - Issue #13210: Windows build now uses VS2010, ported from VS2008.
7705
7706 C-API
7707 -----
7708
7709 - Issue #14705: The PyArg_Parse() family of functions now support the 'p' format
7710 unit, which accepts a "boolean predicate" argument. It converts any Python
7711 value into an integer--0 if it is "false", and 1 otherwise.
7712
7713 Documentation
7714 -------------
7715
7716 - Issue #14863: Update the documentation of os.fdopen() to reflect the
7717 fact that it's only a thin wrapper around open() anymore.
7718
7719 - Issue #14588: The language reference now accurately documents the Python 3
7720 class definition process. Patch by Nick Coghlan.
7721
7722 - Issue #14943: Correct a default argument value for winreg.OpenKey
7723 and correctly list the argument names in the function's explanation.
7724
7725
7726 What's New in Python 3.3.0 Alpha 3?
7727 ===================================
7728
7729 *Release date: 01-May-2012*
7730
7731 Core and Builtins
7732 -----------------
7733
7734 - Issue #14699: Fix calling the classmethod descriptor directly.
7735
7736 - Issue #14433: Prevent msvcrt crash in interactive prompt when stdin is closed.
7737
7738 - Issue #14521: Make result of float('nan') and float('-nan') more consistent
7739 across platforms.
7740
7741 - Issue #14646: __import__() sets __loader__ if the loader did not.
7742
7743 - Issue #14605: No longer have implicit entries in sys.meta_path. If
7744 sys.meta_path is found to be empty, raise ImportWarning.
7745
7746 - Issue #14605: No longer have implicit entries in sys.path_hooks. If
7747 sys.path_hooks is found to be empty, a warning will be raised. None is now
7748 inserted into sys.path_importer_cache if no finder was discovered. This also
7749 means imp.NullImporter is no longer implicitly used.
7750
7751 - Issue #13903: Implement PEP 412. Individual dictionary instances can now share
7752 their keys with other dictionaries. Classes take advantage of this to share
7753 their instance dictionary keys for improved memory and performance.
7754
7755 - Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError
7756 when repr() or str() is called on such an object.
7757
7758 - Issue #14658: Fix binding a special method to a builtin implementation of a
7759 special method with a different name.
7760
7761 - Issue #14630: Fix a memory access bug for instances of a subclass of int
7762 with value 0.
7763
7764 - Issue #14339: Speed improvements to bin, oct and hex functions. Patch by
7765 Serhiy Storchaka.
7766
7767 - Issue #14385: It is now possible to use a custom type for the __builtins__
7768 namespace, instead of a dict. It can be used for sandboxing for example.
7769 Raise also a NameError instead of ImportError if __build_class__ name if not
7770 found in __builtins__.
7771
7772 - Issue #12599: Be more strict in accepting None compared to a false-like
7773 object for importlib.util.module_for_loader and
7774 importlib.machinery.PathFinder.
7775
7776 - Issue #14612: Fix jumping around with blocks by setting f_lineno.
7777
7778 - Issue #14592: Attempting a relative import w/o __package__ or __name__ set in
7779 globals raises a KeyError.
7780
7781 - Issue #14607: Fix keyword-only arguments which started with ``__``.
7782
7783 - Issue #10854: The ImportError raised when an extension module on Windows
7784 fails to import now uses the new path and name attributes from
7785 Issue #1559549.
7786
7787 - Issue #13889: Check and (if necessary) set FPU control word before calling
7788 any of the dtoa.c string <-> float conversion functions, on MSVC builds of
7789 Python. This fixes issues when embedding Python in a Delphi app.
7790
7791 - __import__() now matches PEP 328 and documentation by defaulting 'index' to 0
7792 instead of -1 and removing support for negative values.
7793
7794 - Issue #2377: Make importlib the implementation of __import__().
7795
7796 - Issue #1559549: ImportError now has 'name' and 'path' attributes that are set
7797 using keyword arguments to its constructor. They are currently not set by
7798 import as they are meant for use by importlib.
7799
7800 - Issue #14474: Save and restore exception state in thread.start_new_thread()
7801 while writing error message if the thread leaves an unhandled exception.
7802
7803 - Issue #13019: Fix potential reference leaks in bytearray.extend(). Patch
7804 by Suman Saha.
7805
7806 Library
7807 -------
7808
7809 - Issue #14768: os.path.expanduser('~/a') doesn't work correctly when HOME is '/'.
7810
7811 - Issue #14371: Support bzip2 in zipfile module. Patch by Serhiy Storchaka.
7812
7813 - Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running
7814 step. Patch by Xavier de Gaye.
7815
7816 - Issue #14696: Fix parser module to understand 'nonlocal' declarations.
7817
7818 - Issue #10941: Fix imaplib.Internaldate2tuple to produce correct result near
7819 the DST transition. Patch by Joe Peterson.
7820
7821 - Issue #9154: Fix parser module to understand function annotations.
7822
7823 - Issue #6085: In http.server.py SimpleHTTPServer.address_string returns the
7824 client ip address instead client hostname. Patch by Charles-François Natali.
7825
7826 - Issue #14309: Deprecate time.clock(), use time.perf_counter() or
7827 time.process_time() instead.
7828
7829 - Issue #14428: Implement the PEP 418. Add time.get_clock_info(),
7830 time.perf_counter() and time.process_time() functions, and rename
7831 time.steady() to time.monotonic().
7832
7833 - Issue #14646: importlib.util.module_for_loader() now sets __loader__ and
7834 __package__ (when possible).
7835
7836 - Issue #14664: It is now possible to use @unittest.skip{If,Unless} on a
7837 test class that doesn't inherit from TestCase (i.e. a mixin).
7838
7839 - Issue #4892: multiprocessing Connections can now be transferred over
7840 multiprocessing Connections. Patch by Richard Oudkerk (sbt).
7841
7842 - Issue #14160: TarFile.extractfile() failed to resolve symbolic links when
7843 the links were not located in an archive subdirectory.
7844
7845 - Issue #14638: pydoc now treats non-string __name__ values as if they
7846 were missing, instead of raising an error.
7847
7848 - Issue #13684: Fix httplib tunnel issue of infinite loops for certain sites
7849 which send EOF without trailing \r\n.
7850
7851 - Issue #14605: Add importlib.abc.FileLoader, importlib.machinery.(FileFinder,
7852 SourceFileLoader, SourcelessFileLoader, ExtensionFileLoader).
7853
7854 - Issue #13959: imp.cache_from_source()/source_from_cache() now follow
7855 os.path.join()/split() semantics for path manipulation instead of its prior,
7856 custom semantics of caring the right-most path separator forward in path
7857 joining.
7858
7859 - Issue #2193: Allow ":" character in Cookie NAME values.
7860
7861 - Issue #14629: tokenizer.detect_encoding will specify the filename in the
7862 SyntaxError exception if found at readline.__self__.name.
7863
7864 - Issue #14629: Raise SyntaxError in tokenizer.detect_encoding if the
7865 first two lines have non-UTF-8 characters without an encoding declaration.
7866
7867 - Issue #14308: Fix an exception when a "dummy" thread is in the threading
7868 module's active list after a fork().
7869
7870 - Issue #11750: The Windows API functions scattered in the _subprocess and
7871 _multiprocessing.win32 modules now live in a single module "_winapi".
7872 Patch by sbt.
7873
7874 - Issue #14087: multiprocessing: add Condition.wait_for(). Patch by sbt.
7875
7876 - Issue #14538: HTMLParser can now parse correctly start tags that contain
7877 a bare '/'.
7878
7879 - Issue #14452: SysLogHandler no longer inserts a UTF-8 BOM into the message.
7880
7881 - Issue #14386: Expose the dict_proxy internal type as types.MappingProxyType.
7882
7883 - Issue #13959: Make imp.reload() always use a module's __loader__ to perform
7884 the reload.
7885
7886 - Issue #13959: Add imp.py and rename the built-in module to _imp, allowing for
7887 re-implementing parts of the module in pure Python.
7888
7889 - Issue #13496: Fix potential overflow in bisect.bisect algorithm when applied
7890 to a collection of size > sys.maxsize / 2.
7891
7892 - Have importlib take advantage of ImportError's new 'name' and 'path'
7893 attributes.
7894
7895 - Issue #14399: zipfile now recognizes that the archive has been modified even
7896 if only the comment is changed. In addition, the TypeError that results from
7897 trying to set a non-binary value as a comment is now raised at the time
7898 the comment is set rather than at the time the zipfile is written.
7899
7900 - trace.CoverageResults.is_ignored_filename() now ignores any name that starts
7901 with "<" and ends with ">" instead of special-casing "<string>" and
7902 "<doctest ".
7903
7904 - Issue #12537: The mailbox module no longer depends on knowledge of internal
7905 implementation details of the email package Message object.
7906
7907 - Issue #7978: socketserver now restarts the select() call when EINTR is
7908 returned. This avoids crashing the server loop when a signal is received.
7909 Patch by Jerzy Kozera.
7910
7911 - Issue #14522: Avoid duplicating socket handles in multiprocessing.connection.
7912 Patch by sbt.
7913
7914 - Don't Py_DECREF NULL variable in io.IncrementalNewlineDecoder.
7915
7916 - Issue #3033: Add displayof parameter to tkinter font. Patch by Guilherme Polo.
7917
7918 - Issue #14482: Raise a ValueError, not a NameError, when trying to create
7919 a multiprocessing Client or Listener with an AF_UNIX type address under
7920 Windows. Patch by Popa Claudiu.
7921
7922 - Issue #802310: Generate always unique tkinter font names if not directly passed.
7923
7924 - Issue #14151: Raise a ValueError, not a NameError, when trying to create
7925 a multiprocessing Client or Listener with an AF_PIPE type address under
7926 non-Windows platforms. Patch by Popa Claudiu.
7927
7928 - Issue #14493: Use gvfs-open or xdg-open in webbrowser.
7929
7930 Build
7931 -----
7932
7933 - "make touch" will now touch generated files that are checked into Mercurial,
7934 after a "hg update" which failed to bring the timestamps into the right order.
7935
7936 Tests
7937 -----
7938
7939 - Issue #14026: In test_cmd_line_script, check that sys.argv is populated
7940 correctly for the various invocation approaches (Patch by Jason Yeo)
7941
7942 - Issue #14032: Fix incorrect variable name in test_cmd_line_script debugging
7943 message (Patch by Jason Yeo)
7944
7945 - Issue #14589: Update certificate chain for sha256.tbs-internet.com, fixing
7946 a test failure in test_ssl.
7947
7948 - Issue #14355: Regrtest now supports the standard unittest test loading, and
7949 will use it if a test file contains no `test_main` method.
7950
7951 IDLE
7952 ----
7953
7954 - Issue #8515: Set __file__ when run file in IDLE.
7955 Initial patch by Bruce Frederiksen.
7956
7957 - Issue #14496: Fix wrong name in idlelib/tabbedpages.py.
7958 Patch by Popa Claudiu.
7959
7960 Tools / Demos
7961 -------------
7962
7963 - Issue #3561: The Windows installer now has an option, off by default, for
7964 placing the Python installation into the system "Path" environment variable.
7965
7966 - Issue #13165: stringbench is now available in the Tools/stringbench folder.
7967 It used to live in its own SVN project.
7968
7969 C-API
7970 -----
7971
7972 - Issue #14098: New functions PyErr_GetExcInfo and PyErr_SetExcInfo.
7973 Patch by Stefan Behnel.
7974
7975
7976 What's New in Python 3.3.0 Alpha 2?
7977 ===================================
7978
7979 *Release date: 01-Apr-2012*
7980
7981 Core and Builtins
7982 -----------------
7983
7984 - Issue #1683368: object.__new__ and object.__init__ raise a TypeError if they
7985 are passed arguments and their complementary method is not overridden.
7986
7987 - Issue #14378: Fix compiling ast.ImportFrom nodes with a "__future__" string as
7988 the module name that was not interned.
7989
7990 - Issue #14331: Use significantly less stack space when importing modules by
7991 allocating path buffers on the heap instead of the stack.
7992
7993 - Issue #14334: Prevent in a segfault in type.__getattribute__ when it was not
7994 passed strings.
7995
7996 - Issue #1469629: Allow cycles through an object's __dict__ slot to be
7997 collected. (For example if ``x.__dict__ is x``).
7998
7999 - Issue #14205: dict lookup raises a RuntimeError if the dict is modified
8000 during a lookup.
8001
8002 - Issue #14220: When a generator is delegating to another iterator with the
8003 yield from syntax, it needs to have its ``gi_running`` flag set to True.
8004
8005 - Issue #14435: Remove dedicated block allocator from floatobject.c and rely
8006 on the PyObject_Malloc() api like all other objects.
8007
8008 - Issue #14471: Fix a possible buffer overrun in the winreg module.
8009
8010 - Issue #14288: Allow the serialization of builtin iterators
8011
8012 Library
8013 -------
8014
8015 - Issue #14300: Under Windows, sockets created using socket.dup() now allow
8016 overlapped I/O. Patch by sbt.
8017
8018 - Issue #13872: socket.detach() now marks the socket closed (as mirrored
8019 in the socket repr()). Patch by Matt Joiner.
8020
8021 - Issue #14406: Fix a race condition when using ``concurrent.futures.wait(
8022 return_when=ALL_COMPLETED)``. Patch by Matt Joiner.
8023
8024 - Issue #5136: deprecate old, unused functions from tkinter.
8025
8026 - Issue #14416: syslog now defines the LOG_ODELAY and LOG_AUTHPRIV constants
8027 if they are defined in <syslog.h>.
8028
8029 - Issue #14295: Add unittest.mock
8030
8031 - Issue #7652: Add --with-system-libmpdec option to configure for linking
8032 the _decimal module against an installed libmpdec.
8033
8034 - Issue #14380: MIMEText now defaults to utf-8 when passed non-ASCII unicode
8035 with no charset specified.
8036
8037 - Issue #10340: asyncore - properly handle EINVAL in dispatcher constructor on
8038 OSX; avoid to call handle_connect in case of a disconnected socket which
8039 was not meant to connect.
8040
8041 - Issue #14204: The ssl module now has support for the Next Protocol
8042 Negotiation extension, if available in the underlying OpenSSL library.
8043 Patch by Colin Marc.
8044
8045 - Issue #3035: Unused functions from tkinter are marked as pending deprecated.
8046
8047 - Issue #12757: Fix the skipping of doctests when python is run with -OO so
8048 that it works in unittest's verbose mode as well as non-verbose mode.
8049
8050 - Issue #7652: Integrate the decimal floating point libmpdec library to speed
8051 up the decimal module. Performance gains of the new C implementation are
8052 between 10x and 100x, depending on the application.
8053
8054 - Issue #14269: SMTPD now conforms to the RFC and requires a HELO command
8055 before MAIL, RCPT, or DATA.
8056
8057 - Issue #13694: asynchronous connect in asyncore.dispatcher does not set addr
8058 attribute.
8059
8060 - Issue #14344: fixed the repr of email.policy objects.
8061
8062 - Issue #11686: Added missing entries to email package __all__ lists
8063 (mostly the new Bytes classes).
8064
8065 - Issue #14335: multiprocessing's custom Pickler subclass now inherits from
8066 the C-accelerated implementation. Patch by sbt.
8067
8068 - Issue #10484: Fix the CGIHTTPServer's PATH_INFO handling problem.
8069
8070 - Issue #11199: Fix the with urllib which hangs on particular ftp urls.
8071
8072 - Improve the memory utilization and speed of functools.lru_cache.
8073
8074 - Issue #14222: Use the new time.steady() function instead of time.time() for
8075 timeout in queue and threading modules to not be affected of system time
8076 update.
8077
8078 - Issue #13248: Remove lib2to3.pytree.Base.get_prefix/set_prefix.
8079
8080 - Issue #14234: CVE-2012-0876: Randomize hashes of xml attributes in the hash
8081 table internal to the pyexpat module's copy of the expat library to avoid a
8082 denial of service due to hash collisions. Patch by David Malcolm with some
8083 modifications by the expat project.
8084
8085 - Issue #12818: format address no longer needlessly \ escapes ()s in names when
8086 the name ends up being quoted.
8087
8088 - Issue #14062: BytesGenerator now correctly folds Header objects,
8089 including using linesep when folding.
8090
8091 - Issue #13839: When invoked on the command-line, the pstats module now
8092 accepts several filenames of profile stat files and merges them all.
8093 Patch by Matt Joiner.
8094
8095 - Issue #14291: Email now defaults to utf-8 for non-ASCII unicode headers
8096 instead of raising an error. This fixes a regression relative to 2.7.
8097
8098 - Issue #989712: Support using Tk without a mainloop.
8099
8100 - Issue #3835: Refuse to use unthreaded Tcl in threaded Python.
8101
8102 - Issue #2843: Add new Tk API to Tkinter.
8103
8104 - Issue #14184: Increase the default stack size for secondary threads on
8105 Mac OS X to avoid interpreter crashes when using threads on 10.7.
8106
8107 - Issue #14180: datetime.date.fromtimestamp(),
8108 datetime.datetime.fromtimestamp() and datetime.datetime.utcfromtimestamp()
8109 now raise an OSError instead of ValueError if localtime() or gmtime() failed.
8110
8111 - Issue #14180: time.ctime(), gmtime(), time.localtime(),
8112 datetime.date.fromtimestamp(), datetime.datetime.fromtimestamp() and
8113 datetime.datetime.utcfromtimestamp() now raises an OverflowError, instead of
8114 a ValueError, if the timestamp does not fit in time_t.
8115
8116 - Issue #14180: datetime.datetime.fromtimestamp() and
8117 datetime.datetime.utcfromtimestamp() now round microseconds towards zero
8118 instead of rounding to nearest with ties going away from zero.
8119
8120 - Issue #10543: Fix unittest test discovery with Jython bytecode files.
8121
8122 - Issue #1178863: Separate initialisation from setting when initializing
8123 Tkinter.Variables; harmonize exceptions to ValueError; only delete variables
8124 that have not been deleted; assert that variable names are strings.
8125
8126 - Issue #14104: Implement time.monotonic() on Mac OS X, patch written by
8127 Nicholas Riley.
8128
8129 - Issue #13394: the aifc module now uses warnings.warn() to signal warnings.
8130
8131 - Issue #14252: Fix subprocess.Popen.terminate() to not raise an error under
8132 Windows when the child process has already exited.
8133
8134 - Issue #14223: curses.addch() is no more limited to the range 0-255 when the
8135 Python curses is not linked to libncursesw. It was a regression introduced
8136 in Python 3.3a1.
8137
8138 - Issue #14168: Check for presence of Element._attrs in minidom before
8139 accessing it.
8140
8141 - Issue #12328: Fix multiprocessing's use of overlapped I/O on Windows.
8142 Also, add a multiprocessing.connection.wait(rlist, timeout=None) function
8143 for polling multiple objects at once. Patch by sbt.
8144
8145 - Issue #14007: Accept incomplete TreeBuilder objects (missing start, end,
8146 data or close method) for the Python implementation as well.
8147 Drop the no-op TreeBuilder().xml() method from the C implementation.
8148
8149 - Issue #14210: pdb now has tab-completion not only for command names, but
8150 also for their arguments, wherever possible.
8151
8152 - Issue #14310: Sockets can now be with other processes on Windows using
8153 the api socket.socket.share() and socket.fromshare().
8154
8155 - Issue #10576: The gc module now has a 'callbacks' member that will get
8156 called when garbage collection takes place.
8157
8158 Build
8159 -----
8160
8161 - Issue #14557: Fix extensions build on HP-UX. Patch by Adi Roiban.
8162
8163 - Issue #14387: Do not include accu.h from Python.h.
8164
8165 - Issue #14359: Only use O_CLOEXEC in _posixmodule.c if it is defined.
8166 Based on patch from Hervé Coatanhay.
8167
8168 - Issue #14321: Do not run pgen during the build if files are up to date.
8169
8170 Documentation
8171 -------------
8172
8173 - Issue #14034: added the argparse tutorial.
8174
8175 - Issue #14324: Fix configure tests for cross builds.
8176
8177 - Issue #14327: Call AC_CANONICAL_HOST in configure.ac and check in
8178 config.{guess,sub}. Don't use uname calls for cross builds.
8179
8180 Extension Modules
8181 -----------------
8182
8183 - Issue #9041: An issue in ctypes.c_longdouble, ctypes.c_double, and
8184 ctypes.c_float that caused an incorrect exception to be returned in the
8185 case of overflow has been fixed.
8186
8187 - Issue #14212: The re module didn't retain a reference to buffers it was
8188 scanning, resulting in segfaults.
8189
8190 - Issue #14259: The finditer() method of re objects did not take any
8191 keyword arguments, contrary to the documentation.
8192
8193 - Issue #10142: Support for SEEK_HOLE/SEEK_DATA (for example, under ZFS).
8194
8195 Tests
8196 -----
8197
8198 - Issue #14442: Add missing errno import in test_smtplib.
8199
8200 - Issue #8315: (partial fix) python -m unittest test.test_email now works.
8201
8202
8203 What's New in Python 3.3.0 Alpha 1?
8204 ===================================
8205
8206 *Release date: 05-Mar-2012*
8207
8208 Core and Builtins
8209 -----------------
8210
8211 - Issue #14172: Fix reference leak when marshalling a buffer-like object
8212 (other than a bytes object).
8213
8214 - Issue #13521: dict.setdefault() now does only one lookup for the given key,
8215 making it "atomic" for many purposes. Patch by Filip Gruszczyński.
8216
8217 - PEP 409, Issue #6210: "raise X from None" is now supported as a means of
8218 suppressing the display of the chained exception context. The chained
8219 context still remains available as the __context__ attribute.
8220
8221 - Issue #10181: New memoryview implementation fixes multiple ownership
8222 and lifetime issues of dynamically allocated Py_buffer members (#9990)
8223 as well as crashes (#8305, #7433). Many new features have been added
8224 (See whatsnew/3.3), and the documentation has been updated extensively.
8225 The ndarray test object from _testbuffer.c implements all aspects of
8226 PEP-3118, so further development towards the complete implementation
8227 of the PEP can proceed in a test-driven manner.
8228
8229 Thanks to Nick Coghlan, Antoine Pitrou and Pauli Virtanen for review
8230 and many ideas.
8231
8232 - Issue #12834: Fix incorrect results of memoryview.tobytes() for
8233 non-contiguous arrays.
8234
8235 - Issue #5231: Introduce memoryview.cast() method that allows changing
8236 format and shape without making a copy of the underlying memory.
8237
8238 - Issue #14084: Fix a file descriptor leak when importing a module with a
8239 bad encoding.
8240
8241 - Upgrade Unicode data to Unicode 6.1.
8242
8243 - Issue #14040: Remove rarely used file name suffixes for C extensions
8244 (under POSIX mainly).
8245
8246 - Issue #14051: Allow arbitrary attributes to be set of classmethod and
8247 staticmethod.
8248
8249 - Issue #13703: oCERT-2011-003: Randomize hashes of str and bytes to protect
8250 against denial of service attacks due to hash collisions within the dict and
8251 set types. Patch by David Malcolm, based on work by Victor Stinner.
8252
8253 - Issue #13020: Fix a reference leak when allocating a structsequence object
8254 fails. Patch by Suman Saha.
8255
8256 - Issue #13908: Ready types returned from PyType_FromSpec.
8257
8258 - Issue #11235: Fix OverflowError when trying to import a source file whose
8259 modification time doesn't fit in a 32-bit timestamp.
8260
8261 - Issue #12705: A SyntaxError exception is now raised when attempting to
8262 compile multiple statements as a single interactive statement.
8263
8264 - Fix the builtin module initialization code to store the init function for
8265 future reinitialization.
8266
8267 - Issue #8052: The posix subprocess module would take a long time closing
8268 all possible file descriptors in the child process rather than just open
8269 file descriptors. It now closes only the open fds if possible for the
8270 default close_fds=True behavior.
8271
8272 - Issue #13629: Renumber the tokens in token.h so that they match the indexes
8273 into _PyParser_TokenNames.
8274
8275 - Issue #13752: Add a casefold() method to str.
8276
8277 - Issue #13761: Add a "flush" keyword argument to the print() function,
8278 used to ensure flushing the output stream.
8279
8280 - Issue #13645: pyc files now contain the size of the corresponding source
8281 code, to avoid timestamp collisions (especially on filesystems with a low
8282 timestamp resolution) when checking for freshness of the bytecode.
8283
8284 - PEP 380, Issue #11682: Add "yield from <x>" to support easy delegation to
8285 subgenerators (initial patch by Greg Ewing, integration into 3.3 by
8286 Renaud Blanch, Ryan Kelly, Zbigniew Jędrzejewski-Szmek and Nick Coghlan)
8287
8288 - Issue #13748: Raw bytes literals can now be written with the ``rb`` prefix
8289 as well as ``br``.
8290
8291 - Issue #12736: Use full unicode case mappings for upper, lower, and title case.
8292
8293 - Issue #12760: Add a create mode to open(). Patch by David Townshend.
8294
8295 - Issue #13738: Simplify implementation of bytes.lower() and bytes.upper().
8296
8297 - Issue #13577: Built-in methods and functions now have a __qualname__.
8298 Patch by sbt.
8299
8300 - Issue #6695: Full garbage collection runs now clear the freelist of set
8301 objects. Initial patch by Matthias Troffaes.
8302
8303 - Fix OSError.__init__ and OSError.__new__ so that each of them can be
8304 overridden and take additional arguments (followup to issue #12555).
8305
8306 - Fix the fix for issue #12149: it was incorrect, although it had the side
8307 effect of appearing to resolve the issue. Thanks to Mark Shannon for
8308 noticing.
8309
8310 - Issue #13505: Pickle bytes objects in a way that is compatible with
8311 Python 2 when using protocols <= 2.
8312
8313 - Issue #11147: Fix an unused argument in _Py_ANNOTATE_MEMORY_ORDER. (Fix
8314 given by Campbell Barton).
8315
8316 - Issue #13503: Use a more efficient reduction format for bytearrays with
8317 pickle protocol >= 3. The old reduction format is kept with older protocols
8318 in order to allow unpickling under Python 2. Patch by Irmen de Jong.
8319
8320 - Issue #7111: Python can now be run without a stdin, stdout or stderr
8321 stream. It was already the case with Python 2. However, the corresponding
8322 sys module entries are now set to None (instead of an unusable file object).
8323
8324 - Issue #11849: Ensure that free()d memory arenas are really released
8325 on POSIX systems supporting anonymous memory mappings. Patch by
8326 Charles-François Natali.
8327
8328 - PEP 3155 / issue #13448: Qualified name for classes and functions.
8329
8330 - Issue #13436: Fix a bogus error message when an AST object was passed
8331 an invalid integer value.
8332
8333 - Issue #13411: memoryview objects are now hashable when the underlying
8334 object is hashable.
8335
8336 - Issue #13338: Handle all enumerations in _Py_ANNOTATE_MEMORY_ORDER
8337 to allow compiling extension modules with -Wswitch-enum on gcc.
8338 Initial patch by Floris Bruynooghe.
8339
8340 - Issue #10227: Add an allocation cache for a single slice object. Patch by
8341 Stefan Behnel.
8342
8343 - Issue #13393: BufferedReader.read1() now asks the full requested size to
8344 the raw stream instead of limiting itself to the buffer size.
8345
8346 - Issue #13392: Writing a pyc file should now be atomic under Windows as well.
8347
8348 - Issue #13333: The UTF-7 decoder now accepts lone surrogates (the encoder
8349 already accepts them).
8350
8351 - Issue #13389: Full garbage collection passes now clear the freelists for
8352 list and dict objects. They already cleared other freelists in the
8353 interpreter.
8354
8355 - Issue #13327: Remove the need for an explicit None as the second argument
8356 to os.utime, os.lutimes, os.futimes, os.futimens, os.futimesat, in
8357 order to update to the current time. Also added keyword argument
8358 handling to os.utimensat in order to remove the need for explicit None.
8359
8360 - Issue #13350: Simplify some C code by replacing most usages of
8361 PyUnicode_Format by PyUnicode_FromFormat.
8362
8363 - Issue #13342: input() used to ignore sys.stdin's and sys.stdout's unicode
8364 error handler in interactive mode (when calling into PyOS_Readline()).
8365
8366 - Issue #9896: Add start, stop, and step attributes to range objects.
8367
8368 - Issue #13343: Fix a SystemError when a lambda expression uses a global
8369 variable in the default value of a keyword-only argument: ``lambda *,
8370 arg=GLOBAL_NAME: None``
8371
8372 - Issue #12797: Added custom opener parameter to builtin open() and
8373 FileIO.open().
8374
8375 - Issue #10519: Avoid unnecessary recursive function calls in
8376 setobject.c.
8377
8378 - Issue #10363: Deallocate global locks in Py_Finalize().
8379
8380 - Issue #13018: Fix reference leaks in error paths in dictobject.c.
8381 Patch by Suman Saha.
8382
8383 - Issue #13201: Define '==' and '!=' to compare range objects based on
8384 the sequence of values they define (instead of comparing based on
8385 object identity).
8386
8387 - Issue #1294232: In a few cases involving metaclass inheritance, the
8388 interpreter would sometimes invoke the wrong metaclass when building a new
8389 class object. These cases now behave correctly. Patch by Daniel Urban.
8390
8391 - Issue #12753: Add support for Unicode name aliases and named sequences.
8392 Both ``unicodedata.lookup()`` and '\N{...}' now resolve aliases,
8393 and ``unicodedata.lookup()`` resolves named sequences too.
8394
8395 - Issue #12170: The count(), find(), rfind(), index() and rindex() methods
8396 of bytes and bytearray objects now accept an integer between 0 and 255
8397 as their first argument. Patch by Petri Lehtinen.
8398
8399 - Issue #12604: VTRACE macro expanded to no-op in _sre.c to avoid compiler
8400 warnings. Patch by Josh Triplett and Petri Lehtinen.
8401
8402 - Issue #12281: Rewrite the MBCS codec to handle correctly replace and ignore
8403 error handlers on all Windows versions. The MBCS codec is now supporting all
8404 error handlers, instead of only replace to encode and ignore to decode.
8405
8406 - Issue #13188: When called without an explicit traceback argument,
8407 generator.throw() now gets the traceback from the passed exception's
8408 ``__traceback__`` attribute. Patch by Petri Lehtinen.
8409
8410 - Issue #13146: Writing a pyc file is now atomic under POSIX.
8411
8412 - Issue #7833: Extension modules built using distutils on Windows will no
8413 longer include a "manifest" to prevent them failing at import time in some
8414 embedded situations.
8415
8416 - PEP 3151 / issue #12555: reworking the OS and IO exception hierarchy.
8417
8418 - Add internal API for static strings (_Py_identifier et al.).
8419
8420 - Issue #13063: the Windows error ERROR_NO_DATA (numbered 232 and described
8421 as "The pipe is being closed") is now mapped to POSIX errno EPIPE
8422 (previously EINVAL).
8423
8424 - Issue #12911: Fix memory consumption when calculating the repr() of huge
8425 tuples or lists.
8426
8427 - PEP 393: flexible string representation. Thanks to Torsten Becker for the
8428 initial implementation, and Victor Stinner for various bug fixes.
8429
8430 - Issue #14081: The 'sep' and 'maxsplit' parameter to str.split, bytes.split,
8431 and bytearray.split may now be passed as keyword arguments.
8432
8433 - Issue #13012: The 'keepends' parameter to str.splitlines may now be passed
8434 as a keyword argument: "my_string.splitlines(keepends=True)". The same
8435 change also applies to bytes.splitlines and bytearray.splitlines.
8436
8437 - Issue #7732: Don't open a directory as a file anymore while importing a
8438 module. Ignore the directory if its name matches the module name (e.g.
8439 "__init__.py") and raise an ImportError instead.
8440
8441 - Issue #13021: Missing decref on an error path. Thanks to Suman Saha for
8442 finding the bug and providing a patch.
8443
8444 - Issue #12973: Fix overflow checks that relied on undefined behaviour in
8445 list_repeat (listobject.c) and islice_next (itertoolsmodule.c). These bugs
8446 caused test failures with recent versions of Clang.
8447
8448 - Issue #12904: os.utime, os.futimes, os.lutimes, and os.futimesat now write
8449 atime and mtime with nanosecond precision on modern POSIX platforms.
8450
8451 - Issue #12802: the Windows error ERROR_DIRECTORY (numbered 267) is now
8452 mapped to POSIX errno ENOTDIR (previously EINVAL).
8453
8454 - Issue #9200: The str.is* methods now work with strings that contain non-BMP
8455 characters even in narrow Unicode builds.
8456
8457 - Issue #12791: Break reference cycles early when a generator exits with
8458 an exception.
8459
8460 - Issue #12773: Make __doc__ mutable on user-defined classes.
8461
8462 - Issue #12766: Raise a ValueError when creating a class with a class variable
8463 that conflicts with a name in __slots__.
8464
8465 - Issue #12266: Fix str.capitalize() to correctly uppercase/lowercase
8466 titlecased and cased non-letter characters.
8467
8468 - Issue #12732: In narrow unicode builds, allow Unicode identifiers which fall
8469 outside the BMP.
8470
8471 - Issue #12575: Validate user-generated AST before it is compiled.
8472
8473 - Make type(None), type(Ellipsis), and type(NotImplemented) callable. They
8474 return the respective singleton instances.
8475
8476 - Forbid summing bytes with sum().
8477
8478 - Verify the types of AST strings and identifiers provided by the user before
8479 compiling them.
8480
8481 - Issue #12647: The None object now has a __bool__() method that returns False.
8482 Formerly, bool(None) returned False only because of special case logic
8483 in PyObject_IsTrue().
8484
8485 - Issue #12579: str.format_map() now raises a ValueError if used on a
8486 format string that contains positional fields. Initial patch by
8487 Julian Berman.
8488
8489 - Issue #10271: Allow warnings.showwarning() be any callable.
8490
8491 - Issue #11627: Fix segfault when __new__ on an exception returns a
8492 non-exception class.
8493
8494 - Issue #12149: Update the method cache after a type's dictionary gets
8495 cleared by the garbage collector. This fixes a segfault when an instance
8496 and its type get caught in a reference cycle, and the instance's
8497 deallocator calls one of the methods on the type (e.g. when subclassing
8498 IOBase). Diagnosis and patch by Davide Rizzo.
8499
8500 - Issue #9611, Issue #9015: FileIO.read() clamps the length to INT_MAX on Windows.
8501
8502 - Issue #9642: Uniformize the tests on the availability of the mbcs codec, add
8503 a new HAVE_MBCS define.
8504
8505 - Issue #9642: Fix filesystem encoding initialization: use the ANSI code page
8506 on Windows if the mbcs codec is not available, and fail with a fatal error if
8507 we cannot get the locale encoding (if nl_langinfo(CODESET) is not available)
8508 instead of using UTF-8.
8509
8510 - When a generator yields, do not retain the caller's exception state on the
8511 generator.
8512
8513 - Issue #12475: Prevent generators from leaking their exception state into the
8514 caller's frame as they return for the last time.
8515
8516 - Issue #12291: You can now load multiple marshalled objects from a stream,
8517 with other data interleaved between marshalled objects.
8518
8519 - Issue #12356: When required positional or keyword-only arguments are not
8520 given, produce an informative error message which includes the name(s) of the
8521 missing arguments.
8522
8523 - Issue #12370: Fix super with no arguments when __class__ is overridden in the
8524 class body.
8525
8526 - Issue #12084: os.stat on Windows now works properly with relative symbolic
8527 links when called from any directory.
8528
8529 - Loosen type restrictions on the __dir__ method. __dir__ can now return any
8530 sequence, which will be converted to a list and sorted by dir().
8531
8532 - Issue #12265: Make error messages produced by passing an invalid set of
8533 arguments to a function more informative.
8534
8535 - Issue #12225: Still allow Python to build if Python is not in its hg repo or
8536 mercurial is not installed.
8537
8538 - Issue #1195: my_fgets() now always clears errors before calling fgets(). Fix
8539 the following case: sys.stdin.read() stopped with CTRL+d (end of file),
8540 raw_input() interrupted by CTRL+c.
8541
8542 - Issue #12216: Allow unexpected EOF errors to happen on any line of the file.
8543
8544 - Issue #12199: The TryExcept and TryFinally and AST nodes have been unified
8545 into a Try node.
8546
8547 - Issue #9670: Increase the default stack size for secondary threads on
8548 Mac OS X and FreeBSD to reduce the chances of a crash instead of a
8549 "maximum recursion depth" RuntimeError exception.
8550 (patch by Ronald Oussoren)
8551
8552 - Issue #12106: The use of the multiple-with shorthand syntax is now reflected
8553 in the AST.
8554
8555 - Issue #12190: Try to use the same filename object when compiling unmarshalling
8556 a code objects in the same file.
8557
8558 - Issue #12166: Move implementations of dir() specialized for various types into
8559 the __dir__() methods of those types.
8560
8561 - Issue #5715: In socketserver, close the server socket in the child process.
8562
8563 - Correct lookup of __dir__ on objects. Among other things, this causes errors
8564 besides AttributeError found on lookup to be propagated.
8565
8566 - Issue #12060: Use sig_atomic_t type and volatile keyword in the signal
8567 module. Patch written by Charles-François Natali.
8568
8569 - Issue #1746656: Added the if_nameindex, if_indextoname, if_nametoindex
8570 methods to the socket module.
8571
8572 - Issue #12044: Fixed subprocess.Popen when used as a context manager to
8573 wait for the process to end when exiting the context to avoid unintentionally
8574 leaving zombie processes around.
8575
8576 - Issue #1195: Fix input() if it is interrupted by CTRL+d and then CTRL+c,
8577 clear the end-of-file indicator after CTRL+d.
8578
8579 - Issue #1856: Avoid crashes and lockups when daemon threads run while the
8580 interpreter is shutting down; instead, these threads are now killed when
8581 they try to take the GIL.
8582
8583 - Issue #9756: When calling a method descriptor or a slot wrapper descriptor,
8584 the check of the object type doesn't read the __class__ attribute anymore.
8585 Fix a crash if a class override its __class__ attribute (e.g. a proxy of the
8586 str type). Patch written by Andreas Stührk.
8587
8588 - Issue #10517: After fork(), reinitialize the TLS used by the PyGILState_*
8589 APIs, to avoid a crash with the pthread implementation in RHEL 5. Patch
8590 by Charles-François Natali.
8591
8592 - Issue #10914: Initialize correctly the filesystem codec when creating a new
8593 subinterpreter to fix a bootstrap issue with codecs implemented in Python, as
8594 the ISO-8859-15 codec.
8595
8596 - Issue #11918: OS/2 and VMS are no more supported because of the lack of
8597 maintainer.
8598
8599 - Issue #6780: fix starts/endswith error message to mention that tuples are
8600 accepted too.
8601
8602 - Issue #5057: fix a bug in the peepholer that led to non-portable pyc files
8603 between narrow and wide builds while optimizing BINARY_SUBSCR on non-BMP
8604 chars (e.g. "\U00012345"[0]).
8605
8606 - Issue #11845: Fix typo in rangeobject.c that caused a crash in
8607 compute_slice_indices. Patch by Daniel Urban.
8608
8609 - Issue #5673: Added a `timeout` keyword argument to subprocess.Popen.wait,
8610 subprocess.Popen.communicated, subprocess.call, subprocess.check_call, and
8611 subprocess.check_output. If the blocking operation takes more than `timeout`
8612 seconds, the `subprocess.TimeoutExpired` exception is raised.
8613
8614 - Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted
8615 (EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch
8616 written by Charles-Francois Natali.
8617
8618 - Issue #9319: Include the filename in "Non-UTF8 code ..." syntax error.
8619
8620 - Issue #10785: Store the filename as Unicode in the Python parser.
8621
8622 - Issue #11619: _PyImport_LoadDynamicModule() doesn't encode the path to bytes
8623 on Windows.
8624
8625 - Issue #10998: Remove mentions of -Q, sys.flags.division_warning and
8626 Py_DivisionWarningFlag left over from Python 2.
8627
8628 - Issue #11244: Remove an unnecessary peepholer check that was preventing
8629 negative zeros from being constant-folded properly.
8630
8631 - Issue #11395: io.FileIO().write() clamps the data length to 32,767 bytes on
8632 Windows if the file is a TTY to workaround a Windows bug. The Windows console
8633 returns an error (12: not enough space error) on writing into stdout if
8634 stdout mode is binary and the length is greater than 66,000 bytes (or less,
8635 depending on heap usage).
8636
8637 - Issue #11320: fix bogus memory management in Modules/getpath.c, leading to
8638 a possible crash when calling Py_SetPath().
8639
8640 - Issue #11432: A bug was introduced in subprocess.Popen on posix systems with
8641 3.2.0 where the stdout or stderr file descriptor being the same as the stdin
8642 file descriptor would raise an exception. webbrowser.open would fail. fixed.
8643
8644 - Issue #9856: Change object.__format__ with a non-empty format string
8645 to be a DeprecationWarning. In 3.2 it was a PendingDeprecationWarning.
8646 In 3.4 it will be a TypeError.
8647
8648 - Issue #11244: The peephole optimizer is now able to constant-fold
8649 arbitrarily complex expressions. This also fixes a 3.2 regression where
8650 operations involving negative numbers were not constant-folded.
8651
8652 - Issue #11450: Don't truncate hg version info in Py_GetBuildInfo() when
8653 there are many tags (e.g. when using mq). Patch by Nadeem Vawda.
8654
8655 - Issue #11335: Fixed a memory leak in list.sort when the key function
8656 throws an exception.
8657
8658 - Issue #8923: When a string is encoded to UTF-8 in strict mode, the result is
8659 cached into the object. Examples: str.encode(), str.encode('utf-8'),
8660 PyUnicode_AsUTF8String() and PyUnicode_AsEncodedString(unicode, "utf-8",
8661 NULL).
8662
8663 - Issue #10829: Refactor PyUnicode_FromFormat(), use the same function to parse
8664 the format string in the 3 steps, fix crashes on invalid format strings.
8665
8666 - Issue #13007: whichdb should recognize gdbm 1.9 magic numbers.
8667
8668 - Issue #11286: Raise a ValueError from calling PyMemoryView_FromBuffer with
8669 a buffer struct having a NULL data pointer.
8670
8671 - Issue #11272: On Windows, input() strips '\r' (and not only '\n'), and
8672 sys.stdin uses universal newline (replace '\r\n' by '\n').
8673
8674 - Issue #11828: startswith and endswith now accept None as slice index.
8675 Patch by Torsten Becker.
8676
8677 - Issue #11168: Remove filename debug variable from PyEval_EvalFrameEx().
8678 It encoded the Unicode filename to UTF-8, but the encoding fails on
8679 undecodable filename (on surrogate characters) which raises an unexpected
8680 UnicodeEncodeError on recursion limit.
8681
8682 - Issue #11187: Remove bootstrap code (use ASCII) of
8683 PyUnicode_AsEncodedString(), it was replaced by a better fallback (use the
8684 locale encoding) in PyUnicode_EncodeFSDefault().
8685
8686 - Check for NULL result in PyType_FromSpec.
8687
8688 - Issue #10516: New copy() and clear() methods for lists and bytearrays.
8689
8690 - Issue #11386: bytearray.pop() now throws IndexError when the bytearray is
8691 empty, instead of OverflowError.
8692
8693 - Issue #12380: The rjust, ljust and center methods of bytes and bytearray
8694 now accept a bytearray argument.
8695
8696 Library
8697 -------
8698
8699 - Issue #14195: An issue that caused weakref.WeakSet instances to incorrectly
8700 return True for a WeakSet instance 'a' in both 'a < a' and 'a > a' has been
8701 fixed.
8702
8703 - Issue #14166: Pickler objects now have an optional ``dispatch_table``
8704 attribute which allows setting custom per-pickler reduction functions.
8705 Patch by sbt.
8706
8707 - Issue #14177: marshal.loads() now raises TypeError when given a unicode
8708 string. Patch by Guilherme Gonçalves.
8709
8710 - Issue #13550: Remove the debug machinery from the threading module: remove
8711 verbose arguments from all threading classes and functions.
8712
8713 - Issue #14159: Fix the len() of weak containers (WeakSet, WeakKeyDictionary,
8714 WeakValueDictionary) to return a better approximation when some objects
8715 are dead or dying. Moreover, the implementation is now O(1) rather than
8716 O(n).
8717
8718 - Issue #11841: Fix comparison bug with 'rc' versions in packaging.version.
8719 Patch by Filip Gruszczyński.
8720
8721 - Issue #6884: Fix long-standing bugs with MANIFEST.in parsing in distutils
8722 on Windows. Also fixed in packaging.
8723
8724 - Issue #8033: sqlite3: Fix 64-bit integer handling in user functions
8725 on 32-bit architectures. Initial patch by Philippe Devalkeneer.
8726
8727 - HTMLParser is now able to handle slashes in the start tag.
8728
8729 - Issue #13641: Decoding functions in the base64 module now accept ASCII-only
8730 unicode strings. Patch by Catalin Iacob.
8731
8732 - Issue #14043: Speed up importlib's _FileFinder by at least 8x, and add a
8733 new importlib.invalidate_caches() function.
8734
8735 - Issue #14001: CVE-2012-0845: xmlrpc: Fix an endless loop in
8736 SimpleXMLRPCServer upon malformed POST request.
8737
8738 - Issue #13961: Move importlib over to using os.replace() for atomic renaming.
8739
8740 - Do away with ambiguous level values (as suggested by PEP 328) in
8741 importlib.__import__() by raising ValueError when level < 0.
8742
8743 - Issue #2489: pty.spawn could consume 100% cpu when it encountered an EOF.
8744
8745 - Issue #13014: Fix a possible reference leak in SSLSocket.getpeercert().
8746
8747 - Issue #13777: Add PF_SYSTEM sockets on OS X.
8748 Patch by Michael Goderbauer.
8749
8750 - Issue #13015: Fix a possible reference leak in defaultdict.__repr__.
8751 Patch by Suman Saha.
8752
8753 - Issue #1326113: distutils' and packaging's build_ext commands option now
8754 correctly parses multiple values (separated by whitespace or commas) given
8755 to their --libraries option.
8756
8757 - Issue #10287: nntplib now queries the server's CAPABILITIES first before
8758 sending MODE READER, and only sends it if not already in READER mode.
8759 Patch by Hynek Schlawack.
8760
8761 - Issue #13993: HTMLParser is now able to handle broken end tags when
8762 strict=False.
8763
8764 - Issue #13930: lib2to3 now supports writing converted output files to another
8765 directory tree as well as copying unchanged files and altering the file
8766 suffix.
8767
8768 - Issue #9750: Fix sqlite3.Connection.iterdump on tables and fields
8769 with a name that is a keyword or contains quotes. Patch by Marko
8770 Kohtala.
8771
8772 - Issue #10287: nntplib now queries the server's CAPABILITIES again after
8773 authenticating (since the result may change, according to RFC 4643).
8774 Patch by Hynek Schlawack.
8775
8776 - Issue #13590: On OS X 10.7 and 10.6 with Xcode 4.2, building
8777 Distutils-based packages with C extension modules may fail because
8778 Apple has removed gcc-4.2, the version used to build python.org
8779 64-bit/32-bit Pythons. If the user does not explicitly override
8780 the default C compiler by setting the CC environment variable,
8781 Distutils will now attempt to compile extension modules with clang
8782 if gcc-4.2 is required but not found. Also as a convenience, if
8783 the user does explicitly set CC, substitute its value as the default
8784 compiler in the Distutils LDSHARED configuration variable for OS X.
8785 (Note, the python.org 32-bit-only Pythons use gcc-4.0 and the 10.4u
8786 SDK, neither of which are available in Xcode 4. This change does not
8787 attempt to override settings to support their use with Xcode 4.)
8788
8789 - Issue #13960: HTMLParser is now able to handle broken comments when
8790 strict=False.
8791
8792 - When '' is a path (e.g. in sys.path), make sure __file__ uses the current
8793 working directory instead of '' in importlib.
8794
8795 - Issue #13609: Add two functions to query the terminal size:
8796 os.get_terminal_size (low level) and shutil.get_terminal_size (high level).
8797 Patch by Zbigniew Jędrzejewski-Szmek.
8798
8799 - Issue #13845: On Windows, time.time() now uses GetSystemTimeAsFileTime()
8800 instead of ftime() to have a resolution of 100 ns instead of 1 ms (the clock
8801 accuracy is between 0.5 ms and 15 ms).
8802
8803 - Issue #13846: Add time.monotonic(), monotonic clock.
8804
8805 - Issue #8184: multiprocessing: On Windows, don't set SO_REUSEADDR on
8806 Connection sockets, and set FILE_FLAG_FIRST_PIPE_INSTANCE on named pipes, to
8807 make sure two listeners can't bind to the same socket/pipe (or any existing
8808 socket/pipe).
8809
8810 - Issue #10811: Fix recursive usage of cursors. Instead of crashing,
8811 raise a ProgrammingError now.
8812
8813 - Issue #13734: Add os.fwalk(), a directory walking function yielding file
8814 descriptors.
8815
8816 - Issue #2945: Make the distutils upload command aware of bdist_rpm products.
8817
8818 - Issue #13712: pysetup create should not convert package_data to extra_files.
8819
8820 - Issue #11805: package_data in setup.cfg should allow more than one value.
8821
8822 - Issue #13676: Handle strings with embedded zeros correctly in sqlite3.
8823
8824 - Issue #8828: Add new function os.replace(), for cross-platform renaming
8825 with overwriting.
8826
8827 - Issue #13848: open() and the FileIO constructor now check for NUL
8828 characters in the file name. Patch by Hynek Schlawack.
8829
8830 - Issue #13806: The size check in audioop decompression functions was too
8831 strict and could reject valid compressed data. Patch by Oleg Plakhotnyuk.
8832
8833 - Issue #13812: When a multiprocessing Process child raises an exception,
8834 flush stderr after printing the exception traceback.
8835
8836 - Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC
8837 IV attack countermeasure.
8838
8839 - Issue #13847: time.localtime() and time.gmtime() now raise an OSError instead
8840 of ValueError on failure. time.ctime() and time.asctime() now raises an
8841 OSError if localtime() failed. time.clock() now raises a RuntimeError if the
8842 processor time used is not available or its value cannot be represented
8843
8844 - Issue #13772: In os.symlink() under Windows, do not try to guess the link
8845 target's type (file or directory). The detection was buggy and made the
8846 call non-atomic (therefore prone to race conditions).
8847
8848 - Issue #6631: Disallow relative file paths in urllib urlopen methods.
8849
8850 - Issue #13722: Avoid silencing ImportErrors when initializing the codecs
8851 registry.
8852
8853 - Issue #13781: Fix GzipFile bug that caused an exception to be raised when
8854 opening for writing using a fileobj returned by os.fdopen().
8855
8856 - Issue #13803: Under Solaris, distutils doesn't include bitness
8857 in the directory name.
8858
8859 - Issue #10278: Add time.wallclock() function, monotonic clock.
8860
8861 - Issue #13809: Fix regression where bz2 module wouldn't work when threads are
8862 disabled. Original patch by Amaury Forgeot d'Arc.
8863
8864 - Issue #13589: Fix some serialization primitives in the aifc module.
8865 Patch by Oleg Plakhotnyuk.
8866
8867 - Issue #13642: Unquote before b64encoding user:password during Basic
8868 Authentication. Patch contributed by Joonas Kuorilehto.
8869
8870 - Issue #12364: Fix a hang in concurrent.futures.ProcessPoolExecutor.
8871 The hang would occur when retrieving the result of a scheduled future after
8872 the executor had been shut down.
8873
8874 - Issue #13502: threading: Fix a race condition in Event.wait() that made it
8875 return False when the event was set and cleared right after.
8876
8877 - Issue #9993: When the source and destination are on different filesystems,
8878 and the source is a symlink, shutil.move() now recreates a symlink on the
8879 destination instead of copying the file contents. Patch by Jonathan Niehof
8880 and Hynek Schlawack.
8881
8882 - Issue #12926: Fix a bug in tarfile's link extraction.
8883
8884 - Issue #13696: Fix the 302 Relative URL Redirection problem.
8885
8886 - Issue #13636: Weak ciphers are now disabled by default in the ssl module
8887 (except when SSLv2 is explicitly asked for).
8888
8889 - Issue #12715: Add an optional symlinks argument to shutil functions
8890 (copyfile, copymode, copystat, copy, copy2). When that parameter is
8891 true, symlinks aren't dereferenced and the operation instead acts on the
8892 symlink itself (or creates one, if relevant). Patch by Hynek Schlawack.
8893
8894 - Add a flags parameter to select.epoll.
8895
8896 - Issue #13626: Add support for SSL Diffie-Hellman key exchange, through the
8897 SSLContext.load_dh_params() method and the ssl.OP_SINGLE_DH_USE option.
8898
8899 - Issue #11006: Don't issue low level warning in subprocess when pipe2() fails.
8900
8901 - Issue #13620: Support for Chrome browser in webbrowser. Patch contributed
8902 by Arnaud Calmettes.
8903
8904 - Issue #11829: Fix code execution holes in inspect.getattr_static for
8905 metaclasses with metaclasses. Patch by Andreas Stührk.
8906
8907 - Issue #12708: Add starmap() and starmap_async() methods (similar to
8908 itertools.starmap()) to multiprocessing.Pool. Patch by Hynek Schlawack.
8909
8910 - Issue #1785: Fix inspect and pydoc with misbehaving descriptors.
8911
8912 - Issue #13637: "a2b" functions in the binascii module now accept ASCII-only
8913 unicode strings.
8914
8915 - Issue #13634: Add support for querying and disabling SSL compression.
8916
8917 - Issue #13627: Add support for SSL Elliptic Curve-based Diffie-Hellman
8918 key exchange, through the SSLContext.set_ecdh_curve() method and the
8919 ssl.OP_SINGLE_ECDH_USE option.
8920
8921 - Issue #13635: Add ssl.OP_CIPHER_SERVER_PREFERENCE, so that SSL servers
8922 choose the cipher based on their own preferences, rather than on the
8923 client's.
8924
8925 - Issue #11813: Fix inspect.getattr_static for modules. Patch by Andreas
8926 Stührk.
8927
8928 - Issue #7502: Fix equality comparison for DocTestCase instances. Patch by
8929 Cédric Krier.
8930
8931 - Issue #11870: threading: Properly reinitialize threads internal locks and
8932 condition variables to avoid deadlocks in child processes.
8933
8934 - Issue #8035: urllib: Fix a bug where the client could remain stuck after a
8935 redirection or an error.
8936
8937 - Issue #13560: os.strerror() now uses the current locale encoding instead of
8938 UTF-8.
8939
8940 - Issue #8373: The filesystem path of AF_UNIX sockets now uses the filesystem
8941 encoding and the surrogateescape error handler, rather than UTF-8. Patch
8942 by David Watson.
8943
8944 - Issue #10350: Read and save errno before calling a function which might
8945 overwrite it. Original patch by Hallvard B Furuseth.
8946
8947 - Issue #11610: Introduce a more general way to declare abstract properties.
8948
8949 - Issue #13591: A bug in importlib has been fixed that caused import_module
8950 to load a module twice.
8951
8952 - Issue #13449: sched.scheduler.run() method has a new "blocking" parameter which
8953 when set to False makes run() execute the scheduled events due to expire
8954 soonest (if any) and then return. Patch by Giampaolo Rodolà.
8955
8956 - Issue #8684: sched.scheduler class can be safely used in multi-threaded
8957 environments. Patch by Josiah Carlson and Giampaolo Rodolà.
8958
8959 - Alias resource.error to OSError ala PEP 3151.
8960
8961 - Issue #5689: Add support for lzma compression to the tarfile module.
8962
8963 - Issue #13248: Turn 3.2's PendingDeprecationWarning into 3.3's
8964 DeprecationWarning. It covers 'cgi.escape', 'importlib.abc.PyLoader',
8965 'importlib.abc.PyPycLoader', 'nntplib.NNTP.xgtitle', 'nntplib.NNTP.xpath',
8966 and private attributes of 'smtpd.SMTPChannel'.
8967
8968 - Issue #5905, Issue #13560: time.strftime() is now using the current locale
8969 encoding, instead of UTF-8, if the wcsftime() function is not available.
8970
8971 - Issue #13464: Add a readinto() method to http.client.HTTPResponse. Patch
8972 by Jon Kuhn.
8973
8974 - tarfile.py: Correctly detect bzip2 compressed streams with blocksizes
8975 other than 900k.
8976
8977 - Issue #13439: Fix many errors in turtle docstrings.
8978
8979 - Issue #6715: Add a module 'lzma' for compression using the LZMA algorithm.
8980 Thanks to Per Øyvind Karlsen for the initial implementation.
8981
8982 - Issue #13487: Make inspect.getmodule robust against changes done to
8983 sys.modules while it is iterating over it.
8984
8985 - Issue #12618: Fix a bug that prevented py_compile from creating byte
8986 compiled files in the current directory. Initial patch by Sjoerd de Vries.
8987
8988 - Issue #13444: When stdout has been closed explicitly, we should not attempt
8989 to flush it at shutdown and print an error.
8990
8991 - Issue #12567: The curses module uses Unicode functions for Unicode arguments
8992 when it is linked to the ncurses library. It encodes also Unicode strings to
8993 the locale encoding instead of UTF-8.
8994
8995 - Issue #12856: Ensure child processes do not inherit the parent's random
8996 seed for filename generation in the tempfile module. Patch by Brian
8997 Harring.
8998
8999 - Issue #9957: SpooledTemporaryFile.truncate() now accepts an optional size
9000 parameter, as other file-like objects. Patch by Ryan Kelly.
9001
9002 - Issue #13458: Fix a memory leak in the ssl module when decoding a
9003 certificate with a subjectAltName. Patch by Robert Xiao.
9004
9005 - Issue #13415: os.unsetenv() doesn't ignore errors anymore.
9006
9007 - Issue #13245: sched.scheduler class constructor's timefunc and
9008 delayfunct parameters are now optional.
9009 scheduler.enter and scheduler.enterabs methods gained a new kwargs parameter.
9010 Patch contributed by Chris Clark.
9011
9012 - Issue #12328: Under Windows, refactor handling of Ctrl-C events and
9013 make _multiprocessing.win32.WaitForMultipleObjects interruptible when
9014 the wait_flag parameter is false. Patch by sbt.
9015
9016 - Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is
9017 raised when the wrapped raw file is non-blocking and the write would block.
9018 Previous code assumed that the raw write() would raise BlockingIOError, but
9019 RawIOBase.write() is defined to returned None when the call would block.
9020 Patch by sbt.
9021
9022 - Issue #13358: HTMLParser now calls handle_data only once for each CDATA.
9023
9024 - Issue #4147: minidom's toprettyxml no longer adds whitespace around a text
9025 node when it is the only child of an element. Initial patch by Dan
9026 Kenigsberg.
9027
9028 - Issue #13374: The Windows bytes API has been deprecated in the os module. Use
9029 Unicode filenames instead of bytes filenames to not depend on the ANSI code
9030 page anymore and to support any filename.
9031
9032 - Issue #13297: Use bytes type to send and receive binary data through XMLRPC.
9033
9034 - Issue #6397: Support "/dev/poll" polling objects in select module,
9035 under Solaris & derivatives.
9036
9037 - Issues #1745761, #755670, #13357, #12629, #1200313: HTMLParser now correctly
9038 handles non-valid attributes, including adjacent and unquoted attributes.
9039
9040 - Issue #13193: Fix distutils.filelist.FileList and packaging.manifest.Manifest
9041 under Windows.
9042
9043 - Issue #13384: Remove unnecessary __future__ import in Lib/random.py
9044
9045 - Issue #13149: Speed up append-only StringIO objects.
9046
9047 - Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely
9048 when called with a timeout. Patch by Arnaud Ysmal.
9049
9050 - Issue #13254: Fix Maildir initialization so that maildir contents
9051 are read correctly.
9052
9053 - Issue #3067: locale.setlocale() now raises TypeError if the second
9054 argument is an invalid iterable. Its documentation and docstring
9055 were also updated. Initial patch by Jyrki Pulliainen.
9056
9057 - Issue #13140: Fix the daemon_threads attribute of ThreadingMixIn.
9058
9059 - Issue #13339: Fix compile error in posixmodule.c due to missing semicolon.
9060 Thanks to Robert Xiao.
9061
9062 - Byte compilation in packaging is now isolated from the calling Python -B or
9063 -O options, instead of being disallowed under -B or buggy under -O.
9064
9065 - Issue #10570: curses.putp() and curses.tparm() are now expecting a byte
9066 string, instead of a Unicode string.
9067
9068 - Issue #13295: http.server now produces valid HTML 4.01 strict.
9069
9070 - Issue #2892: preserve iterparse events in case of SyntaxError.
9071
9072 - Issue #13287: urllib.request and urllib.error now contains an __all__
9073 attribute to expose only relevant classes and functions. Patch by Florent
9074 Xicluna.
9075
9076 - Issue #670664: Fix HTMLParser to correctly handle the content of
9077 ``<script>...</script>`` and ``<style>...</style>``.
9078
9079 - Issue #10817: Fix urlretrieve function to raise ContentTooShortError even
9080 when reporthook is None. Patch by Jyrki Pulliainen.
9081
9082 - Fix the xmlrpc.client user agent to return something similar to
9083 urllib.request user agent: "Python-xmlrpc/3.3".
9084
9085 - Issue #13293: Better error message when trying to marshal bytes using
9086 xmlrpc.client.
9087
9088 - Issue #13291: NameError in xmlrpc package.
9089
9090 - Issue #13258: Use callable() built-in in the standard library.
9091
9092 - Issue #13273: fix a bug that prevented HTMLParser to properly detect some
9093 tags when strict=False.
9094
9095 - Issue #11183: Add finer-grained exceptions to the ssl module, so that
9096 you don't have to inspect the exception's attributes in the common case.
9097
9098 - Issue #13216: Add cp65001 codec, the Windows UTF-8 (CP_UTF8).
9099
9100 - Issue #13226: Add RTLD_xxx constants to the os module. These constants can be
9101 used with sys.setdlopenflags().
9102
9103 - Issue #10278: Add clock_getres(), clock_gettime() and CLOCK_xxx constants to
9104 the time module. time.clock_gettime(time.CLOCK_MONOTONIC) provides a
9105 monotonic clock
9106
9107 - Issue #10332: multiprocessing: fix a race condition when a Pool is closed
9108 before all tasks have completed.
9109
9110 - Issue #13255: wrong docstrings in array module.
9111
9112 - Issue #8540: Remove deprecated Context._clamp attribute in Decimal module.
9113
9114 - Issue #13235: Added DeprecationWarning to logging.warn() method and function.
9115
9116 - Issue #9168: now smtpd is able to bind privileged port.
9117
9118 - Issue #12529: fix cgi.parse_header issue on strings with double-quotes and
9119 semicolons together. Patch by Ben Darnell and Petri Lehtinen.
9120
9121 - Issue #13227: functools.lru_cache() now has an option to distinguish
9122 calls with different argument types.
9123
9124 - Issue #6090: zipfile raises a ValueError when a document with a timestamp
9125 earlier than 1980 is provided. Patch contributed by Petri Lehtinen.
9126
9127 - Issue #13150: sysconfig no longer parses the Makefile and config.h files
9128 when imported, instead doing it at build time. This makes importing
9129 sysconfig faster and reduces Python startup time by 20%.
9130
9131 - Issue #12448: smtplib now flushes stdout while running ``python -m smtplib``
9132 in order to display the prompt correctly.
9133
9134 - Issue #12454: The mailbox module is now using ASCII, instead of the locale
9135 encoding, to read and write .mh_sequences files.
9136
9137 - Issue #13194: zlib.compressobj().copy() and zlib.decompressobj().copy() are
9138 now available on Windows.
9139
9140 - Issue #1673007: urllib.request now supports HEAD request via new method argument.
9141 Patch contributions by David Stanek, Patrick Westerhoff and Ezio Melotti.
9142
9143 - Issue #12386: packaging does not fail anymore when writing the RESOURCES
9144 file.
9145
9146 - Issue #13158: Fix decoding and encoding of GNU tar specific base-256 number
9147 fields in tarfile.
9148
9149 - Issue #13025: mimetypes is now reading MIME types using the UTF-8 encoding,
9150 instead of the locale encoding.
9151
9152 - Issue #10653: On Windows, use strftime() instead of wcsftime() because
9153 wcsftime() doesn't format time zone correctly.
9154
9155 - Issue #13150: The tokenize module doesn't compile large regular expressions
9156 at startup anymore.
9157
9158 - Issue #11171: Fix distutils.sysconfig.get_makefile_filename when Python was
9159 configured with different prefix and exec-prefix.
9160
9161 - Issue #11254: Teach distutils and packaging to compile .pyc and .pyo files in
9162 PEP 3147-compliant __pycache__ directories.
9163
9164 - Issue #7367: Fix pkgutil.walk_paths to skip directories whose
9165 contents cannot be read.
9166
9167 - Issue #3163: The struct module gets new format characters 'n' and 'N'
9168 supporting C integer types ``ssize_t`` and ``size_t``, respectively.
9169
9170 - Issue #13099: Fix sqlite3.Cursor.lastrowid under a Turkish locale.
9171 Reported and diagnosed by Thomas Kluyver.
9172
9173 - Issue #13087: BufferedReader.seek() now always raises UnsupportedOperation
9174 if the underlying raw stream is unseekable, even if the seek could be
9175 satisfied using the internal buffer. Patch by John O'Connor.
9176
9177 - Issue #7689: Allow pickling of dynamically created classes when their
9178 metaclass is registered with copyreg. Patch by Nicolas M. Thiéry and Craig
9179 Citro.
9180
9181 - Issue #13034: When decoding some SSL certificates, the subjectAltName
9182 extension could be unreported.
9183
9184 - Issue #12306: Expose the runtime version of the zlib C library as a constant,
9185 ZLIB_RUNTIME_VERSION, in the zlib module. Patch by Torsten Landschoff.
9186
9187 - Issue #12959: Add collections.ChainMap to collections.__all__.
9188
9189 - Issue #8933: distutils' PKG-INFO files and packaging's METADATA files will
9190 now correctly report Metadata-Version: 1.1 instead of 1.0 if a Classifier or
9191 Download-URL field is present.
9192
9193 - Issue #12567: Add curses.unget_wch() function. Push a character so the next
9194 get_wch() will return it.
9195
9196 - Issue #9561: distutils and packaging now writes egg-info files using UTF-8,
9197 instead of the locale encoding.
9198
9199 - Issue #8286: The distutils command sdist will print a warning message instead
9200 of crashing when an invalid path is given in the manifest template.
9201
9202 - Issue #12841: tarfile unnecessarily checked the existence of numerical user
9203 and group ids on extraction. If one of them did not exist the respective id
9204 of the current user (i.e. root) was used for the file and ownership
9205 information was lost.
9206
9207 - Issue #12888: Fix a bug in HTMLParser.unescape that prevented it to escape
9208 more than 128 entities. Patch by Peter Otten.
9209
9210 - Issue #12878: Expose a __dict__ attribute on io.IOBase and its subclasses.
9211
9212 - Issue #12494: On error, call(), check_call(), check_output() and
9213 getstatusoutput() functions of the subprocess module now kill the process,
9214 read its status (to avoid zombis) and close pipes.
9215
9216 - Issue #12720: Expose low-level Linux extended file attribute functions in os.
9217
9218 - Issue #10946: The distutils commands bdist_dumb, bdist_wininst and bdist_msi
9219 now respect a --skip-build option given to bdist. The packaging commands
9220 were fixed too.
9221
9222 - Issue #12847: Fix a crash with negative PUT and LONG_BINPUT arguments in
9223 the C pickle implementation.
9224
9225 - Issue #11564: Avoid crashes when trying to pickle huge objects or containers
9226 (more than 2**31 items). Instead, in most cases, an OverflowError is raised.
9227
9228 - Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is
9229 greater than FD_SETSIZE.
9230
9231 - Issue #12839: Fix crash in zlib module due to version mismatch.
9232 Fix by Richard M. Tew.
9233
9234 - Issue #9923: The mailcap module now correctly uses the platform path
9235 separator for the MAILCAP environment variable on non-POSIX platforms.
9236
9237 - Issue #12835: Follow up to #6560 that unconditionally prevents use of the
9238 unencrypted sendmsg/recvmsg APIs on SSL wrapped sockets. Patch by David
9239 Watson.
9240
9241 - Issue #12803: SSLContext.load_cert_chain() now accepts a password argument
9242 to be used if the private key is encrypted. Patch by Adam Simpkins.
9243
9244 - Issue #11657: Fix sending file descriptors over 255 over a multiprocessing
9245 Pipe.
9246
9247 - Issue #12811: tabnanny.check() now promptly closes checked files. Patch by
9248 Anthony Briggs.
9249
9250 - Issue #6560: The sendmsg/recvmsg API is now exposed by the socket module
9251 when provided by the underlying platform, supporting processing of
9252 ancillary data in pure Python code. Patch by David Watson and Heiko Wundram.
9253
9254 - Issue #12326: On Linux, sys.platform doesn't contain the major version
9255 anymore. It is now always 'linux', instead of 'linux2' or 'linux3' depending
9256 on the Linux version used to build Python.
9257
9258 - Issue #12213: Fix a buffering bug with interleaved reads and writes that
9259 could appear on BufferedRandom streams.
9260
9261 - Issue #12778: Reduce memory consumption when JSON-encoding a large
9262 container of many small objects.
9263
9264 - Issue #12650: Fix a race condition where a subprocess.Popen could leak
9265 resources (FD/zombie) when killed at the wrong time.
9266
9267 - Issue #12744: Fix inefficient representation of integers between 2**31 and
9268 2**63 on systems with a 64-bit C "long".
9269
9270 - Issue #12646: Add an 'eof' attribute to zlib.Decompress, to make it easier to
9271 detect truncated input streams.
9272
9273 - Issue #11513: Fix exception handling ``tarfile.TarFile.gzopen()`` when
9274 the file cannot be opened.
9275
9276 - Issue #12687: Fix a possible buffering bug when unpickling text mode
9277 (protocol 0, mostly) pickles.
9278
9279 - Issue #10087: Fix the html output format of the calendar module.
9280
9281 - Issue #13121: add support for inplace math operators to collections.Counter.
9282
9283 - Add support for unary plus and unary minus to collections.Counter.
9284
9285 - Issue #12683: urlparse updated to include svn as schemes that uses relative
9286 paths. (svn from 1.5 onwards support relative path).
9287
9288 - Issue #12655: Expose functions from sched.h in the os module: sched_yield(),
9289 sched_setscheduler(), sched_getscheduler(), sched_setparam(),
9290 sched_get_min_priority(), sched_get_max_priority(), sched_rr_get_interval(),
9291 sched_getaffinity(), sched_setaffinity().
9292
9293 - Add ThreadError to threading.__all__.
9294
9295 - Issues #11104, #8688: Fix the behavior of distutils' sdist command with
9296 manually-maintained MANIFEST files.
9297
9298 - Issue #11281: smtplib.STMP gets source_address parameter, which adds the
9299 ability to bind to specific source address on a machine with multiple
9300 interfaces. Patch by Paulo Scardine.
9301
9302 - Issue #12464: tempfile.TemporaryDirectory.cleanup() should not follow
9303 symlinks: fix it. Patch by Petri Lehtinen.
9304
9305 - Issue #8887: "pydoc somebuiltin.somemethod" (or help('somebuiltin.somemethod')
9306 in Python code) now finds the doc of the method.
9307
9308 - Issue #10968: Remove indirection in threading. The public names (Event,
9309 Condition, etc.) used to be factory functions returning instances of hidden
9310 classes (_Event, _Condition, etc.), because (if Guido recalls correctly) this
9311 code pre-dates the ability to subclass extension types. It is now possible
9312 to inherit from these classes, without having to import the private
9313 underscored names like multiprocessing did.
9314
9315 - Issue #9723: Add shlex.quote functions, to escape filenames and command
9316 lines.
9317
9318 - Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime.
9319
9320 - Issue #12514: Use try/finally to assure the timeit module restores garbage
9321 collections when it is done.
9322
9323 - Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is
9324 given as a low fd, it gets overwritten.
9325
9326 - Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates)
9327 ``Connection: close`` header.
9328
9329 - Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
9330
9331 - Issue #1813: Fix codec lookup under Turkish locales.
9332
9333 - Issue #12591: Improve support of "universal newlines" in the subprocess
9334 module: the piped streams can now be properly read from or written to.
9335
9336 - Issue #12591: Allow io.TextIOWrapper to work with raw IO objects (without
9337 a read1() method), and add a *write_through* parameter to mandate
9338 unbuffered writes.
9339
9340 - Issue #10883: Fix socket leaks in urllib.request when using FTP.
9341
9342 - Issue #12592: Make Python build on OpenBSD 5 (and future major releases).
9343
9344 - Issue #12372: POSIX semaphores are broken on AIX: don't use them.
9345
9346 - Issue #12551: Provide a get_channel_binding() method on SSL sockets so as
9347 to get channel binding data for the current SSL session (only the
9348 "tls-unique" channel binding is implemented). This allows the implementation
9349 of certain authentication mechanisms such as SCRAM-SHA-1-PLUS. Patch by
9350 Jacek Konieczny.
9351
9352 - Issue #665194: email.utils now has format_datetime and parsedate_to_datetime
9353 functions, allowing for round tripping of RFC2822 format dates.
9354
9355 - Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2
9356 directory, so that "import DLFCN" and other similar imports work on
9357 Linux 3.0.
9358
9359 - Issue #7484: smtplib no longer puts <> around addresses in VRFY and EXPN
9360 commands; they aren't required and in fact postfix doesn't support that form.
9361
9362 - Issue #12273: Remove ast.__version__. AST changes can be accounted for by
9363 checking sys.version_info or sys._mercurial.
9364
9365 - Silence spurious "broken pipe" tracebacks when shutting down a
9366 ProcessPoolExecutor.
9367
9368 - Fix potential resource leaks in concurrent.futures.ProcessPoolExecutor
9369 by joining all queues and processes when shutdown() is called.
9370
9371 - Issue #11603: Fix a crash when __str__ is rebound as __repr__. Patch by
9372 Andreas Stührk.
9373
9374 - Issue #11321: Fix a crash with multiple imports of the _pickle module when
9375 embedding Python. Patch by Andreas Stührk.
9376
9377 - Issue #6755: Add get_wch() method to curses.window class. Patch by Iñigo
9378 Serna.
9379
9380 - Add cgi.closelog() function to close the log file.
9381
9382 - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
9383
9384 - Issue #4376: ctypes now supports nested structures in an endian different than
9385 the parent structure. Patch by Vlad Riscutia.
9386
9387 - Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a
9388 TextIOWrapper to a huge value, not TypeError.
9389
9390 - Issue #12504: Close file handles in a timely manner in packaging.database.
9391 This fixes a bug with the remove (uninstall) feature on Windows.
9392
9393 - Issues #12169 and #10510: Factor out code used by various packaging commands
9394 to make HTTP POST requests, and make sure it uses CRLF.
9395
9396 - Issue #12016: Multibyte CJK decoders now resynchronize faster. They only
9397 ignore the first byte of an invalid byte sequence. For example,
9398 b'\xff\n'.decode('gb2312', 'replace') gives '\ufffd\n' instead of '\ufffd'.
9399
9400 - Issue #12459: time.sleep() now raises a ValueError if the sleep length is
9401 negative, instead of an infinite sleep on Windows or raising an IOError on
9402 Linux for example, to have the same behaviour on all platforms.
9403
9404 - Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support
9405 Python scripts using an encoding different than UTF-8 (read the coding cookie
9406 of the script).
9407
9408 - Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors
9409 if the process has only one pipe.
9410
9411 - Issue #12467: warnings: fix a race condition if a warning is emitted at
9412 shutdown, if globals()['__file__'] is None.
9413
9414 - Issue #12451: pydoc: importfile() now opens the Python script in binary mode,
9415 instead of text mode using the locale encoding, to avoid encoding issues.
9416
9417 - Issue #12451: runpy: run_path() now opens the Python script in binary mode,
9418 instead of text mode using the locale encoding, to support other encodings
9419 than UTF-8 (scripts using the coding cookie).
9420
9421 - Issue #12451: xml.dom.pulldom: parse() now opens files in binary mode instead
9422 of the text mode (using the locale encoding) to avoid encoding issues.
9423
9424 - Issue #12147: Adjust the new-in-3.2 smtplib.send_message method for better
9425 conformance to the RFCs: correctly handle Sender and Resent- headers.
9426
9427 - Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by
9428 the garbage collector while the Heap lock is held.
9429
9430 - Issue #12462: time.sleep() now immediately calls the (Python) signal handler
9431 if it is interrupted by a signal, instead of having to wait until the next
9432 instruction.
9433
9434 - Issue #12442: new shutil.disk_usage function, providing total, used and free
9435 disk space statistics.
9436
9437 - Issue #12451: The XInclude default loader of xml.etree now decodes files from
9438 UTF-8 instead of the locale encoding if the encoding is not specified. It now
9439 also opens XML files for the parser in binary mode instead of the text mode
9440 to avoid encoding issues.
9441
9442 - Issue #12451: doctest.debug_script() doesn't create a temporary file
9443 anymore to avoid encoding issues.
9444
9445 - Issue #12451: pydoc.synopsis() now reads the encoding cookie if available,
9446 to read the Python script from the right encoding.
9447
9448 - Issue #12451: distutils now opens the setup script in binary mode to read the
9449 encoding cookie, instead of opening it in UTF-8.
9450
9451 - Issue #9516: On Mac OS X, change Distutils to no longer globally attempt to
9452 check or set the MACOSX_DEPLOYMENT_TARGET environment variable for the
9453 interpreter process. This could cause failures in non-Distutils subprocesses
9454 and was unreliable since tests or user programs could modify the interpreter
9455 environment after Distutils set it. Instead, have Distutils set the
9456 deployment target only in the environment of each build subprocess. It is
9457 still possible to globally override the default by setting
9458 MACOSX_DEPLOYMENT_TARGET before launching the interpreter; its value must be
9459 greater or equal to the default value, the value with which the interpreter
9460 was built. Also, implement the same handling in packaging.
9461
9462 - Issue #12422: In the copy module, don't store objects that are their own copy
9463 in the memo dict.
9464
9465 - Issue #12303: Add sigwaitinfo() and sigtimedwait() to the signal module.
9466
9467 - Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
9468 Kitada.
9469
9470 - Issue #1874: email now detects and reports as a defect the presence of
9471 any CTE other than 7bit, 8bit, or binary on a multipart.
9472
9473 - Issue #12383: Fix subprocess module with env={}: don't copy the environment
9474 variables, start with an empty environment.
9475
9476 - Issue #11637: Fix support for importing packaging setup hooks from the
9477 project directory.
9478
9479 - Issue #6771: Moved the curses.wrapper function from the single-function
9480 wrapper module into __init__, eliminating the module. Since __init__ was
9481 already importing the function to curses.wrapper, there is no API change.
9482
9483 - Issue #11584: email.header.decode_header no longer fails if the header
9484 passed to it is a Header object, and Header/make_header no longer fail
9485 if given binary unknown-8bit input.
9486
9487 - Issue #11700: mailbox proxy object close methods can now be called multiple
9488 times without error.
9489
9490 - Issue #11767: Correct file descriptor leak in mailbox's __getitem__ method.
9491
9492 - Issue #12133: AbstractHTTPHandler.do_open() of urllib.request closes the HTTP
9493 connection if its getresponse() method fails with a socket error. Patch
9494 written by Ezio Melotti.
9495
9496 - Issue #12240: Allow multiple setup hooks in packaging's setup.cfg files.
9497 Original patch by Erik Bray.
9498
9499 - Issue #9284: Allow inspect.findsource() to find the source of doctest
9500 functions.
9501
9502 - Issue #11595: Fix assorted bugs in packaging.util.cfg_to_args, a
9503 compatibility helper for the distutils-packaging transition. Original patch
9504 by Erik Bray.
9505
9506 - Issue #12287: In ossaudiodev, check that the device isn't closed in several
9507 methods.
9508
9509 - Issue #12009: Fixed regression in netrc file comment handling.
9510
9511 - Issue #12246: Warn and fail when trying to install a third-party project from
9512 an uninstalled Python (built in a source checkout). Original patch by
9513 Tshepang Lekhonkhobe.
9514
9515 - Issue #10694: zipfile now ignores garbage at the end of a zipfile.
9516
9517 - Issue #12283: Fixed regression in smtplib quoting of leading dots in DATA.
9518
9519 - Issue #10424: Argparse now includes the names of the missing required
9520 arguments in the missing arguments error message.
9521
9522 - Issue #12168: SysLogHandler now allows NUL termination to be controlled using
9523 a new 'append_nul' attribute on the handler.
9524
9525 - Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes
9526 instead of os.stat.
9527
9528 - Issue #12021: Make mmap's read() method argument optional. Patch by Petri
9529 Lehtinen.
9530
9531 - Issue #9205: concurrent.futures.ProcessPoolExecutor now detects killed
9532 children and raises BrokenProcessPool in such a situation. Previously it
9533 would reliably freeze/deadlock.
9534
9535 - Issue #12040: Expose a new attribute ``sentinel`` on instances of
9536 ``multiprocessing.Process``. Also, fix Process.join() to not use polling
9537 anymore, when given a timeout.
9538
9539 - Issue #11893: Remove obsolete internal wrapper class ``SSLFakeFile`` in the
9540 smtplib module. Patch by Catalin Iacob.
9541
9542 - Issue #12080: Fix a Decimal.power() case that took an unreasonably long time
9543 to compute.
9544
9545 - Issue #12221: Remove __version__ attributes from pyexpat, pickle, tarfile,
9546 pydoc, tkinter, and xml.parsers.expat. This were useless version constants
9547 left over from the Mercurial transition
9548
9549 - Named tuples now work correctly with vars().
9550
9551 - Issue #12085: Fix an attribute error in subprocess.Popen destructor if the
9552 constructor has failed, e.g. because of an undeclared keyword argument. Patch
9553 written by Oleg Oshmyan.
9554
9555 - Issue #12028: Make threading._get_ident() public, rename it to
9556 threading.get_ident() and document it. This function was already used using
9557 _thread.get_ident().
9558
9559 - Issue #12171: IncrementalEncoder.reset() of CJK codecs (multibytecodec) calls
9560 encreset() instead of decreset().
9561
9562 - Issue #12218: Removed wsgiref.egg-info.
9563
9564 - Issue #12196: Add pipe2() to the os module.
9565
9566 - Issue #985064: Make plistlib more resilient to faulty input plists.
9567 Patch by Mher Movsisyan.
9568
9569 - Issue #1625: BZ2File and bz2.decompress() now support multi-stream files.
9570 Initial patch by Nir Aides.
9571
9572 - Issue #12175: BufferedReader.read(-1) now calls raw.readall() if available.
9573
9574 - Issue #12175: FileIO.readall() now only reads the file position and size
9575 once.
9576
9577 - Issue #12175: RawIOBase.readall() now returns None if read() returns None.
9578
9579 - Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError
9580 if the file is closed.
9581
9582 - Issue #11109: New service_action method for BaseServer, used by ForkingMixin
9583 class for cleanup. Initial Patch by Justin Warkentin.
9584
9585 - Issue #12045: Avoid duplicate execution of command in
9586 ctypes.util._get_soname(). Patch by Sijin Joseph.
9587
9588 - Issue #10818: Remove the Tk GUI and the serve() function of the pydoc module,
9589 pydoc -g has been deprecated in Python 3.2 and it has a new enhanced web
9590 server.
9591
9592 - Issue #1441530: In imaplib, read the data in one chunk to speed up large
9593 reads and simplify code.
9594
9595 - Issue #12070: Fix the Makefile parser of the sysconfig module to handle
9596 correctly references to "bogus variable" (e.g. "prefix=$/opt/python").
9597
9598 - Issue #12100: Don't reset incremental encoders of CJK codecs at each call to
9599 their encode() method anymore, but continue to call the reset() method if the
9600 final argument is True.
9601
9602 - Issue #12049: Add RAND_bytes() and RAND_pseudo_bytes() functions to the ssl
9603 module.
9604
9605 - Issue #6501: os.device_encoding() returns None on Windows if the application
9606 has no console.
9607
9608 - Issue #12105: Add O_CLOEXEC to the os module.
9609
9610 - Issue #12079: Decimal('Infinity').fma(Decimal('0'), (3.91224318126786e+19+0j))
9611 now raises TypeError (reflecting the invalid type of the 3rd argument) rather
9612 than Decimal.InvalidOperation.
9613
9614 - Issue #12124: zipimport doesn't keep a reference to zlib.decompress() anymore
9615 to be able to unload the module.
9616
9617 - Add the packaging module, an improved fork of distutils (also known as
9618 distutils2).
9619
9620 - Issue #12065: connect_ex() on an SSL socket now returns the original errno
9621 when the socket's timeout expires (it used to return None).
9622
9623 - Issue #8809: The SMTP_SSL constructor and SMTP.starttls() now support
9624 passing a ``context`` argument pointing to an ssl.SSLContext instance.
9625 Patch by Kasun Herath.
9626
9627 - Issue #9516: Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET
9628 is set in shell.
9629
9630 - Issue #8650: Make zlib module 64-bit clean. compress(), decompress() and
9631 their incremental counterparts now raise OverflowError if given an input
9632 larger than 4GB, instead of silently truncating the input and returning
9633 an incorrect result.
9634
9635 - Issue #12050: zlib.decompressobj().decompress() now clears the unconsumed_tail
9636 attribute when called without a max_length argument.
9637
9638 - Issue #12062: Fix a flushing bug when doing a certain type of I/O sequence
9639 on a file opened in read+write mode (namely: reading, seeking a bit forward,
9640 writing, then seeking before the previous write but still within buffered
9641 data, and writing again).
9642
9643 - Issue #9971: Write an optimized implementation of BufferedReader.readinto().
9644 Patch by John O'Connor.
9645
9646 - Issue #11799: urllib.request Authentication Handlers will raise a ValueError
9647 when presented with an unsupported Authentication Scheme. Patch contributed
9648 by Yuval Greenfield.
9649
9650 - Issue #10419, #6011: build_scripts command of distutils handles correctly
9651 non-ASCII path (path to the Python executable). Open and write the script in
9652 binary mode, but ensure that the shebang is decodable from UTF-8 and from the
9653 encoding of the script.
9654
9655 - Issue #8498: In socket.accept(), allow specifying 0 as a backlog value in
9656 order to accept exactly one connection. Patch by Daniel Evers.
9657
9658 - Issue #12011: signal.signal() and signal.siginterrupt() raise an OSError,
9659 instead of a RuntimeError: OSError has an errno attribute.
9660
9661 - Issue #3709: add a flush_headers method to BaseHTTPRequestHandler, which
9662 manages the sending of headers to output stream and flushing the internal
9663 headers buffer. Patch contribution by Andrew Schaaf
9664
9665 - Issue #11743: Rewrite multiprocessing connection classes in pure Python.
9666
9667 - Issue #11164: Stop trying to use _xmlplus in the xml module.
9668
9669 - Issue #11888: Add log2 function to math module. Patch written by Mark
9670 Dickinson.
9671
9672 - Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional.
9673
9674 - Issue #8407: The signal handler writes the signal number as a single byte
9675 instead of a nul byte into the wakeup file descriptor. So it is possible to
9676 wait more than one signal and know which signals were raised.
9677
9678 - Issue #8407: Add pthread_kill(), sigpending() and sigwait() functions to the
9679 signal module.
9680
9681 - Issue #11927: SMTP_SSL now uses port 465 by default as documented. Patch
9682 by Kasun Herath.
9683
9684 - Issue #12002: ftplib's abort() method raises TypeError.
9685
9686 - Issue #11916: Add a number of MacOSX specific definitions to the errno module.
9687 Patch by Pierre Carrier.
9688
9689 - Issue #11999: fixed sporadic sync failure mailbox.Maildir due to its trying to
9690 detect mtime changes by comparing to the system clock instead of to the
9691 previous value of the mtime.
9692
9693 - Issue #11072: added MLSD command (RFC-3659) support to ftplib.
9694
9695 - Issue #8808: The IMAP4_SSL constructor now allows passing an SSLContext
9696 parameter to control parameters of the secure channel. Patch by Sijin
9697 Joseph.
9698
9699 - ntpath.samefile failed to notice that "a.txt" and "A.TXT" refer to the same
9700 file on Windows XP. As noticed in issue #10684.
9701
9702 - Issue #12000: When a SSL certificate has a subjectAltName without any
9703 dNSName entry, ssl.match_hostname() should use the subject's commonName.
9704 Patch by Nicolas Bareil.
9705
9706 - Issue #10775: assertRaises, assertRaisesRegex, assertWarns, and
9707 assertWarnsRegex now accept a keyword argument 'msg' when used as context
9708 managers. Initial patch by Winston Ewert.
9709
9710 - Issue #10684: shutil.move used to delete a folder on case insensitive
9711 filesystems when the source and destination name where the same except
9712 for the case.
9713
9714 - Issue #11647: objects created using contextlib.contextmanager now support
9715 more than one call to the function when used as a decorator. Initial patch
9716 by Ysj Ray.
9717
9718 - Issue #11930: Removed deprecated time.accept2dyear variable.
9719 Removed year >= 1000 restriction from datetime.strftime.
9720
9721 - logging: don't define QueueListener if Python has no thread support.
9722
9723 - functools.cmp_to_key() now works with collections.Hashable().
9724
9725 - Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get
9726 around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso.
9727
9728 - Issue #8407: Add signal.pthread_sigmask() function to fetch and/or change the
9729 signal mask of the calling thread.
9730
9731 - Issue #11858: configparser.ExtendedInterpolation expected lower-case section
9732 names.
9733
9734 - Issue #11324: ConfigParser(interpolation=None) now works correctly.
9735
9736 - Issue #11811: ssl.get_server_certificate() is now IPv6-compatible. Patch
9737 by Charles-François Natali.
9738
9739 - Issue #11763: don't use difflib in TestCase.assertMultiLineEqual if the
9740 strings are too long.
9741
9742 - Issue #11236: getpass.getpass responds to ctrl-c or ctrl-z on terminal.
9743
9744 - Issue #11856: Speed up parsing of JSON numbers.
9745
9746 - Issue #11005: threading.RLock()._release_save() raises a RuntimeError if the
9747 lock was not acquired.
9748
9749 - Issue #11258: Speed up ctypes.util.find_library() under Linux by a factor
9750 of 5 to 10. Initial patch by Jonas H.
9751
9752 - Issue #11382: Trivial system calls, such as dup() or pipe(), needn't
9753 release the GIL. Patch by Charles-François Natali.
9754
9755 - Issue #11223: Add threading._info() function providing information about
9756 the thread implementation.
9757
9758 - Issue #11731: simplify/enhance email parser/generator API by introducing
9759 policy objects.
9760
9761 - Issue #11768: The signal handler of the signal module only calls
9762 Py_AddPendingCall() for the first signal to fix a deadlock on reentrant or
9763 parallel calls. PyErr_SetInterrupt() writes also into the wake up file.
9764
9765 - Issue #11492: fix several issues with header folding in the email package.
9766
9767 - Issue #11852: Add missing imports and update tests.
9768
9769 - Issue #11875: collections.OrderedDict's __reduce__ was temporarily
9770 mutating the object instead of just working on a copy.
9771
9772 - Issue #11467: Fix urlparse behavior when handling urls which contains scheme
9773 specific part only digits. Patch by Santoso Wijaya.
9774
9775 - collections.Counter().copy() now works correctly for subclasses.
9776
9777 - Issue #11474: Fix the bug with url2pathname() handling of '/C|/' on Windows.
9778 Patch by Santoso Wijaya.
9779
9780 - Issue #11684: complete email.parser bytes API by adding BytesHeaderParser.
9781
9782 - The bz2 module now handles 4GiB+ input buffers correctly.
9783
9784 - Issue #9233: Fix json.loads('{}') to return a dict (instead of a list), when
9785 _json is not available.
9786
9787 - Issue #11830: Remove unnecessary introspection code in the decimal module.
9788
9789 - Issue #11703: urllib2.geturl() does not return correct url when the original
9790 url contains #fragment.
9791
9792 - Issue #10019: Fixed regression in json module where an indent of 0 stopped
9793 adding newlines and acted instead like 'None'.
9794
9795 - Issue #11186: pydoc ignores a module if its name contains a surrogate
9796 character in the index of modules.
9797
9798 - Issue #11815: Use a light-weight SimpleQueue for the result queue in
9799 concurrent.futures.ProcessPoolExecutor.
9800
9801 - Issue #5162: Treat services like frozen executables to allow child spawning
9802 from multiprocessing.forking on Windows.
9803
9804 - logging.basicConfig now supports an optional 'handlers' argument taking an
9805 iterable of handlers to be added to the root logger. Additional parameter
9806 checks were also added to basicConfig.
9807
9808 - Issue #11814: Fix likely typo in multiprocessing.Pool._terminate().
9809
9810 - Issue #11747: Fix range formatting in difflib.context_diff() and
9811 difflib.unified_diff().
9812
9813 - Issue #8428: Fix a race condition in multiprocessing.Pool when terminating
9814 worker processes: new processes would be spawned while the pool is being
9815 shut down. Patch by Charles-François Natali.
9816
9817 - Issue #2650: re.escape() no longer escapes the '_'.
9818
9819 - Issue #11757: select.select() now raises ValueError when a negative timeout
9820 is passed (previously, a select.error with EINVAL would be raised). Patch
9821 by Charles-François Natali.
9822
9823 - Issue #7311: fix html.parser to accept non-ASCII attribute values.
9824
9825 - Issue #11605: email.parser.BytesFeedParser was incorrectly converting
9826 multipart subparts with an 8-bit CTE into unicode instead of preserving the
9827 bytes.
9828
9829 - Issue #1690608: email.util.formataddr is now RFC 2047 aware: it now has a
9830 charset parameter that defaults to utf-8 and is used as the charset for RFC
9831 2047 encoding when the realname contains non-ASCII characters.
9832
9833 - Issue #10963: Ensure that subprocess.communicate() never raises EPIPE.
9834
9835 - Issue #10791: Implement missing method GzipFile.read1(), allowing GzipFile
9836 to be wrapped in a TextIOWrapper. Patch by Nadeem Vawda.
9837
9838 - Issue #11707: Added a fast C version of functools.cmp_to_key().
9839 Patch by Filip Gruszczyński.
9840
9841 - Issue #11688: Add sqlite3.Connection.set_trace_callback(). Patch by
9842 Torsten Landschoff.
9843
9844 - Issue #11746: Fix SSLContext.load_cert_chain() to accept elliptic curve
9845 private keys.
9846
9847 - Issue #5863: Rewrite BZ2File in pure Python, and allow it to accept
9848 file-like objects using a new ``fileobj`` constructor argument. Patch by
9849 Nadeem Vawda.
9850
9851 - unittest.TestCase.assertSameElements has been removed.
9852
9853 - sys.getfilesystemencoding() raises a RuntimeError if initfsencoding() was not
9854 called yet: detect bootstrap (startup) issues earlier.
9855
9856 - Issue #11393: Add the new faulthandler module.
9857
9858 - Issue #11618: Fix the timeout logic in threading.Lock.acquire() under Windows.
9859
9860 - Removed the 'strict' argument to email.parser.Parser, which has been
9861 deprecated since Python 2.4.
9862
9863 - Issue #11256: Fix inspect.getcallargs on functions that take only keyword
9864 arguments.
9865
9866 - Issue #11696: Fix ID generation in msilib.
9867
9868 - itertools.accumulate now supports an optional *func* argument for
9869 a user-supplied binary function.
9870
9871 - Issue #11692: Remove unnecessary demo functions in subprocess module.
9872
9873 - Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when
9874 trying to pack a negative (in-range) integer.
9875
9876 - Issue #11675: multiprocessing.[Raw]Array objects created from an integer size
9877 are now zeroed on creation. This matches the behaviour specified by the
9878 documentation.
9879
9880 - Issue #7639: Fix short file name generation in bdist_msi
9881
9882 - Issue #11635: Don't use polling in worker threads and processes launched by
9883 concurrent.futures.
9884
9885 - Issue #5845: Automatically read readline configuration to enable completion
9886 in interactive mode.
9887
9888 - Issue #6811: Allow importlib to change a code object's co_filename attribute
9889 to match the path to where the source code currently is, not where the code
9890 object originally came from.
9891
9892 - Issue #8754: Have importlib use the repr of a module name in error messages.
9893
9894 - Issue #11591: Prevent "import site" from modifying sys.path when python
9895 was started with -S.
9896
9897 - collections.namedtuple() now adds a _source attribute to the generated
9898 class. This make the source more accessible than the outdated
9899 "verbose" option which prints to stdout but doesn't make the source
9900 string available.
9901
9902 - Issue #11371: Mark getopt error messages as localizable. Patch by Filip
9903 Gruszczyński.
9904
9905 - Issue #11333: Add __slots__ to collections ABCs.
9906
9907 - Issue #11628: cmp_to_key generated class should use __slots__.
9908
9909 - Issue #11666: let help() display named tuple attributes and methods
9910 that start with a leading underscore.
9911
9912 - Issue #11662: Make urllib and urllib2 ignore redirections if the
9913 scheme is not HTTP, HTTPS or FTP (CVE-2011-1521).
9914
9915 - Issue #5537: Fix time2isoz() and time2netscape() functions of
9916 httplib.cookiejar for expiration year greater than 2038 on 32-bit systems.
9917
9918 - Issue #4391: Use proper gettext plural forms in optparse.
9919
9920 - Issue #11127: Raise a TypeError when trying to pickle a socket object.
9921
9922 - Issue #11563: ``Connection: close`` header is sent by requests using URLOpener
9923 class which helps in closing of sockets after connection is over. Patch
9924 contributions by Jeff McNeil and Nadeem Vawda.
9925
9926 - Issue #11459: A ``bufsize`` value of 0 in subprocess.Popen() really creates
9927 unbuffered pipes, such that select() works properly on them.
9928
9929 - Issue #5421: Fix misleading error message when one of socket.sendto()'s
9930 arguments has the wrong type. Patch by Nikita Vetoshkin.
9931
9932 - Issue #10812: Add some extra posix functions to the os module.
9933
9934 - Issue #10979: unittest stdout buffering now works with class and module
9935 setup and teardown.
9936
9937 - Issue #11243: fix the parameter querying methods of Message to work if
9938 the headers contain un-encoded non-ASCII data.
9939
9940 - Issue #11401: fix handling of headers with no value; this fixes a regression
9941 relative to Python2 and the result is now the same as it was in Python2.
9942
9943 - Issue #9298: base64 bodies weren't being folded to line lengths less than 78,
9944 which was a regression relative to Python2. Unlike Python2, the last line
9945 of the folded body now ends with a carriage return.
9946
9947 - Issue #11560: shutil.unpack_archive now correctly handles the format
9948 parameter. Patch by Evan Dandrea.
9949
9950 - Issue #5870: Add `subprocess.DEVNULL` constant.
9951
9952 - Issue #11133: fix two cases where inspect.getattr_static can trigger code
9953 execution. Patch by Andreas Stührk.
9954
9955 - Issue #11569: use absolute path to the sysctl command in multiprocessing to
9956 ensure that it will be found regardless of the shell PATH. This ensures
9957 that multiprocessing.cpu_count works on default installs of MacOSX.
9958
9959 - Issue #11501: distutils.archive_utils.make_zipfile no longer fails if zlib is
9960 not installed. Instead, the zipfile.ZIP_STORED compression is used to create
9961 the ZipFile. Patch by Natalia B. Bidart.
9962
9963 - Issue #11289: `smtp.SMTP` class is now a context manager so it can be used
9964 in a `with` statement. Contributed by Giampaolo Rodola.
9965
9966 - Issue #11554: Fixed support for Japanese codecs; previously the body output
9967 encoding was not done if euc-jp or shift-jis was specified as the charset.
9968
9969 - Issue #11407: `TestCase.run` returns the result object used or created.
9970 Contributed by Janathan Hartley.
9971
9972 - Issue #11500: Fixed a bug in the OS X proxy bypass code for fully qualified
9973 IP addresses in the proxy exception list.
9974
9975 - Issue #11491: dbm.error is no longer raised when dbm.open is called with
9976 the "n" as the flag argument and the file exists. The behavior matches
9977 the documentation and general logic.
9978
9979 - Issue #1162477: Postel Principle adjustment to email date parsing: handle the
9980 fact that some non-compliant MUAs use '.' instead of ':' in time specs.
9981
9982 - Issue #11131: Fix sign of zero in decimal.Decimal plus and minus
9983 operations when the rounding mode is ROUND_FLOOR.
9984
9985 - Issue #9935: Speed up pickling of instances of user-defined classes.
9986
9987 - Issue #5622: Fix curses.wrapper to raise correct exception if curses
9988 initialization fails.
9989
9990 - Issue #11408: In threading.Lock.acquire(), only call gettimeofday() when
9991 really necessary. Patch by Charles-François Natali.
9992
9993 - Issue #11391: Writing to a mmap object created with
9994 ``mmap.PROT_READ|mmap.PROT_EXEC`` would segfault instead of raising a
9995 TypeError. Patch by Charles-François Natali.
9996
9997 - Issue #9795: add context management protocol support for nntplib.NNTP class.
9998
9999 - Issue #11306: mailbox in certain cases adapts to an inability to open
10000 certain files in read-write mode. Previously it detected this by
10001 checking for EACCES, now it also checks for EROFS.
10002
10003 - Issue #11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors
10004 on accept(), send() and recv().
10005
10006 - Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
10007
10008 - Issue #8513: On UNIX, subprocess supports bytes command string.
10009
10010 - Issue #10866: Add socket.sethostname(). Initial patch by Ross Lagerwall.
10011
10012 - Issue #11140: Lock.release() now raises a RuntimeError when attempting
10013 to release an unacquired lock, as claimed in the threading documentation.
10014 The _thread.error exception is now an alias of RuntimeError. Patch by
10015 Filip Gruszczyński. Patch for _dummy_thread by Aymeric Augustin.
10016
10017 - Issue #8594: ftplib now provides a source_address parameter to specify which
10018 (address, port) to bind to before connecting.
10019
10020 - Issue #11326: Add the missing connect_ex() implementation for SSL sockets,
10021 and make it work for non-blocking connects.
10022
10023 - Issue #11297: Add collections.ChainMap().
10024
10025 - Issue #10755: Add the posix.flistdir() function. Patch by Ross Lagerwall.
10026
10027 - Issue #4761: Add the ``*at()`` family of functions (openat(), etc.) to the
10028 posix module. Patch by Ross Lagerwall.
10029
10030 - Issue #7322: Trying to read from a socket's file-like object after a timeout
10031 occurred now raises an error instead of silently losing data.
10032
10033 - Issue #11291: poplib.POP no longer suppresses errors on quit().
10034
10035 - Issue #11177: asyncore's create_socket() arguments can now be omitted.
10036
10037 - Issue #6064: Add a ``daemon`` keyword argument to the threading.Thread
10038 and multiprocessing.Process constructors in order to override the
10039 default behaviour of inheriting the daemonic property from the current
10040 thread/process.
10041
10042 - Issue #10956: Buffered I/O classes retry reading or writing after a signal
10043 has arrived and the handler returned successfully.
10044
10045 - Issue #10784: New os.getpriority() and os.setpriority() functions.
10046
10047 - Issue #11114: Fix catastrophic performance of tell() on text files (up
10048 to 1000x faster in some cases). It is still one to two order of magnitudes
10049 slower than binary tell().
10050
10051 - Issue #10882: Add os.sendfile function.
10052
10053 - Issue #10868: Allow usage of the register method of an ABC as a class
10054 decorator.
10055
10056 - Issue #11224: Fixed a regression in tarfile that affected the file-like
10057 objects returned by TarFile.extractfile() regarding performance, memory
10058 consumption and failures with the stream interface.
10059
10060 - Issue #10924: Adding salt and Modular Crypt Format to crypt library.
10061 Moved old C wrapper to _crypt, and added a Python wrapper with
10062 enhanced salt generation and simpler API for password generation.
10063
10064 - Issue #11074: Make 'tokenize' so it can be reloaded.
10065
10066 - Issue #11085: Moved collections abstract base classes into a separate
10067 module called collections.abc, following the pattern used by importlib.abc.
10068 For backwards compatibility, the names are imported into the collections
10069 module.
10070
10071 - Issue #4681: Allow mmap() to work on file sizes and offsets larger than
10072 4GB, even on 32-bit builds. Initial patch by Ross Lagerwall, adapted for
10073 32-bit Windows.
10074
10075 - Issue #11169: compileall module uses repr() to format filenames and paths to
10076 escape surrogate characters and show spaces.
10077
10078 - Issue #11089: Fix performance issue limiting the use of ConfigParser()
10079 with large config files.
10080
10081 - Issue #10276: Fix the results of zlib.crc32() and zlib.adler32() on buffers
10082 larger than 4GB. Patch by Nadeem Vawda.
10083
10084 - Issue #11388: Added a clear() method to MutableSequence
10085
10086 - Issue #11174: Add argparse.MetavarTypeHelpFormatter, which uses type names
10087 for the names of optional and positional arguments in help messages.
10088
10089 - Issue #9348: Raise an early error if argparse nargs and metavar don't match.
10090
10091 - Issue #9026: Fix order of argparse sub-commands in help messages.
10092
10093 - Issue #9347: Fix formatting for tuples in argparse type= error messages.
10094
10095 - Issue #12191: Added shutil.chown() to change user and/or group owner of a
10096 given path also specifying their names.
10097
10098 - Issue #13988: The _elementtree accelerator is used whenever available.
10099 Now xml.etree.cElementTree becomes a deprecated alias to ElementTree.
10100
10101 Build
10102 -----
10103
10104 - Issue #6807: Run msisupport.mak earlier.
10105
10106 - Issue #10580: Minor grammar change in Windows installer.
10107
10108 - Issue #13326: Clean __pycache__ directories correctly on OpenBSD.
10109
10110 - PEP 393: the configure option --with-wide-unicode is removed.
10111
10112 - Issue #12852: Set _XOPEN_SOURCE to 700, instead of 600, to get POSIX 2008
10113 functions on OpenBSD (e.g. fdopendir).
10114
10115 - Issue #11863: Remove support for legacy systems deprecated in Python 3.2
10116 (following PEP 11). These systems are systems using Mach C Threads,
10117 SunOS lightweight processes, GNU pth threads and IRIX threads.
10118
10119 - Issue #8746: Correct faulty configure checks so that os.chflags() and
10120 os.lchflags() are once again built on systems that support these
10121 functions (BSD and OS X). Also add new stat file flags for OS X
10122 (UF_HIDDEN and UF_COMPRESSED).
10123
10124 - Issue #10645: Installing Python no longer creates a
10125 Python-X.Y.Z-pyX.Y.egg-info file in the lib-dynload directory.
10126
10127 - Do not accidentally include the directory containing sqlite.h twice when
10128 building sqlite3.
10129
10130 - Issue #11217: For 64-bit/32-bit Mac OS X universal framework builds,
10131 ensure "make install" creates symlinks in --prefix bin for the "-32"
10132 files in the framework bin directory like the installer does.
10133
10134 - Issue #11347: Use --no-as-needed when linking libpython3.so.
10135
10136 - Issue #11411: Fix 'make DESTDIR=' with a relative destination.
10137
10138 - Issue #11268: Prevent Mac OS X Installer failure if Documentation
10139 package had previously been installed.
10140
10141 - Issue #11495: OSF support is eliminated. It was deprecated in Python 3.2.
10142
10143 IDLE
10144 ----
10145
10146 - Issue #14409: IDLE now properly executes commands in the Shell window
10147 when it cannot read the normal config files on startup and
10148 has to use the built-in default key bindings.
10149 There was previously a bug in one of the defaults.
10150
10151 - IDLE can be launched as python -m idlelib
10152
10153 - Issue #3573: IDLE hangs when passing invalid command line args
10154 (directory(ies) instead of file(s)) (Patch by Guilherme Polo)
10155
10156 - Issue #14200: IDLE shell crash on printing non-BMP unicode character.
10157
10158 - Issue #5219: Prevent event handler cascade in IDLE.
10159
10160 - Issue #964437: Make IDLE help window non-modal.
10161 Patch by Guilherme Polo and Roger Serwy.
10162
10163 - Issue #13933: IDLE auto-complete did not work with some imported
10164 module, like hashlib. (Patch by Roger Serwy)
10165
10166 - Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell.
10167 Original patches by Marco Scataglini and Roger Serwy.
10168
10169 - Issue #4625: If IDLE cannot write to its recent file or breakpoint files,
10170 display a message popup and continue rather than crash. Original patch by
10171 Roger Serwy.
10172
10173 - Issue #8641: Update IDLE 3 syntax coloring to recognize b".." and not u"..".
10174 Patch by Tal Einat.
10175
10176 - Issue #13296: Fix IDLE to clear compile __future__ flags on shell restart.
10177 (Patch by Roger Serwy)
10178
10179 - Issue #9871: Prevent IDLE 3 crash when given byte stings
10180 with invalid hex escape sequences, like b'\x0'.
10181 (Original patch by Claudiu Popa.)
10182
10183 - Issue #12636: IDLE reads the coding cookie when executing a Python script.
10184
10185 - Issue #12540: Prevent zombie IDLE processes on Windows due to changes
10186 in os.kill().
10187
10188 - Issue #12590: IDLE editor window now always displays the first line
10189 when opening a long file. With Tk 8.5, the first line was hidden.
10190
10191 - Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX
10192 with Tk 8.5.
10193
10194 - Issue #1028: Tk returns invalid Unicode null in %A: UnicodeDecodeError.
10195 With Tk < 8.5 _tkinter.c:PythonCmd() raised UnicodeDecodeError, caused
10196 IDLE to exit. Converted to valid Unicode null in PythonCmd().
10197
10198 - Issue #11718: IDLE's open module dialog couldn't find the __init__.py
10199 file in a package.
10200
10201 Tools/Demos
10202 -----------
10203
10204 - Issue #14053: patchcheck.py ("make patchcheck") now works with MQ patches.
10205 Patch by Francisco Martín Brugué.
10206
10207 - Issue #13930: 2to3 is now able to write its converted output files to another
10208 directory tree as well as copying unchanged files and altering the file
10209 suffix. See its new -o, -W and --add-suffix options. This makes it more
10210 useful in many automated code translation workflows.
10211
10212 - Issue #13628: python-gdb.py is now able to retrieve more frames in the Python
10213 traceback if Python is optimized.
10214
10215 - Issue #11996: libpython (gdb), replace "py-bt" command by "py-bt-full" and
10216 add a smarter "py-bt" command printing a classic Python traceback.
10217
10218 - Issue #11179: Make ccbench work under Python 3.1 and 2.7 again.
10219
10220 - Issue #10639: reindent.py no longer converts newlines and will raise
10221 an error if attempting to convert a file with mixed newlines.
10222 "--newline" option added to specify new line character.
10223
10224 Extension Modules
10225 -----------------
10226
10227 - Issue #16847: Fixed improper use of _PyUnicode_CheckConsistency() in
10228 non-pydebug builds. Several extension modules now compile cleanly when
10229 assert()s are enabled in standard builds (-DDEBUG flag).
10230
10231 - Issue #13840: The error message produced by ctypes.create_string_buffer
10232 when given a Unicode string has been fixed.
10233
10234 - Issue #9975: socket: Fix incorrect use of flowinfo and scope_id. Patch by
10235 Vilmos Nebehaj.
10236
10237 - Issue #7777: socket: Add Reliable Datagram Sockets (PF_RDS) support.
10238
10239 - Issue #13159: FileIO and BZ2Compressor/BZ2Decompressor now use a linear-time
10240 buffer growth strategy instead of a quadratic-time one.
10241
10242 - Issue #10141: socket: Add SocketCAN (PF_CAN) support. Initial patch by
10243 Matthias Fuchs, updated by Tiago Gonçalves.
10244
10245 - Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle
10246 would be finalized after the reference to its underlying BufferedRWPair's
10247 writer got cleared by the GC.
10248
10249 - Issue #12881: ctypes: Fix segfault with large structure field names.
10250
10251 - Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by
10252 Thomas Jarosch.
10253
10254 - Issue #13013: ctypes: Fix a reference leak in PyCArrayType_from_ctype.
10255 Thanks to Suman Saha for finding the bug and providing a patch.
10256
10257 - Issue #13022: Fix: _multiprocessing.recvfd() doesn't check that
10258 file descriptor was actually received.
10259
10260 - Issue #1172711: Add 'long long' support to the array module.
10261 Initial patch by Oren Tirosh and Hirokazu Yamamoto.
10262
10263 - Issue #12483: ctypes: Fix a crash when the destruction of a callback
10264 object triggers the garbage collector.
10265
10266 - Issue #12950: Fix passing file descriptors in multiprocessing, under
10267 OpenIndiana/Illumos.
10268
10269 - Issue #12764: Fix a crash in ctypes when the name of a Structure field is not
10270 a string.
10271
10272 - Issue #11241: subclasses of ctypes.Array can now be subclassed.
10273
10274 - Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to
10275 some functions like file.write().
10276
10277 - Issue #10309: Define _GNU_SOURCE so that mremap() gets the proper
10278 signature. Without this, architectures where sizeof void* != sizeof int are
10279 broken. Patch given by Hallvard B Furuseth.
10280
10281 - Issue #12051: Fix segfault in json.dumps() while encoding highly-nested
10282 objects using the C accelerations.
10283
10284 - Issue #12017: Fix segfault in json.loads() while decoding highly-nested
10285 objects using the C accelerations.
10286
10287 - Issue #1838: Prevent segfault in ctypes, when _as_parameter_ on a class is set
10288 to an instance of the class.
10289
10290 Tests
10291 -----
10292
10293 - Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode.
10294 Patch by Mikhail Novikov.
10295
10296 - Issue #13447: Add a test file to host regression tests for bugs in the
10297 scripts found in the Tools directory.
10298
10299 - Issue #10881: Fix test_site failure with OS X framework builds.
10300
10301 - Issue #13901: Prevent test_distutils failures on OS X with --enable-shared.
10302
10303 - Issue #13862: Fix spurious failure in test_zlib due to runtime/compile time
10304 minor versions not matching.
10305
10306 - Issue #12804: Fix test_socket and test_urllib2net failures when running tests
10307 on a system without internet access.
10308
10309 - Issue #13726: Fix the ambiguous -S flag in regrtest. It is -o/--slow for slow
10310 tests.
10311
10312 - Issue #11659: Fix ResourceWarning in test_subprocess introduced by #11459.
10313 Patch by Ben Hayden.
10314
10315 - Issue #11577: fix ResourceWarning triggered by improved binhex test coverage
10316
10317 - Issue #11509: Significantly increase test coverage of fileinput.
10318 Patch by Denver Coneybeare at PyCon 2011 Sprints.
10319
10320 - Issue #11689: Fix a variable scoping error in an sqlite3 test
10321
10322 - Issue #13786: Remove unimplemented 'trace' long option from regrtest.py.
10323
10324 - Issue #13725: Fix regrtest to recognize the documented -d flag.
10325 Patch by Erno Tukia.
10326
10327 - Issue #13304: Skip test case if user site-packages disabled (-s or
10328 PYTHONNOUSERSITE). (Patch by Carl Meyer)
10329
10330 - Issue #5661: Add a test for ECONNRESET/EPIPE handling to test_asyncore. Patch
10331 by Xavier de Gaye.
10332
10333 - Issue #13218: Fix test_ssl failures on Debian/Ubuntu.
10334
10335 - Re-enable lib2to3's test_parser.py tests, though with an expected failure
10336 (see issue 13125).
10337
10338 - Issue #12656: Add tests for IPv6 and Unix sockets to test_asyncore.
10339
10340 - Issue #6484: Add unit tests for mailcap module (patch by Gregory Nofi)
10341
10342 - Issue #11651: Improve the Makefile test targets to run more of the test suite
10343 more quickly. The --multiprocess option is now enabled by default, reducing
10344 the amount of time needed to run the tests. "make test" and "make quicktest"
10345 now include some resource-intensive tests, but no longer run the test suite
10346 twice to check for bugs in .pyc generation. Tools/scripts/run_test.py provides
10347 an easy platform-independent way to run test suite with sensible defaults.
10348
10349 - Issue #12331: The test suite for the packaging module can now run from an
10350 installed Python.
10351
10352 - Issue #12331: The test suite for lib2to3 can now run from an installed
10353 Python.
10354
10355 - Issue #12626: In regrtest, allow filtering tests using a glob filter
10356 with the ``-m`` (or ``--match``) option. This works with all test cases
10357 using the unittest module. This is useful with long test suites
10358 such as test_io or test_subprocess.
10359
10360 - Issue #12624: It is now possible to fail after the first failure when
10361 running in verbose mode (``-v`` or ``-W``), by using the ``--failfast``
10362 (or ``-G``) option to regrtest. This is useful with long test suites
10363 such as test_io or test_subprocess.
10364
10365 - Issue #12587: Correct faulty test file and reference in test_tokenize.
10366 (Patch by Robert Xiao)
10367
10368 - Issue #12573: Add resource checks for dangling Thread and Process objects.
10369
10370 - Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64'
10371 as the processor type on some Mac systems.
10372
10373 - Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary
10374 failure in name resolution.
10375
10376 - Issue #11812: Solve transient socket failure to connect to 'localhost'
10377 in test_telnetlib.py.
10378
10379 - Solved a potential deadlock in test_telnetlib.py. Related to issue #11812.
10380
10381 - Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
10382 an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder
10383 Web site.
10384
10385 - Avoid failing in test_urllibnet.test_bad_address when some overzealous
10386 DNS service (e.g. OpenDNS) resolves a non-existent domain name. The test
10387 is now skipped instead.
10388
10389 - Issue #12440: When testing whether some bits in SSLContext.options can be
10390 reset, check the version of the OpenSSL headers Python was compiled against,
10391 rather than the runtime version of the OpenSSL library.
10392
10393 - Issue #11512: Add a test suite for the cgitb module. Patch by Robbie Clemons.
10394
10395 - Issue #12497: Install test/data to prevent failures of the various codecmaps
10396 tests.
10397
10398 - Issue #12496: Install test/capath directory to prevent test_connect_capath
10399 testcase failure in test_ssl.
10400
10401 - Issue #12469: Run wakeup and pending signal tests in a subprocess to run the
10402 test in a fresh process with only one thread and to not change signal
10403 handling of the parent process.
10404
10405 - Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run
10406 test_tk or test_ttk_guionly under a username that is not currently logged
10407 in to the console windowserver (as may be the case under buildbot or ssh).
10408
10409 - Issue #12407: Explicitly skip test_capi.EmbeddingTest under Windows.
10410
10411 - Issue #12400: regrtest -W doesn't rerun the tests twice anymore, but captures
10412 the output and displays it on failure instead. regrtest -v doesn't print the
10413 error twice anymore if there is only one error.
10414
10415 - Issue #12141: Install copies of template C module file so that
10416 test_build_ext of test_distutils and test_command_build_ext of
10417 test_packaging are no longer silently skipped when
10418 run outside of a build directory.
10419
10420 - Issue #8746: Add additional tests for os.chflags() and os.lchflags().
10421 Patch by Garrett Cooper.
10422
10423 - Issue #10736: Fix test_ttk test_widgets failures with Cocoa Tk 8.5.9
10424 2.8 + on Mac OS X. (Patch by Ronald Oussoren)
10425
10426 - Issue #12057: Add tests for ISO 2022 codecs (iso2022_jp, iso2022_jp_2,
10427 iso2022_kr).
10428
10429 - Issue #12096: Fix a race condition in test_threading.test_waitfor(). Patch
10430 written by Charles-François Natali.
10431
10432 - Issue #11614: import __hello__ prints "Hello World!". Patch written by
10433 Andreas Stührk.
10434
10435 - Issue #5723: Improve json tests to be executed with and without accelerations.
10436
10437 - Issue #12041: Make test_wait3 more robust.
10438
10439 - Issue #11873: Change regex in test_compileall to fix occasional failures when
10440 the randomly generated temporary path happened to match the regex.
10441
10442 - Issue #11958: Fix FTP tests for IPv6, bind to "::1" instead of "localhost".
10443 Patch written by Charles-Francois Natali.
10444
10445 - Issue #8407, #11859: Fix tests of test_io using threads and an alarm: use
10446 pthread_sigmask() to ensure that the SIGALRM signal is received by the main
10447 thread.
10448
10449 - Issue #11811: Factor out detection of IPv6 support on the current host
10450 and make it available as ``test.support.IPV6_ENABLED``. Patch by
10451 Charles-François Natali.
10452
10453 - Issue #10914: Add a minimal embedding test to test_capi.
10454
10455 - Issue #11223: Skip test_lock_acquire_interruption() and
10456 test_rlock_acquire_interruption() of test_threadsignals if a thread lock is
10457 implemented using a POSIX mutex and a POSIX condition variable. A POSIX
10458 condition variable cannot be interrupted by a signal (e.g. on Linux, the
10459 futex system call is restarted).
10460
10461 - Issue #11790: Fix sporadic failures in test_multiprocessing.WithProcessesTestCondition.
10462
10463 - Fix possible "file already exists" error when running the tests in parallel.
10464
10465 - Issue #11719: Fix message about unexpected test_msilib skip on non-Windows
10466 platforms. Patch by Nadeem Vawda.
10467
10468 - Issue #11727: Add a --timeout option to regrtest: if a test takes more than
10469 TIMEOUT seconds, dumps the traceback of all threads and exits.
10470
10471 - Issue #11653: fix -W with -j in regrtest.
10472
10473 - The email test suite now lives in the Lib/test/test_email package. The test
10474 harness code has also been modernized to allow use of new unittest features.
10475
10476 - regrtest now discovers test packages as well as test modules.
10477
10478 - Issue #11577: improve test coverage of binhex.py. Patch by Arkady Koplyarov.
10479
10480 - New test_crashers added to exercise the scripts in the Lib/test/crashers
10481 directory and confirm they fail as expected
10482
10483 - Issue #11578: added test for the timeit module. Patch by Michael Henry.
10484
10485 - Issue #11503: improve test coverage of posixpath.py. Patch by Evan Dandrea.
10486
10487 - Issue #11505: improves test coverage of string.py, increases granularity of
10488 string.Formatter tests. Initial patch by Alicia Arlen.
10489
10490 - Issue #11548: Improve test coverage of the shutil module. Patch by
10491 Evan Dandrea.
10492
10493 - Issue #11554: Reactivated test_email_codecs.
10494
10495 - Issue #11505: improves test coverage of string.py. Patch by Alicia
10496 Arlen
10497
10498 - Issue #11490: test_subprocess.test_leaking_fds_on_error no longer gives a
10499 false positive if the last directory in the path is inaccessible.
10500
10501 - Issue #11223: Fix test_threadsignals to fail, not hang, when the
10502 non-semaphore implementation of locks is used under POSIX.
10503
10504 - Issue #10911: Add tests on CGI with non-ASCII characters. Patch written by
10505 Pierre Quentel.
10506
10507 - Issue #9931: Fix hangs in GUI tests under Windows in certain conditions.
10508 Patch by Hirokazu Yamamoto.
10509
10510 - Issue #10512: Properly close sockets under test.test_cgi.
10511
10512 - Issue #10992: Make tests pass under coverage.
10513
10514 - Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due
10515 to open door files.
10516
10517 - Issue #10990: Prevent tests from clobbering a set trace function.
10518
10519 C-API
10520 -----
10521
10522 - Issue #13452: PyUnicode_EncodeDecimal() doesn't support error handlers
10523 different than "strict" anymore. The caller was unable to compute the
10524 size of the output buffer: it depends on the error handler.
10525
10526 - Issue #13560: Add PyUnicode_DecodeLocale(), PyUnicode_DecodeLocaleAndSize()
10527 and PyUnicode_EncodeLocale() functions to the C API to decode/encode from/to
10528 the current locale encoding.
10529
10530 - Issue #10831: PyUnicode_FromFormat() supports %li, %lli and %zi formats.
10531
10532 - Issue #11246: Fix PyUnicode_FromFormat("%V") to decode the byte string from
10533 UTF-8 (with replace error handler) instead of ISO-8859-1 (in strict mode).
10534 Patch written by Ray Allen.
10535
10536 - Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on
10537 narrow build.
10538
10539 - Add PyObject_GenericGetDict and PyObject_GeneriSetDict. They are generic
10540 implementations for the getter and setter of a ``__dict__`` descriptor of C
10541 types.
10542
10543 - Issue #13727: Add 3 macros to access PyDateTime_Delta members:
10544 PyDateTime_DELTA_GET_DAYS, PyDateTime_DELTA_GET_SECONDS,
10545 PyDateTime_DELTA_GET_MICROSECONDS.
10546
10547 - Issue #10542: Add 4 macros to work with surrogates: Py_UNICODE_IS_SURROGATE,
10548 Py_UNICODE_IS_HIGH_SURROGATE, Py_UNICODE_IS_LOW_SURROGATE,
10549 Py_UNICODE_JOIN_SURROGATES.
10550
10551 - Issue #12724: Add Py_RETURN_NOTIMPLEMENTED macro for returning NotImplemented.
10552
10553 - PY_PATCHLEVEL_REVISION has been removed, since it's meaningless with
10554 Mercurial.
10555
10556 - Issue #12173: The first argument of PyImport_ImportModuleLevel is now `const
10557 char *` instead of `char *`.
10558
10559 - Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
10560
10561 Documentation
10562 -------------
10563
10564 - Issue #13989: Document that GzipFile does not support text mode, and give a
10565 more helpful error message when opened with an invalid mode string.
10566
10567 - Issue #13921: Undocument and clean up sqlite3.OptimizedUnicode,
10568 which is obsolete in Python 3.x. It's now aliased to str for
10569 backwards compatibility.
10570
10571 - Issue #12102: Document that buffered files must be flushed before being used
10572 with mmap. Patch by Steffen Daode Nurpmeso.
10573
10574 - Issue #8982: Improve the documentation for the argparse Namespace object.
10575
10576 - Issue #9343: Document that argparse parent parsers must be configured before
10577 their children.
10578
10579 - Issue #13498: Clarify docs of os.makedirs()'s exist_ok argument. Done with
10580 great native-speaker help from R. David Murray.
10581
10582 - Issues #13491 and #13995: Fix many errors in sqlite3 documentation.
10583 Initial patch for #13491 by Johannes Vogel.
10584
10585 - Issue #13402: Document absoluteness of sys.executable.
10586
10587 - Issue #13883: PYTHONCASEOK also works on OS X.
10588
10589 - Issue #9021: Add an introduction to the copy module documentation.
10590
10591 - Issue #6005: Examples in the socket library documentation use sendall, where
10592 relevant, instead send method.
10593
10594 - Issue #12798: Updated the mimetypes documentation.
10595
10596 - Issue #12949: Document the kwonlyargcount argument for the PyCode_New
10597 C API function.
10598
10599 - Issue #13513: Fix io.IOBase documentation to correctly link to the
10600 io.IOBase.readline method instead of the readline module.
10601
10602 - Issue #13237: Reorganise subprocess documentation to emphasise convenience
10603 functions and the most commonly needed arguments to Popen.
10604
10605 - Issue #13141: Demonstrate recommended style for socketserver examples.
10606
10607 - Issue #11818: Fix tempfile examples for Python 3.
10608
10609
10610 What's New in Python 3.2?
10611 =========================
10612
10613 *Release date: 20-Feb-2011*
10614
10615 Core and Builtins
10616 -----------------
10617
10618 - Issue #11249: Fix potential crashes when using the limited API.
10619
10620 Build
10621 -----
10622
10623 - Issue #11222: Fix non-framework shared library build on Mac OS X.
10624
10625 - Issue #11184: Fix large-file support on AIX.
10626
10627 - Issue #941346: Fix broken shared library build on AIX.
10628
10629 Documentation
10630 -------------
10631
10632 - Issue #10709: Add updated AIX notes in Misc/README.AIX.
10633
10634
10635 What's New in Python 3.2 Release Candidate 3?
10636 =============================================
10637
10638 *Release date: 13-Feb-2011*
10639
10640 Core and Builtins
10641 -----------------
10642
10643 - Issue #11134: Add missing fields to typeslots.h.
10644
10645 - Issue #11135: Remove redundant doc field from PyType_Spec.
10646
10647 - Issue #11067: Add PyType_GetFlags, to support PyUnicode_Check in the limited
10648 ABI.
10649
10650 - Issue #11118: Fix bogus export of None in python3.dll.
10651
10652 Library
10653 -------
10654
10655 - Issue #11116: any error during addition of a message to a mailbox now causes a
10656 rollback, instead of leaving the mailbox partially modified.
10657
10658 - Issue #11132: Fix passing of "optimize" parameter when recursing in
10659 compileall.compile_dir().
10660
10661 - Issue #11110: Fix a potential decref of a NULL in sqlite3.
10662
10663 - Issue #8275: Fix passing of callback arguments with ctypes under Win64. Patch
10664 by Stan Mihai.
10665
10666 Build
10667 -----
10668
10669 - Issue #11079: The /Applications/Python x.x folder created by the Mac OS X
10670 installers now includes a link to the installed documentation and no longer
10671 includes an Extras directory. The Tools directory is now installed in the
10672 framework under share/doc.
10673
10674 - Issue #11121: Fix building with --enable-shared.
10675
10676 Tests
10677 -----
10678
10679 - Issue #10971: test_zipimport_support is once again compatible with the refleak
10680 hunter feature of test.regrtest.
10681
10682
10683 What's New in Python 3.2 Release Candidate 2?
10684 =============================================
10685
10686 *Release date: 30-Jan-2011*
10687
10688 Core and Builtins
10689 -----------------
10690
10691 - Issue #10451: memoryview objects could allow mutating a readable buffer.
10692 Initial patch by Ross Lagerwall.
10693
10694 Library
10695 -------
10696
10697 - Issue #9124: mailbox now accepts binary input and reads and writes mailbox
10698 files in binary mode, using the email package's binary support to parse
10699 arbitrary email messages. StringIO and text file input is deprecated,
10700 and string input fails early if non-ASCII characters are used, where
10701 previously it would fail when the email was processed in a later step.
10702
10703 - Issue #10845: Mitigate the incompatibility between the multiprocessing
10704 module on Windows and the use of package, zipfile or directory execution
10705 by special casing main modules that actually *are* called __main__.py.
10706
10707 - Issue #11045: Protect logging call against None argument.
10708
10709 - Issue #11052: Correct IDLE menu accelerators on Mac OS X for Save
10710 commands.
10711
10712 - Issue #11053: Fix IDLE "Syntax Error" windows to behave as in 2.x,
10713 preventing a confusing hung appearance on OS X with the windows
10714 obscured.
10715
10716 - Issue #10940: Workaround an IDLE hang on Mac OS X 10.6 when using the
10717 menu accelerators for Open Module, Go to Line, and New Indent Width.
10718 The accelerators still work but no longer appear in the menu items.
10719
10720 - Issue #10989: Fix a crash on SSLContext.load_verify_locations(None, True).
10721
10722 - Issue #11020: Command-line pyclbr was broken because of missing 2-to-3
10723 conversion.
10724
10725 - Issue #11019: Fixed BytesGenerator so that it correctly handles a Message
10726 with a None body.
10727
10728 - Issue #11014: Make 'filter' argument in tarfile.Tarfile.add() into a
10729 keyword-only argument. The preceding positional argument was deprecated,
10730 so it made no sense to add filter as a positional argument.
10731
10732 - Issue #11004: Repaired edge case in deque.count().
10733
10734 - Issue #10974: IDLE no longer crashes if its recent files list includes files
10735 with non-ASCII characters in their path names.
10736
10737 - Have hashlib.algorithms_available and hashlib.algorithms_guaranteed both
10738 return sets instead of one returning a tuple and the other a frozenset.
10739
10740 - Issue #10987: Fix the recursion limit handling in the _pickle module.
10741
10742 - Issue #10983: Fix several bugs making tunnel requests in http.client.
10743
10744 - Issue #10955: zipimport uses ASCII encoding instead of cp437 to decode
10745 filenames, at bootstrap, if the codec registry is not ready yet. It is still
10746 possible to have non-ASCII filenames using the Unicode flag (UTF-8 encoding)
10747 for all file entries in the ZIP file.
10748
10749 - Issue #10949: Improved robustness of rotating file handlers.
10750
10751 - Issue #10955: Fix a potential crash when trying to mmap() a file past its
10752 length. Initial patch by Ross Lagerwall.
10753
10754 - Issue #10898: Allow compiling the posix module when the C library defines
10755 a symbol named FSTAT.
10756
10757 - Issue #10980: the HTTP server now encodes headers with iso-8859-1 (latin1)
10758 encoding. This is the preferred encoding of PEP 3333 and the base encoding
10759 of HTTP 1.1.
10760
10761 - To match the behaviour of HTTP server, the HTTP client library now also
10762 encodes headers with iso-8859-1 (latin1) encoding. It was already doing
10763 that for incoming headers which makes this behaviour now consistent in
10764 both incoming and outgoing direction.
10765
10766 - Issue #9509: argparse now properly handles IOErrors raised by
10767 argparse.FileType.
10768
10769 - Issue #10961: The new pydoc server now better handles exceptions raised
10770 during request handling.
10771
10772 - Issue #10680: Fix mutually exclusive arguments for argument groups in
10773 argparse.
10774
10775 Build
10776 -----
10777
10778 - Issue #11054: Allow Mac OS X installer builds to again work on 10.5 with
10779 the system-provided Python.
10780
10781
10782 What's New in Python 3.2 Release Candidate 1
10783 ============================================
10784
10785 *Release date: 16-Jan-2011*
10786
10787 Core and Builtins
10788 -----------------
10789
10790 - Issue #10889: range indexing and slicing now works correctly on ranges with
10791 a length that exceeds sys.maxsize.
10792
10793 - Issue #10892: Don't segfault when trying to delete __abstractmethods__ from a
10794 class.
10795
10796 - Issue #8020: Avoid a crash where the small objects allocator would read
10797 non-Python managed memory while it is being modified by another thread. Patch
10798 by Matt Bandy.
10799
10800 - Issue #10841: On Windows, set the binary mode on stdin, stdout, stderr and all
10801 io.FileIO objects (to not translate newlines, \r\n <=> \n). The Python parser
10802 translates newlines (\r\n => \n).
10803
10804 - Remove buffer API from stable ABI for now, see #10181.
10805
10806 - Issue #8651: PyArg_Parse*() functions raise an OverflowError if the file
10807 doesn't have PY_SSIZE_T_CLEAN define and the size doesn't fit in an int
10808 (length bigger than 2^31-1 bytes).
10809
10810 - Issue #9015, #9611: FileIO.readinto(), FileIO.write(), os.write() and
10811 stdprinter.write() clamp the length to INT_MAX on Windows.
10812
10813 - Issue #8278: On Windows and with a NTFS filesystem, os.stat() and os.utime()
10814 can now handle dates after 2038.
10815
10816 - Issue #10780: PyErr_SetFromWindowsErrWithFilename() and
10817 PyErr_SetExcFromWindowsErrWithFilename() decode the filename from the
10818 filesystem encoding instead of UTF-8.
10819
10820 - Issue #10779: PyErr_WarnExplicit() decodes the filename from the filesystem
10821 encoding instead of UTF-8.
10822
10823 - Add sys.flags attribute for the new -q command-line option.
10824
10825 - Issue #11506: Trying to assign to a bytes literal should result in a
10826 SyntaxError.
10827
10828 Library
10829 -------
10830
10831 - Issue #10916: mmap should not segfault when a file is mapped using 0 as length
10832 and a non-zero offset, and an attempt to read past the end of file is made
10833 (IndexError is raised instead). Patch by Ross Lagerwall.
10834
10835 - Issue #10154, #10090: change the normalization of UTF-8 to "UTF-8" instead
10836 of "UTF8" in the locale module as the latter is not supported MacOSX and OpenBSD.
10837
10838 - Issue #10907: Warn OS X 10.6 IDLE users to use ActiveState Tcl/Tk 8.5, rather
10839 than the currently problematic Apple-supplied one, when running with the
10840 64-/32-bit installer variant.
10841
10842 - Issue #4953: cgi.FieldStorage and cgi.parse() parse the request as bytes, not
10843 as unicode, and accept binary files. Add encoding and errors attributes to
10844 cgi.FieldStorage. Patch written by Pierre Quentel (with many inputs by Glenn
10845 Linderman).
10846
10847 - Add encoding and errors arguments to urllib.parse_qs() and urllib.parse_qsl().
10848
10849 - Issue #10899: No function type annotations in the standard library. Removed
10850 function type annotations from _pyio.py.
10851
10852 - Issue #10875: Update Regular Expression HOWTO; patch by 'SilentGhost'.
10853
10854 - Issue #10872: The repr() of TextIOWrapper objects now includes the mode
10855 if available.
10856
10857 - Issue #10869: Fixed bug where ast.increment_lineno modified the root node
10858 twice.
10859
10860 - Issue #5871: email.header.Header.encode now raises an error if any
10861 continuation line in the formatted value has no leading white space and looks
10862 like a header. Since Generator uses Header to format all headers, this check
10863 is made for all headers in any serialized message at serialization time. This
10864 provides protection against header injection attacks.
10865
10866 - Issue #10859: Make ``contextlib.GeneratorContextManager`` officially
10867 private by renaming it to ``_GeneratorContextManager``.
10868
10869 - Issue #10042: Fixed the total_ordering decorator to handle cross-type
10870 comparisons that could lead to infinite recursion.
10871
10872 - Issue #10686: the email package now :rfc:`2047`\ -encodes headers with
10873 non-ASCII bytes (parsed by a BytesParser) when doing conversion to 7bit-clean
10874 presentation, instead of replacing them with ?s.
10875
10876 - email.header.Header was incorrectly encoding folding whitespace when
10877 rfc2047-encoding header values with embedded newlines, leaving them without
10878 folding whitespace. It now uses the continuation_ws, as it does for
10879 continuation lines that it creates itself.
10880
10881 - Issue #1777412, #10827: Changed the rules for 2-digit years. The
10882 time.asctime(), time.ctime() and time.strftime() functions will now format
10883 any year when ``time.accept2dyear`` is False and will accept years >= 1000
10884 otherwise. ``time.mktime`` and ``time.strftime`` now accept full range
10885 supported by the OS. With Visual Studio or on Solaris, the year is limited to
10886 the range [1; 9999]. Conversion of 2-digit years to 4-digit is deprecated.
10887
10888 - Issue #7858: Raise an error properly when os.utime() fails under Windows
10889 on an existing file.
10890
10891 - Issue #3839: wsgiref should not override a Content-Length header set by
10892 the application. Initial patch by Clovis Fabricio.
10893
10894 - Issue #10492: bdb.Bdb.run() only traces the execution of the code, not the
10895 compilation (if the input is a string).
10896
10897 - Issue #7995: When calling accept() on a socket with a timeout, the returned
10898 socket is now always blocking, regardless of the operating system.
10899
10900 - Issue #10756: atexit normalizes the exception before displaying it. Patch by
10901 Andreas Stührk.
10902
10903 - Issue #10790: email.header.Header.append's charset logic now works correctly
10904 for charsets whose output codec is different from its input codec.
10905
10906 - Issue #10819: SocketIO.name property returns -1 when its closed, instead of
10907 raising a ValueError, to fix repr().
10908
10909 - Issue #8650: zlib.compress() and zlib.decompress() raise an OverflowError if
10910 the input buffer length doesn't fit into an unsigned int (length bigger than
10911 2^32-1 bytes).
10912
10913 - Issue #6643: Reinitialize locks held within the threading module after fork to
10914 avoid a potential rare deadlock or crash on some platforms.
10915
10916 - Issue #10806, issue #9905: Fix subprocess pipes when some of the standard file
10917 descriptors (0, 1, 2) are closed in the parent process. Initial patch by Ross
10918 Lagerwall.
10919
10920 - `unittest.TestCase` can be instantiated without a method name; for simpler
10921 exploration from the interactive interpreter.
10922
10923 - Issue #10798: Reject supporting concurrent.futures if the system has too
10924 few POSIX semaphores.
10925
10926 - Issue #10807: Remove base64, bz2, hex, quopri, rot13, uu and zlib codecs from
10927 the codec aliases. They are still accessible via codecs.lookup().
10928
10929 - Issue #10801: In zipfile, support different encodings for the header and the
10930 filenames.
10931
10932 - Issue #6285: IDLE no longer crashes on missing help file; patch by Scott
10933 David Daniels.
10934
10935 - Fix collections.OrderedDict.setdefault() so that it works in subclasses that
10936 define __missing__().
10937
10938 - Issue #10786: unittest.TextTestRunner default stream no longer bound at import
10939 time. `sys.stderr` now looked up at instantiation time. Fix contributed by
10940 Mark Roddy.
10941
10942 - Issue #10753: Characters ';', '=' and ',' in the PATH_INFO environment variable
10943 won't be quoted when the URI is constructed by the wsgiref.util's request_uri
10944 method. According to RFC 3986, these characters can be a part of params in
10945 PATH component of URI and need not be quoted.
10946
10947 - Issue #10738: Fix webbrowser.Opera.raise_opts.
10948
10949 - Issue #9824: SimpleCookie now encodes , and ; in values to cater to how
10950 browsers actually parse cookies.
10951
10952 - Issue #9333: os.symlink now available regardless of user privileges. The
10953 function now raises OSError on Windows >=6.0 when the user is unable to create
10954 symbolic links. XP and 2003 still raise NotImplementedError.
10955
10956 - Issue #10783: struct.pack() no longer implicitly encodes unicode to UTF-8.
10957
10958 - Issue #10730: Add SVG mime types to mimetypes module.
10959
10960 - Issue #10768: Make the Tkinter ScrolledText widget work again.
10961
10962 - Issue #10777: Fix "dictionary changed size during iteration" bug in
10963 ElementTree register_namespace().
10964
10965 - Issue #10626: test_logging now preserves logger disabled states.
10966
10967 - Issue #10774: test_logging now removes temp files created during tests.
10968
10969 - Issue #5258/#10642: if site.py encounters a .pth file that generates an error,
10970 it now prints the filename, line number, and traceback to stderr and skips
10971 the rest of that individual file, instead of stopping processing entirely.
10972
10973 - Issue #10763: subprocess.communicate() closes stdout and stderr if both are
10974 pipes (bug specific to Windows).
10975
10976 - Issue #1693546: fix email.message RFC 2231 parameter encoding to be in better
10977 compliance (no "s around encoded values).
10978
10979 - Improved the diff message in the unittest module's assertCountEqual().
10980
10981 - Issue #1155362: email.utils.parsedate_tz now handles a missing space before
10982 the '-' of a timezone field as well as before a '+'.
10983
10984 - Issue #4871: The zipfile module now gives a more useful error message if
10985 an attempt is made to use a string to specify the archive password.
10986
10987 - Issue #10750: The ``raw`` attribute of buffered IO objects is now read-only.
10988
10989 - Deprecated assertDictContainsSubset() in the unittest module.
10990
10991 C-API
10992 -----
10993
10994 - PyObject_CallMethod now passes along any underlying AttributeError from
10995 PyObject_GetAttr, instead of replacing it with something less informative
10996
10997 - Issue #10913: Deprecate misleading functions PyEval_AcquireLock() and
10998 PyEval_ReleaseLock(). The thread-state aware APIs should be used instead.
10999
11000 - Issue #10333: Remove ancient GC API, which has been deprecated since Python
11001 2.2.
11002
11003 Build
11004 -----
11005
11006 - Issue #10843: Update third-party library versions used in OS X 32-bit
11007 installer builds: bzip2 1.0.6, readline 6.1.2, SQLite 3.7.4 (with FTS3/FTS4
11008 and RTREE enabled), and ncursesw 5.5 (wide-char support enabled).
11009
11010 - Issue #10820: Fix OS X framework installs to support version-specific
11011 scripts (#10679).
11012
11013 - Issue #7716: Under Solaris, don't assume existence of /usr/xpg4/bin/grep in
11014 the configure script but use $GREP instead. Patch by Fabian Groffen.
11015
11016 - Issue #10475: Don't hardcode compilers for LDSHARED/LDCXXSHARED on NetBSD
11017 and DragonFly BSD. Patch by Nicolas Joly.
11018
11019 - Issue #10679: The "idle", "pydoc" and "2to3" scripts are now installed with
11020 a version-specific suffix on "make altinstall".
11021
11022 - Issue #10655: Fix the build on PowerPC on Linux with GCC when building with
11023 timestamp profiling (--with-tsc): the preprocessor test for the PowerPC
11024 support now looks for "__powerpc__" as well as "__ppc__": the latter seems to
11025 only be present on OS X; the former is the correct one for Linux with GCC.
11026
11027 - Issue #1099: Fix the build on MacOSX when building a framework with pydebug
11028 using GCC 4.0.
11029
11030 Tools/Demos
11031 -----------
11032
11033 - Issue #10843: Install the Tools directory on OS X in the applications Extras
11034 (/Applications/Python 3.n/Extras/) where the Demo directory had previous been
11035 installed.
11036
11037 - Issue #7962: The Demo directory is gone. Most of the old and unmaintained
11038 demos have been removed, others integrated in documentation or a new
11039 Tools/demo subdirectory.
11040
11041 - Issue #10502: Addition of the unittestgui tool. Originally by Steve Purcell.
11042 Updated for test discovery by Mark Roddy and Python 3 compatibility by Brian
11043 Curtin.
11044
11045 Tests
11046 -----
11047
11048 - Issue #11910: Fix test_heapq to skip the C tests when _heapq is missing.
11049
11050 - Fix test_startfile to wait for child process to terminate before finishing.
11051
11052 - Issue #10822: Fix test_posix:test_getgroups failure under Solaris. Patch
11053 by Ross Lagerwall.
11054
11055 - Make the --coverage flag work for test.regrtest.
11056
11057 - Issue #1677694: Refactor and improve test_timeout. Original patch by
11058 Björn Lindqvist.
11059
11060 - Issue #5485: Add tests for the UseForeignDTD method of expat parser objects.
11061 Patch by Jean-Paul Calderone and Sandro Tosi.
11062
11063 - Issue #6293: Have regrtest.py echo back sys.flags. This is done by default in
11064 whole runs and enabled selectively using ``--header`` when running an explicit
11065 list of tests. Original patch by Collin Winter.
11066
11067
11068 What's New in Python 3.2 Beta 2?
11069 ================================
11070
11071 *Release date: 19-Dec-2010*
11072
11073 Core and Builtins
11074 -----------------
11075
11076 - Issue #8844: Regular and recursive lock acquisitions can now be interrupted
11077 by signals on platforms using pthreads. Patch by Reid Kleckner.
11078
11079 - Issue #4236: PyModule_Create2 now checks the import machinery directly
11080 rather than the Py_IsInitialized flag, avoiding a Fatal Python
11081 error in certain circumstances when an import is done in __del__.
11082
11083 - Issue #5587: add a repr to dict_proxy objects. Patch by David Stanek and
11084 Daniel Urban.
11085
11086 Library
11087 -------
11088
11089 - Issue #3243: Support iterable bodies in httplib. Patch Contributions by
11090 Xuanji Li and Chris AtLee.
11091
11092 - Issue #10611: SystemExit exception will no longer kill a unittest run.
11093
11094 - Issue #9857: It is now possible to skip a test in a setUp, tearDown or clean
11095 up function.
11096
11097 - Issue #10573: use actual/expected consistently in unittest methods.
11098 The order of the args of assertCountEqual is also changed.
11099
11100 - Issue #9286: email.utils.parseaddr no longer concatenates blank-separated
11101 words in the local part of email addresses, thereby preserving the input.
11102
11103 - Issue #6791: Limit header line length (to 65535 bytes) in http.client
11104 and http.server, to avoid denial of services from the other party.
11105
11106 - Issue #10404: Use ctl-button-1 on OSX for the context menu in Idle.
11107
11108 - Issue #9907: Fix tab handling on OSX when using editline by calling
11109 rl_initialize first, then setting our custom defaults, then reading .editrc.
11110
11111 - Issue #4188: Avoid creating dummy thread objects when logging operations
11112 from the threading module (with the internal verbose flag activated).
11113
11114 - Issue #10711: Remove HTTP 0.9 support from http.client. The ``strict``
11115 parameter to HTTPConnection and friends is deprecated.
11116
11117 - Issue #9721: Fix the behavior of urljoin when the relative url starts with a
11118 ';' character. Patch by Wes Chow.
11119
11120 - Issue #10714: Limit length of incoming request in http.server to 65536 bytes
11121 for security reasons. Initial patch by Ross Lagerwall.
11122
11123 - Issue #9558: Fix distutils.command.build_ext with VS 8.0.
11124
11125 - Issue #10667: Fast path for collections.Counter().
11126
11127 - Issue #10695: passing the port as a string value to telnetlib no longer
11128 causes debug mode to fail.
11129
11130 - Issue #1078919: add_header now automatically RFC2231 encodes parameters
11131 that contain non-ascii values.
11132
11133 - Issue #10188 (partial resolution): tempfile.TemporaryDirectory emits
11134 a warning on sys.stderr rather than throwing a misleading exception
11135 if cleanup fails due to nulling out of modules during shutdown.
11136 Also avoids an AttributeError when mkdtemp call fails and issues
11137 a ResourceWarning on implicit cleanup via __del__.
11138
11139 - Issue #10107: Warn about unsaved files in IDLE on OSX.
11140
11141 - Issue #7213: subprocess.Popen's default for close_fds has been changed.
11142 It is now True in most cases other than on Windows when input, output or
11143 error handles are provided.
11144
11145 - Issue #6559: subprocess.Popen has a new pass_fds parameter (actually
11146 added in 3.2beta1) to allow specifying a specific list of file descriptors
11147 to keep open in the child process.
11148
11149 - Issue #1731717: Fixed the problem where subprocess.wait() could cause an
11150 OSError exception when The OS had been told to ignore SIGCLD in our process
11151 or otherwise not wait for exiting child processes.
11152
11153 Tests
11154 -----
11155
11156 - Issue #775964: test_grp now skips YP/NIS entries instead of failing when
11157 encountering them.
11158
11159 Tools/Demos
11160 -----------
11161
11162 - Issue #6075: IDLE on Mac OS X now works with both Carbon AquaTk and
11163 Cocoa AquaTk.
11164
11165 - Issue #10710: ``Misc/setuid-prog.c`` is removed from the source tree.
11166
11167 - Issue #10706: Remove outdated script runtests.sh. Either ``make test``
11168 or ``python -m test`` should be used instead.
11169
11170 Build
11171 -----
11172
11173 - The Windows build now uses Tcl/Tk 8.5.9 and sqlite3 3.7.4.
11174
11175 - Issue #9234: argparse supports alias names for subparsers.
11176
11177
11178 What's New in Python 3.2 Beta 1?
11179 ================================
11180
11181 *Release date: 05-Dec-2010*
11182
11183 Core and Builtins
11184 -----------------
11185
11186 - Issue #10630: Return dict views from the dict proxy keys()/values()/items()
11187 methods.
11188
11189 - Issue #10596: Fix float.__mod__ to have the same behaviour as float.__divmod__
11190 with respect to signed zeros. -4.0 % 4.0 should be 0.0, not -0.0.
11191
11192 - Issue #1772833: Add the -q command-line option to suppress copyright and
11193 version output in interactive mode.
11194
11195 - Provide an *optimize* parameter in the built-in compile() function.
11196
11197 - Fixed several corner case issues on Windows in os.stat/os.lstat related to
11198 reparse points.
11199
11200 - PEP 384 (Defining a Stable ABI) is implemented.
11201
11202 - Issue #2690: Range objects support negative indices and slicing.
11203
11204 - Issue #9915: Speed up sorting with a key.
11205
11206 - Issue #8685: Speed up set difference ``a - b`` when source set ``a`` is much
11207 larger than operand ``b``. Patch by Andrew Bennetts.
11208
11209 - Issue #10518: Bring back the callable() builtin.
11210
11211 - Issue #7094: Added alternate formatting (specified by '#') to ``__format__``
11212 method of float, complex, and Decimal. This allows more precise control over
11213 when decimal points are displayed.
11214
11215 - Issue #10474: range.count() should return integers.
11216
11217 - Issue #1574217: isinstance now catches only AttributeError, rather than
11218 masking all errors.
11219
11220 Library
11221 -------
11222
11223 - logging: added "handler of last resort". See http://bit.ly/last-resort-handler
11224
11225 - test.support: Added TestHandler and Matcher classes for better support of
11226 assertions about logging.
11227
11228 - Issue #4391: Use proper plural forms in argparse.
11229
11230 - Issue #10601: sys.displayhook uses 'backslashreplace' error handler on
11231 UnicodeEncodeError.
11232
11233 - Add the "display" and "undisplay" pdb commands.
11234
11235 - Issue #7245: Add a SIGINT handler in pdb that allows breaking a program again
11236 after a "continue" command.
11237
11238 - Add the "interact" pdb command.
11239
11240 - Issue #7905: Actually respect the keyencoding parameter to shelve.Shelf.
11241
11242 - Issue #1569291: Speed up array.repeat().
11243
11244 - Provide an interface to set the optimization level of compilation in
11245 py_compile, compileall and zipfile.PyZipFile.
11246
11247 - Issue #7904: Changes to urllib.parse.urlsplit to handle schemes as defined by
11248 RFC3986. Anything before :// is considered a scheme and is followed by an
11249 authority (or netloc) and by '/' led path, which is optional.
11250
11251 - Issue #6045: dbm.gnu databases now support get() and setdefault() methods.
11252
11253 - Issue #10620: `python -m unittest` can accept file paths instead of module
11254 names for running specific tests.
11255
11256 - Issue #9424: Deprecate the `unittest.TestCase` methods `assertEquals`,
11257 `assertNotEquals`, `assertAlmostEquals`, `assertNotAlmostEquals` and `assert_`
11258 and replace them with the correct methods in the Python test suite.
11259
11260 - Issue #10272: The ssl module now raises socket.timeout instead of a generic
11261 SSLError on socket timeouts.
11262
11263 - Issue #10528: Allow translators to reorder placeholders in localizable
11264 messages from argparse.
11265
11266 - Issue #10497: Fix incorrect use of gettext in argparse.
11267
11268 - Issue #10478: Reentrant calls inside buffered IO objects (for example by
11269 way of a signal handler) now raise a RuntimeError instead of freezing the
11270 current process.
11271
11272 - logging: Added getLogRecordFactory/setLogRecordFactory with docs and tests.
11273
11274 - Issue #10549: Fix pydoc traceback when text-documenting certain classes.
11275
11276 - Issue #2001: New HTML server with enhanced Web page features. Patch by Ron
11277 Adam.
11278
11279 - Issue #10360: In WeakSet, do not raise TypeErrors when testing for membership
11280 of non-weakrefable objects.
11281
11282 - Issue #940286: pydoc.Helper.help() ignores input/output init parameters.
11283
11284 - Issue #1745035: Add a command size and data size limit to smtpd.py, to prevent
11285 DoS attacks. Patch by Savio Sena.
11286
11287 - Issue #4925: Add filename to error message when executable can't be found in
11288 subprocess.
11289
11290 - Issue #10391: Don't dereference invalid memory in error messages in the ast
11291 module.
11292
11293 - Issue #10027: st_nlink was not being set on Windows calls to os.stat or
11294 os.lstat. Patch by Hirokazu Yamamoto.
11295
11296 - Issue #9333: Expose os.symlink only when the SeCreateSymbolicLinkPrivilege is
11297 held by the user's account, i.e., when the function can actually be used.
11298
11299 - Issue #8879: Add os.link support for Windows.
11300
11301 - Issue #7911: ``unittest.TestCase.longMessage`` defaults to True for improved
11302 failure messages by default. Patch by Mark Roddy.
11303
11304 - Issue #1486713: HTMLParser now has an optional tolerant mode where it tries to
11305 guess at the correct parsing of invalid html.
11306
11307 - Issue #10554: Add context management protocol support to subprocess.Popen objects.
11308
11309 - Issue #8989: email.utils.make_msgid now has a domain parameter that can
11310 override the domain name used in the generated msgid.
11311
11312 - Issue #9299: Add exist_ok parameter to os.makedirs to suppress the 'File
11313 exists' exception when a target directory already exists with the specified
11314 mode. Patch by Ray Allen.
11315
11316 - Issue #9573: os.fork() now works correctly when triggered as a side effect of
11317 a module import.
11318
11319 - Issue #10464: netrc now correctly handles lines with embedded '#' characters.
11320
11321 - Added itertools.accumulate().
11322
11323 - Issue #4113: Added custom ``__repr__`` method to ``functools.partial``.
11324 Original patch by Daniel Urban.
11325
11326 - Issue #10273: Rename `assertRegexpMatches` and `assertRaisesRegexp` to
11327 `assertRegex` and `assertRaisesRegex`.
11328
11329 - Issue #10535: Enable silenced warnings in unittest by default.
11330
11331 - Issue #9873: The URL parsing functions in urllib.parse now accept ASCII byte
11332 sequences as input in addition to character strings.
11333
11334 - Issue #10586: The statistics API for the new functools.lru_cache has been
11335 changed to a single cache_info() method returning a named tuple.
11336
11337 - Issue #10323: itertools.islice() now consumes the minimum number of inputs
11338 before stopping. Formerly, the final state of the underlying iterator was
11339 undefined.
11340
11341 - Issue #10565: The collections.Iterator ABC now checks for both __iter__ and
11342 __next__.
11343
11344 - Issue #10242: Fixed implementation of unittest.ItemsEqual and gave it a new
11345 more informative name, unittest.CountEqual.
11346
11347 - Issue #10561: In pdb, clear the breakpoints by the breakpoint number.
11348
11349 - Issue #2986: difflib.SequenceMatcher gets a new parameter, autojunk, which can
11350 be set to False to turn off the previously undocumented 'popularity'
11351 heuristic. Patch by Terry Reedy and Eli Bendersky.
11352
11353 - Issue #10534: in difflib, expose bjunk and bpopular sets; deprecate
11354 undocumented and now redundant isbjunk and isbpopular methods.
11355
11356 - Issue #9846: zipfile is now correctly closing underlying file objects.
11357
11358 - Issue #10459: Update CJK character names to Unicode 6.0.
11359
11360 - Issue #4493: urllib.request adds '/' in front of path components which does not
11361 start with '/. Common behavior exhibited by browsers and other clients.
11362
11363 - Issue #6378: idle.bat now runs with the appropriate Python version rather than
11364 the system default. Patch by Sridhar Ratnakumar.
11365
11366 - Issue #10470: 'python -m unittest' will now run test discovery by default,
11367 when no extra arguments have been provided.
11368
11369 - Issue #3709: BaseHTTPRequestHandler will buffer the headers and write to
11370 output stream only when end_headers is invoked. This is a speedup and an
11371 internal optimization. Patch by Andrew Shaaf.
11372
11373 - Issue #10220: Added inspect.getgeneratorstate. Initial patch by Rodolpho
11374 Eckhardt.
11375
11376 - Issue #10453: compileall now uses argparse instead of getopt, and thus
11377 provides clean output when called with '-h'.
11378
11379 - Issue #8078: Add constants for higher baud rates in the termios module. Patch
11380 by Rodolpho Eckhardt.
11381
11382 - Issue #10407: Fix two NameErrors in distutils.
11383
11384 - Issue #10371: Deprecated undocumented functions in the trace module.
11385
11386 - Issue #10467: Fix BytesIO.readinto() after seeking into a position after the
11387 end of the file.
11388
11389 - configparser: 100% test coverage.
11390
11391 - Issue #10499: configparser supports pluggable interpolation handlers. The
11392 default classic interpolation handler is called BasicInterpolation. Another
11393 interpolation handler added (ExtendedInterpolation) which supports the syntax
11394 used by zc.buildout (e.g. interpolation between sections).
11395
11396 - configparser: the SafeConfigParser class has been renamed to ConfigParser.
11397 The legacy ConfigParser class has been removed but its interpolation mechanism
11398 is still available as LegacyInterpolation.
11399
11400 - configparser: Usage of RawConfigParser is now discouraged for new projects
11401 in favor of ConfigParser(interpolation=None).
11402
11403 - Issue #1682942: configparser supports alternative option/value delimiters.
11404
11405 - Issue #5412: configparser supports mapping protocol access.
11406
11407 - Issue #9411: configparser supports specifying encoding for read operations.
11408
11409 - Issue #9421: configparser's getint(), getfloat() and getboolean() methods
11410 accept vars and default arguments just like get() does.
11411
11412 - Issue #9452: configparser supports reading from strings and dictionaries
11413 (thanks to the mapping protocol API, the latter can be used to copy data
11414 between parsers).
11415
11416 - configparser: accepted INI file structure is now customizable, including
11417 comment prefixes, name of the DEFAULT section, empty lines in multiline
11418 values, and indentation.
11419
11420 - Issue #10326: unittest.TestCase instances can be pickled.
11421
11422 - Issue #9926: Wrapped TestSuite subclass does not get __call__ executed.
11423
11424 - Issue #9920: Skip tests for cmath.atan and cmath.atanh applied to complex
11425 zeros on systems where the log1p function fails to respect the sign of zero.
11426 This fixes a test failure on AIX.
11427
11428 - Issue #9732: Addition of getattr_static to the inspect module.
11429
11430 - Issue #10446: Module documentation generated by pydoc now links to a
11431 version-specific online reference manual.
11432
11433 - Make the 'No module named' exception message from importlib consistent.
11434
11435 - Issue #10443: Add the SSLContext.set_default_verify_paths() method.
11436
11437 - Issue #10440: Support RUSAGE_THREAD as a constant in the resource module.
11438 Patch by Robert Collins.
11439
11440 - Issue #10429: IMAP.starttls() stored the capabilities as bytes objects, rather
11441 than strings.
11442
11443 C-API
11444 -----
11445
11446 - Issue #10557: Added a new API function, PyUnicode_TransformDecimalToASCII(),
11447 which transforms non-ASCII decimal digits in a Unicode string to their ASCII
11448 equivalents.
11449
11450 - Issue #9518: Extend the PyModuleDef_HEAD_INIT macro to explicitly
11451 zero-initialize all fields, fixing compiler warnings seen when building
11452 extension modules with gcc with "-Wmissing-field-initializers" (implied by
11453 "-W").
11454
11455 - Issue #10255: Fix reference leak in Py_InitializeEx(). Patch by Neil
11456 Schemenauer.
11457
11458 - structseq.h is now included in Python.h.
11459
11460 - Loosen PyArg_ValidateKeywordArguments to allow dict subclasses.
11461
11462 Tests
11463 -----
11464
11465 - regrtest.py once again ensures the test directory is removed from sys.path
11466 when it is invoked directly as the __main__ module.
11467
11468 - `python -m test` can be used to run the test suite as well as `python -m
11469 test.regrtest`.
11470
11471 - Do not fail test_socket when the IP address of the local hostname cannot be
11472 looked up.
11473
11474 - Issue #8886: Use context managers throughout test_zipfile. Patch by Eric
11475 Carstensen.
11476
11477 Build
11478 -----
11479
11480 - Issue #10325: Fix two issues in the fallback definitions for PY_ULLONG_MAX and
11481 PY_LLONG_MAX that made them unsuitable for use in preprocessor conditionals.
11482
11483 Documentation
11484 -------------
11485
11486 - Issue #10299: List the built-in functions in a table in functions.rst.
11487
11488
11489 What's New in Python 3.2 Alpha 4?
11490 =================================
11491
11492 *Release date: 13-Nov-2010*
11493
11494 Core and Builtins
11495 -----------------
11496
11497 - Issue #10372: Import the warnings module only after the IO library is
11498 initialized, so as to avoid bootstrap issues with the '-W' option.
11499
11500 - Issue #10293: Remove obsolete field in the PyMemoryView structure, unused
11501 undocumented value PyBUF_SHADOW, and strangely-looking code in
11502 PyMemoryView_GetContiguous.
11503
11504 - Issue #6081: Add str.format_map(), similar to ``str.format(**mapping)``.
11505
11506 - If FileIO.__init__ fails, close the file descriptor.
11507
11508 - Issue #10221: dict.pop(k) now has a key error message that includes the
11509 missing key (same message d[k] returns for missing keys).
11510
11511 - Issue #5437: A preallocated MemoryError instance should not keep traceback
11512 data (including local variables caught in the stack trace) alive infinitely.
11513
11514 - Issue #10186: Fix the SyntaxError caret when the offset is equal to the length
11515 of the offending line.
11516
11517 - Issue #10089: Add support for arbitrary -X options on the command line. They
11518 can be retrieved through a new attribute ``sys._xoptions``.
11519
11520 - Issue #4388: On Mac OS X, decode command line arguments from UTF-8, instead of
11521 the locale encoding. If the LANG (and LC_ALL and LC_CTYPE) environment
11522 variable is not set, the locale encoding is ISO-8859-1, whereas most programs
11523 (including Python) expect UTF-8. Python already uses UTF-8 for the filesystem
11524 encoding and to encode command line arguments on this OS.
11525
11526 - Issue #9713, #10114: Parser functions (e.g. PyParser_ASTFromFile) expect
11527 filenames encoded to the filesystem encoding with the surrogateescape error
11528 handler (to support undecodable bytes), instead of UTF-8 in strict mode.
11529
11530 - Issue #9997: Don't let the name "top" have special significance in scope
11531 resolution.
11532
11533 - Issue #9862: Compensate for broken PIPE_BUF in AIX by hard coding its value as
11534 the default 512 when compiling on AIX.
11535
11536 - Use locale encoding instead of UTF-8 to encode and decode filenames if
11537 Py_FileSystemDefaultEncoding is not set.
11538
11539 - Issue #10095: fp_setreadl() doesn't reopen the file, instead reuse the file
11540 descriptor.
11541
11542 - Issue #9418: Moved private string methods ``_formatter_parser`` and
11543 ``_formatter_field_name_split`` into a new ``_string`` module.
11544
11545 - Issue #9992: Remove PYTHONFSENCODING environment variable.
11546
11547 Library
11548 -------
11549
11550 - Issue #12943: python -m tokenize support has been added to tokenize.
11551
11552 - Issue #10465: fix broken delegating of attributes by gzip._PaddedFile.
11553
11554 - Issue #10356: Decimal.__hash__(-1) should return -2.
11555
11556 - Issue #1553375: logging: Added stack_info kwarg to display stack information.
11557
11558 - Issue #5111: IPv6 Host in the Header is wrapped inside [ ]. Patch by Chandru.
11559
11560 - Fix Fraction.__hash__ so that Fraction.__hash__(-1) is -2. (See also issue
11561 #10356.)
11562
11563 - Issue #4471: Add the IMAP.starttls() method to enable encryption on standard
11564 IMAP4 connections. Original patch by Lorenzo M. Catucci.
11565
11566 - Issue #1466065: Add 'validate' option to base64.b64decode to raise an error if
11567 there are non-base64 alphabet characters in the input.
11568
11569 - Issue #10386: Add __all__ to token module; this simplifies importing in
11570 tokenize module and prevents leaking of private names through ``import *``.
11571
11572 - Issue #4471: Properly shutdown socket in IMAP.shutdown(). Patch by Lorenzo
11573 M. Catucci.
11574
11575 - Fix IMAP.login() to work properly.
11576
11577 - Issue #9244: multiprocessing pool worker processes could terminate
11578 unexpectedly if the return value of a task could not be pickled. Only the
11579 ``repr`` of such errors are now sent back, wrapped in an
11580 ``MaybeEncodingError`` exception.
11581
11582 - Issue #9244: The ``apply_async()`` and ``map_async()`` methods of
11583 ``multiprocessing.Pool`` now accepts an ``error_callback`` argument. This can
11584 be a callback with the signature ``callback(exc)``, which will be called if
11585 the target raises an exception.
11586
11587 - Issue #10022: The dictionary returned by the ``getpeercert()`` method of SSL
11588 sockets now has additional items such as ``issuer`` and ``notBefore``.
11589
11590 - ``usenetrc`` is now false by default for NNTP objects.
11591
11592 - Issue #1926: Add support for NNTP over SSL on port 563, as well as STARTTLS.
11593 Patch by Andrew Vant.
11594
11595 - Issue #10335: Add tokenize.open(), detect the file encoding using
11596 tokenize.detect_encoding() and open it in read only mode.
11597
11598 - Issue #10321: Add support for binary data to smtplib.SMTP.sendmail, and a new
11599 method send_message to send an email.message.Message object.
11600
11601 - Issue #6011: sysconfig and distutils.sysconfig use the surrogateescape error
11602 handler to parse the Makefile file. Avoid a UnicodeDecodeError if the source
11603 code directory name contains a non-ASCII character and the locale encoding is
11604 ASCII.
11605
11606 - Issue #10329: The trace module writes reports using the input Python script
11607 encoding, instead of the locale encoding. Patch written by Alexander
11608 Belopolsky.
11609
11610 - Issue #10126: Fix distutils' test_build when Python was built with
11611 --enable-shared.
11612
11613 - Issue #9281: Prevent race condition with mkdir in distutils. Patch by
11614 Arfrever.
11615
11616 - Issue #10229: Fix caching error in gettext.
11617
11618 - Issue #10252: Close file objects in a timely manner in distutils code and
11619 tests. Patch by Brian Brazil, completed by Éric Araujo.
11620
11621 - Issue #10180: Pickling file objects is now explicitly forbidden, since
11622 unpickling them produced nonsensical results.
11623
11624 - Issue #10311: The signal module now restores errno before returning from its
11625 low-level signal handler. Patch by Hallvard B Furuseth.
11626
11627 - Issue #10282: Add a ``nntp_implementation`` attribute to NNTP objects.
11628
11629 - Issue #10283: Add a ``group_pattern`` argument to NNTP.list().
11630
11631 - Issue #10155: Add IISCGIHandler to wsgiref.handlers to support IIS CGI
11632 environment better, and to correct unicode environment values for WSGI 1.0.1.
11633
11634 - Issue #10281: nntplib now returns None for absent fields in the OVER/XOVER
11635 response, instead of raising an exception.
11636
11637 - wsgiref now implements and validates PEP 3333, rather than an experimental
11638 extension of PEP 333. (Note: earlier versions of Python 3.x may have
11639 incorrectly validated some non-compliant applications as WSGI compliant; if
11640 your app validates with Python <3.2b1+, but not on this version, it is likely
11641 the case that your app was not compliant.)
11642
11643 - Issue #10280: NNTP.nntp_version should reflect the highest version advertised
11644 by the server.
11645
11646 - Issue #10184: Touch directories only once when extracting a tarfile.
11647
11648 - Issue #10199: New package, ``turtledemo`` now contains selected demo scripts
11649 that were formerly found under Demo/turtle.
11650
11651 - Issue #10265: Close file objects explicitly in sunau. Patch by Brian Brazil.
11652
11653 - Issue #10266: uu.decode didn't close in_file explicitly when it was given as a
11654 filename. Patch by Brian Brazil.
11655
11656 - Issue #10110: Queue objects didn't recognize full queues when the maxsize
11657 parameter had been reduced.
11658
11659 - Issue #10160: Speed up operator.attrgetter. Patch by Christos Georgiou.
11660
11661 - logging: Added style option to basicConfig() to allow %, {} or $-formatting.
11662
11663 - Issue #5729: json.dumps() now supports using a string such as '\t' for
11664 pretty-printing multilevel objects.
11665
11666 - Issue #10253: FileIO leaks a file descriptor when trying to open a file for
11667 append that isn't seekable. Patch by Brian Brazil.
11668
11669 - Support context management protocol for file-like objects returned by mailbox
11670 ``get_file()`` methods.
11671
11672 - Issue #10246: uu.encode didn't close file objects explicitly when filenames
11673 were given to it. Patch by Brian Brazil.
11674
11675 - Issue #10198: fix duplicate header written to wave files when writeframes() is
11676 called without data.
11677
11678 - Close file objects in modulefinder in a timely manner.
11679
11680 - Close an io.TextIOWrapper object in email.parser in a timely manner.
11681
11682 - Close a file object in distutils.sysconfig in a timely manner.
11683
11684 - Close a file object in pkgutil in a timely manner.
11685
11686 - Issue #10233: Close file objects in a timely manner in the tarfile module and
11687 its test suite.
11688
11689 - Issue #10093: ResourceWarnings are now issued when files and sockets are
11690 deallocated without explicit closing. These warnings are silenced by default,
11691 except in pydebug mode.
11692
11693 - tarfile.py: Add support for all missing variants of the GNU sparse extensions
11694 and create files with holes when extracting sparse members.
11695
11696 - Issue #10218: Return timeout status from ``Condition.wait`` in threading.
11697
11698 - Issue #7351: Add ``zipfile.BadZipFile`` spelling of the exception name and
11699 deprecate the old name ``zipfile.BadZipfile``.
11700
11701 - Issue #5027: The standard ``xml`` namespace is now understood by
11702 xml.sax.saxutils.XMLGenerator as being bound to
11703 http://www.w3.org/XML/1998/namespace. Patch by Troy J. Farrell.
11704
11705 - Issue #5975: Add csv.unix_dialect class.
11706
11707 - Issue #7761: telnetlib.interact failures on Windows fixed.
11708
11709 - logging: Added style option to Formatter to allow %, {} or $-formatting.
11710
11711 - Issue #5178: Added tempfile.TemporaryDirectory class that can be used as a
11712 context manager.
11713
11714 - Issue #1349106: Generator (and BytesGenerator) flatten method and Header
11715 encode method now support a 'linesep' argument.
11716
11717 - Issue #5639: Add a *server_hostname* argument to ``SSLContext.wrap_socket`` in
11718 order to support the TLS SNI extension. ``HTTPSConnection`` and ``urlopen()``
11719 also use this argument, so that HTTPS virtual hosts are now supported.
11720
11721 - Issue #10166: Avoid recursion in pstats Stats.add() for many stats items.
11722
11723 - Issue #10163: Skip unreadable registry keys during mimetypes initialization.
11724
11725 - logging: Made StreamHandler terminator configurable.
11726
11727 - logging: Allowed filters to be just callables.
11728
11729 - logging: Added tests for _logRecordClass changes.
11730
11731 - Issue #10092: Properly reset locale in calendar.Locale*Calendar classes.
11732
11733 - logging: Added _logRecordClass, getLogRecordClass, setLogRecordClass to
11734 increase flexibility of LogRecord creation.
11735
11736 - Issue #5117: Case normalization was needed on ntpath.relpath(). Also fixed
11737 root directory issue on posixpath.relpath(). (Ported working fixes from
11738 ntpath.)
11739
11740 - Issue #1343: xml.sax.saxutils.XMLGenerator now has an option
11741 short_empty_elements to direct it to use self-closing tags when appropriate.
11742
11743 - Issue #9807 (part 1): Expose the ABI flags in sys.abiflags. Add --abiflags
11744 switch to python-config for command line access.
11745
11746 - Issue #6098: Don't claim DOM level 3 conformance in minidom.
11747
11748 - Issue #5762: Fix AttributeError raised by ``xml.dom.minidom`` when an empty
11749 XML namespace attribute is encountered.
11750
11751 - Issue #2830: Add the ``html.escape()`` function, which quotes all problematic
11752 characters by default. Deprecate ``cgi.escape()``.
11753
11754 - Issue #9409: Fix the regex to match all kind of filenames, for interactive
11755 debugging in doctests.
11756
11757 - Issue #9183: ``datetime.timezone(datetime.timedelta(0))`` will now return the
11758 same instance as ``datetime.timezone.utc``.
11759
11760 - Issue #7523: Add SOCK_CLOEXEC and SOCK_NONBLOCK to the socket module, where
11761 supported by the system. Patch by Nikita Vetoshkin.
11762
11763 - Issue #10063: file:// scheme will stop accessing remote hosts via ftp
11764 protocol. file:// urls had fallback to access remote hosts via ftp. This was
11765 not correct, change is made to raise a URLError when a remote host is tried to
11766 access via file:// scheme.
11767
11768 - Issue #1710703: Write structures for an empty ZIP archive when a ZipFile is
11769 created in modes 'a' or 'w' and then closed without adding any files. Raise
11770 BadZipfile (rather than IOError) when opening small non-ZIP files.
11771
11772 - Issue #10041: The signature of optional arguments in socket.makefile() didn't
11773 match that of io.open(), and they also didn't get forwarded properly to
11774 TextIOWrapper in text mode. Patch by Kai Zhu.
11775
11776 - Issue #9003: http.client.HTTPSConnection, urllib.request.HTTPSHandler and
11777 urllib.request.urlopen now take optional arguments to allow for server
11778 certificate checking, as recommended in public uses of HTTPS.
11779
11780 - Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the
11781 current directory was deleted. Patch written by W. Trevor King.
11782
11783 - Issue #3873: Speed up unpickling from file objects that have a peek() method.
11784
11785 - Issue #10075: Add a session_stats() method to SSLContext objects.
11786
11787 - Issue #9948: Fixed problem of losing filename case information.
11788
11789 Extension Modules
11790 -----------------
11791
11792 - Issue #5109: array.array constructor will now use fast code when
11793 initial data is provided in an array object with correct type.
11794
11795 - Issue #6317: Now winsound.PlaySound only accepts unicode.
11796
11797 - Issue #6317: Now winsound.PlaySound can accept non ascii filename.
11798
11799 - Issue #9377: Use Unicode API for gethostname on Windows.
11800
11801 - Issue #10143: Update "os.pathconf" values.
11802
11803 - Issue #6518: Support context management protocol for ossaudiodev types.
11804
11805 - Issue #678250: Make mmap flush a noop on ACCESS_READ and ACCESS_COPY.
11806
11807 - Issue #9054: Fix a crash occurring when using the pyexpat module with expat
11808 version 2.0.1.
11809
11810 - Issue #5355: Provide mappings from Expat error numbers to string descriptions
11811 and backwards, in order to actually make it possible to analyze error codes
11812 provided by ExpatError.
11813
11814 - The Unicode database was updated to 6.0.0.
11815
11816 C-API
11817 -----
11818
11819 - Issue #10288: The deprecated family of "char"-handling macros
11820 (ISLOWER()/ISUPPER()/etc) have now been removed: use Py_ISLOWER() etc instead.
11821
11822 - Issue #9778: Hash values are now always the size of pointers. A new Py_hash_t
11823 type has been introduced.
11824
11825 Tools/Demos
11826 -----------
11827
11828 - Issue #10117: Tools/scripts/reindent.py now accepts source files that use
11829 encoding other than ASCII or UTF-8. Source encoding is preserved when
11830 reindented code is written to a file.
11831
11832 - Issue #7287: Demo/imputil/knee.py was removed.
11833
11834 Tests
11835 -----
11836
11837 - Issue #3699: Fix test_bigaddrspace and extend it to test bytestrings as well
11838 as unicode strings. Initial patch by Sandro Tosi.
11839
11840 - Issue #10294: Remove dead code form test_unicode_file.
11841
11842 - Issue #10123: Don't use non-ascii filenames in test_doctest tests. Add a new
11843 test specific to unicode (non-ascii name and filename).
11844
11845 Build
11846 -----
11847
11848 - Issue #10268: Add a --enable-loadable-sqlite-extensions option to configure.
11849
11850 - Issue #8852: Allow the socket module to build on OpenSolaris.
11851
11852 - Drop -OPT:Olimit compiler option.
11853
11854 - Issue #10094: Use versioned .so files on GNU/kfreeBSD and the GNU Hurd.
11855
11856 - Accept Oracle Berkeley DB 5.0 and 5.1 as backend for the dbm extension.
11857
11858 - Issue #7473: avoid link errors when building a framework with a different set
11859 of architectures than the one that is currently installed.
11860
11861
11862 What's New in Python 3.2 Alpha 3?
11863 =================================
11864
11865 *Release date: 09-Oct-2010*
11866
11867 Core and Builtins
11868 -----------------
11869
11870 - Issue #10068: Global objects which have reference cycles with their module's
11871 dict are now cleared again. This causes issue #7140 to appear again.
11872
11873 - Issue #9738: Document PyErr_SetString() and PyErr_SetFromErrnoWithFilename()
11874 encodings.
11875
11876 - ast.literal_eval() can now handle negative numbers. It is also a little more
11877 liberal in what it accepts without compromising the safety of the evaluation.
11878 For example, 3j+4 and 3+4+5 are both accepted.
11879
11880 - Issue #10006: type.__abstractmethods__ now raises an AttributeError. As a
11881 result metaclasses can now be ABCs (see #9533).
11882
11883 - Issue #8670: ctypes.c_wchar supports non-BMP characters with 32 bits wchar_t.
11884
11885 - Issue #8670: PyUnicode_AsWideChar() and PyUnicode_AsWideCharString() replace
11886 UTF-16 surrogate pairs by single non-BMP characters for 16 bits Py_UNICODE and
11887 32 bits wchar_t (eg. Linux in narrow build).
11888
11889 - Issue #10003: Allow handling of SIGBREAK on Windows. Fixes a regression
11890 introduced by issue #9324.
11891
11892 - Issue #9979: Create function PyUnicode_AsWideCharString().
11893
11894 - Issue #7397: Mention that importlib.import_module() is probably what someone
11895 really wants to be using in __import__'s docstring.
11896
11897 - Issue #8521: Allow CreateKeyEx, OpenKeyEx, and DeleteKeyEx functions of winreg
11898 to use named arguments.
11899
11900 - Issue #9930: Remove bogus subtype check that was causing (e.g.)
11901 float.__rdiv__(2.0, 3) to return NotImplemented instead of the expected 1.5.
11902
11903 - Issue #9808: Implement os.getlogin for Windows. Patch by Jon Anglin.
11904
11905 - Issue #9901: Destroying the GIL in Py_Finalize() can fail if some other
11906 threads are still running. Instead, reinitialize the GIL on a second call to
11907 Py_Initialize().
11908
11909 - All SyntaxErrors now have a column offset and therefore a caret when the error
11910 is printed.
11911
11912 - Issue #9252: PyImport_Import no longer uses a fromlist hack to return the
11913 module that was imported, but instead gets the module from sys.modules.
11914
11915 - Issue #9213: The range type_items now provides index() and count() methods, to
11916 conform to the Sequence ABC. Patch by Daniel Urban and Daniel Stutzbach.
11917
11918 - Issue #7994: Issue a PendingDeprecationWarning if object.__format__ is called
11919 with a non-empty format string. This is an effort to future-proof user
11920 code. If a derived class does not currently implement __format__ but later
11921 adds its own __format__, it would most likely break user code that had
11922 supplied a format string. This will be changed to a DeprecationWaring in
11923 Python 3.3 and it will be an error in Python 3.4.
11924
11925 - Issue #9828: Destroy the GIL in Py_Finalize(), so that it gets properly
11926 re-created on a subsequent call to Py_Initialize(). The problem (a crash)
11927 wouldn't appear in 3.1 or 2.7 where the GIL's structure is more trivial.
11928
11929 - Issue #9210: Configure option --with-wctype-functions was removed. Using the
11930 functions from the libc caused the methods .upper() and lower() to become
11931 locale aware and created subtly wrong results.
11932
11933 - Issue #9738: PyUnicode_FromFormat() and PyErr_Format() raise an error on a
11934 non-ASCII byte in the format string.
11935
11936 - Issue #4617: Previously it was illegal to delete a name from the local
11937 namespace if it occurs as a free variable in a nested block. This limitation
11938 of the compiler has been lifted, and a new opcode introduced (DELETE_DEREF).
11939
11940 - Issue #9804: ascii() now always represents unicode surrogate pairs as a single
11941 ``\UXXXXXXXX``, regardless of whether the character is printable or not.
11942 Also, the "backslashreplace" error handler now joins surrogate pairs into a
11943 single character on UCS-2 builds.
11944
11945 - Issue #9757: memoryview objects get a release() method to release the
11946 underlying buffer (previously this was only done when deallocating the
11947 memoryview), and gain support for the context management protocol.
11948
11949 - Issue #9797: pystate.c wrongly assumed that zero couldn't be a valid
11950 thread-local storage key.
11951
11952 Library
11953 -------
11954
11955 - Issue #2236: distutils' mkpath ignored the mode parameter.
11956
11957 - Fix typo in one sdist option (medata-check).
11958
11959 - Issue #9199: Fix incorrect use of distutils.cmd.Command.announce.
11960
11961 - Issue #1718574: Fix options that were supposed to accept arguments but did
11962 not in build_clib.
11963
11964 - Issue #9437: Fix building C extensions with non-default LDFLAGS.
11965
11966 - Issue #4661: email can now parse bytes input and generate either converted
11967 7bit output or bytes output. Email version bumped to 5.1.0.
11968
11969 - Issue #1589: Add ssl.match_hostname(), to help implement server identity
11970 verification for higher-level protocols.
11971
11972 - Issue #9759: GzipFile now raises ValueError when an operation is attempted
11973 after the file is closed. Patch by Jeffrey Finkelstein.
11974
11975 - Issue #9042: Fix interaction of custom translation classes and caching in
11976 gettext.
11977
11978 - Issue #6706: asyncore.dispatcher now provides a handle_accepted() method
11979 returning a (sock, addr) pair which is called when a connection has been
11980 established with a new remote endpoint. This is supposed to be used as a
11981 replacement for old handle_accept() and avoids the user to call accept()
11982 directly.
11983
11984 - Issue #9065: tarfile no longer uses "root" as the default for the uname and
11985 gname field.
11986
11987 - Issue #8980: Fixed a failure in distutils.command check that was shadowed by
11988 an environment that does not have docutils. Patch by Arfrever.
11989
11990 - Issue #1050268: parseaddr now correctly quotes double quote and backslash
11991 characters that appear inside quoted strings in email addresses.
11992
11993 - Issue #10004: quoprimime no longer generates a traceback when confronted with
11994 invalid characters after '=' in a Q-encoded word.
11995
11996 - Issue #1491: BaseHTTPServer nows send a ``100 Continue`` response before
11997 sending a 200 OK for the Expect: 100-continue request header.
11998
11999 - Issue #9360: Cleanup and improvements to the nntplib module. The API now
12000 conforms to the philosophy of bytes and unicode separation in Python 3. A
12001 test suite has also been added.
12002
12003 - Issue #9962: GzipFile now has the peek() method.
12004
12005 - Issue #9090: When a socket with a timeout fails with EWOULDBLOCK or EAGAIN,
12006 retry the select() loop instead of bailing out. This is because select() can
12007 incorrectly report a socket as ready for reading (for example, if it received
12008 some data with an invalid checksum).
12009
12010 - Issue #3612: Added new types to ctypes.wintypes. (CHAR and pointers)
12011
12012 - Issue #9950: Fix socket.sendall() crash or misbehaviour when a signal is
12013 received. Now sendall() properly calls signal handlers if necessary, and
12014 retries sending if these returned successfully, including on sockets with a
12015 timeout.
12016
12017 - Issue #9947: logging: Fixed locking bug in stopListening.
12018
12019 - Issue #9945: logging: Fixed locking bugs in addHandler/removeHandler.
12020
12021 - Issue #9936: Fixed executable lines' search in the trace module.
12022
12023 - Issue #9790: Rework imports necessary for samefile and sameopenfile
12024 in ntpath.
12025
12026 - Issue #9928: Properly initialize the types exported by the bz2 module.
12027
12028 - Issue #1675951: Allow GzipFile to work with unseekable file objects. Patch by
12029 Florian Festi.
12030
12031 - Logging: Added QueueListener class to facilitate logging usage for
12032 performance-critical threads.
12033
12034 - Issue #9916: Add some missing errno symbols.
12035
12036 - Issue #9877: Expose sysconfig.get_makefile_filename()
12037
12038 - logging: Added hasHandlers() method to Logger and LoggerAdapter.
12039
12040 - Issue #9908: Fix os.stat() on bytes paths under Windows 7.
12041
12042 - Issue #2643: msync() is not called anymore when deallocating an open mmap
12043 object, only munmap().
12044
12045 - logging: Changed LoggerAdapter implementation internally, to make it easier to
12046 subclass in a useful way.
12047
12048 - logging: hasHandlers method was added to Logger, and isEnabledFor,
12049 getEffectiveLevel, hasHandlers and setLevel were added to LoggerAdapter.
12050 LoggerAdapter was introduced into the unit tests for logging.
12051
12052 - Issue #1686: Fix string.Template when overriding the pattern attribute.
12053
12054 - Issue #9854: SocketIO objects now observe the RawIOBase interface in
12055 non-blocking mode: they return None when an operation would block (instead of
12056 raising an exception).
12057
12058 - Issue #1730136: Fix the comparison between a tk.font.Font and an object of
12059 another kind.
12060
12061 - Issue #9441: logging has better coverage for rotating file handlers.
12062
12063 - Issue #9865: collections.OrderedDict now has a __sizeof__ method.
12064
12065 - Issue #9854: The default read() implementation in io.RawIOBase now handles
12066 non-blocking readinto() returning None correctly.
12067
12068 - Issue #1552: socket.socketpair() now returns regular socket.socket objects
12069 supporting the whole socket API (rather than the "raw" _socket.socket
12070 objects).
12071
12072 - Issue #9853: Fix the signature of SSLSocket.recvfrom() and SSLSocket.sendto()
12073 to match the corresponding socket methods.
12074
12075 - Issue #9840: Added a decorator to reprlib for wrapping __repr__ methods to make
12076 them handle recursive calls within the same thread.
12077
12078 - logging: Enhanced HTTPHandler with secure and credentials initializers.
12079
12080 - Issue #767645: Set os.path.supports_unicode_filenames to True on Mac OS X.
12081
12082 - Issue #9837: The read() method of ZipExtFile objects (as returned by
12083 ZipFile.open()) could return more bytes than requested.
12084
12085 - Issue #9826: OrderedDict.__repr__ can now handle self-referential values:
12086 d['x'] = d.
12087
12088 - Issue #9825: Using __del__ in the definition of collections.OrderedDict made
12089 it possible for the user to create self-referencing ordered dictionaries which
12090 become permanently uncollectable GC garbage. Reinstated the Python 3.1
12091 approach of using weakref proxies so that reference cycles never get created
12092 in the first place.
12093
12094 - Issue #9579, #9580: Fix os.confstr() for value longer than 255 bytes and
12095 encode the value with filesystem encoding and surrogateescape (instead of
12096 utf-8 in strict mode) . Patch written by David Watson.
12097
12098 - Issue #9632: Remove sys.setfilesystemencoding() function: use PYTHONFSENCODING
12099 environment variable to set the filesystem encoding at Python startup.
12100 sys.setfilesystemencoding() creates inconsistencies because it is unable to
12101 reencode all filenames in all objects.
12102
12103 - Issue #9410: Various optimizations to the pickle module, leading to speedups
12104 up to 4x (depending on the benchmark). Mostly ported from Unladen Swallow;
12105 initial patch by Alexandre Vassalotti.
12106
12107 - The pprint module now supports printing OrderedDicts in their given order
12108 (formerly, it would sort the keys).
12109
12110 - Logging: Added QueueHandler class to facilitate logging usage with
12111 multiprocessing.
12112
12113 - Issue #9707: Rewritten reference implementation of threading.local which is
12114 friendlier towards reference cycles. This change is not normally visible
12115 since an optimized C implementation (_thread._local) is used instead.
12116
12117 - Issue #6394: os.getppid() is now supported on Windows. Note that it will
12118 still return the id of the parent process after it has exited. This process
12119 id may even have been reused by another unrelated process.
12120
12121 - Issue #9792: In case of connection failure, socket.create_connection() would
12122 swallow the exception and raise a new one, making it impossible to fetch the
12123 original errno, or to filter timeout errors. Now the original error is
12124 re-raised.
12125
12126 - Issue #9758: When fcntl.ioctl() was called with mutable_flag set to True, and
12127 the passed buffer was exactly 1024 bytes long, the buffer wouldn't be updated
12128 back after the system call. Original patch by Brian Brazil.
12129
12130 - Updates to the random module:
12131
12132 * Document which parts of the module are guaranteed to stay the same across
12133 versions and which parts are subject to change.
12134
12135 * Update the seed() method to use all of the bits in a string instead of just
12136 the hash value. This makes better use of the seed value and assures the
12137 seeding is platform independent. Issue #7889.
12138
12139 * Improved the random()-->integer algorithm used in choice(), shuffle(),
12140 sample(), randrange(), and randint(). Formerly, it used int(n*random())
12141 which has a slight bias whenever n is not a power of two. Issue #9025.
12142
12143 * Improved documentation of arguments to randrange(). Issue #9379.
12144
12145 - collections.OrderedDict now supports a new method for repositioning keys to
12146 either end.
12147
12148 - Issue #9754: Similarly to assertRaises and assertRaisesRegexp, unittest test
12149 cases now also have assertWarns and assertWarnsRegexp methods to check that a
12150 given warning type was triggered by the code under test.
12151
12152 - Issue #5506: BytesIO objects now have a getbuffer() method exporting a view of
12153 their contents without duplicating them. The view is both readable and
12154 writable.
12155
12156 - Issue #7566: Implement os.path.sameopenfile for Windows.
12157
12158 - Issue #9293: I/O streams now raise ``io.UnsupportedOperation`` when an
12159 unsupported operation is attempted (for example, writing to a file open only
12160 for reading).
12161
12162 - hashlib has two new constant attributes: algorithms_guaranteed and
12163 algorithms_available that respectively list the names of hash algorithms
12164 guaranteed to exist in all Python implementations and the names of hash
12165 algorithms available in the current process.
12166
12167 - A new package ``concurrent.futures`` as defined by PEP 3148.
12168
12169 C-API
12170 -----
12171
12172 - Add PyErr_SyntaxLocationEx, which supports passing a column offset.
12173
12174 - Issue #9834: Don't segfault in PySequence_GetSlice, PySequence_SetSlice, or
12175 PySequence_DelSlice when the object doesn't have any mapping operations
12176 defined.
12177
12178 Tools/Demos
12179 -----------
12180
12181 - Issue #9188: The gdb extension now handles correctly narrow (UCS2) as well as
12182 wide (UCS4) unicode builds for both the host interpreter (embedded inside gdb)
12183 and the interpreter under test.
12184
12185 Tests
12186 -----
12187
12188 - Issue #9308: Added tests for importing encoded modules that do not
12189 depend on specific stdlib modules being encoded in a certain way.
12190
12191 - Issue #1051: Add a script (Lib/test/make_ssl_certs.py) to generate the custom
12192 certificate and private key files used by SSL-related certs.
12193
12194 - Issue #9978: Wait until subprocess completes initialization. (Win32KillTests
12195 in test_os)
12196
12197 - Issue #7110: regrtest now sends test failure reports and single-failure
12198 tracebacks to stderr rather than stdout.
12199
12200 - Issue #9628: fix runtests.sh -x option so more than one test can be excluded.
12201
12202 - Issue #9899: Fix test_tkinter.test_font on various platforms. Patch by Ned
12203 Deily.
12204
12205 - Issue #9894: Do not hardcode ENOENT in test_subprocess.
12206
12207 - Issue #9315: Added tests for the trace module. Patch by Eli Bendersky.
12208
12209 - Issue #9323: Make test.regrtest.__file__ absolute, this was not always the
12210 case when running profile or trace, for example.
12211
12212 - Issue #9568: Fix test_urllib2_localnet on OS X 10.3.
12213
12214 Build
12215 -----
12216
12217 - Issue #10062: Allow building on platforms which do not have sem_timedwait.
12218
12219 - Issue #10054: Some platforms provide uintptr_t in inttypes.h. Patch by Akira
12220 Kitada.
12221
12222 - Issue #10055: Make json C89-compliant in UCS4 mode.
12223
12224 - Issue #9552: Avoid unnecessary rebuild of OpenSSL. (Windows)
12225
12226 - Issue #1633863: Don't ignore $CC under AIX.
12227
12228 - Issue #9810: Compile bzip2 source files in Python's project file directly. It
12229 used to be built with bzip2's makefile.
12230
12231 - Issue #9848: Stopping trying to build _weakref in setup.py as it is a built-in
12232 module.
12233
12234 - Issue #9806: python-config now has an ``--extension-suffix`` option that
12235 outputs the suffix for dynamic libraries including the ABI version name
12236 defined by PEP 3149.
12237
12238 - Issue #941346: Improve the build process under AIX and allow Python to be
12239 built as a shared library. Patch by Sébastien Sablé.
12240
12241 - Issue #4026: Make the fcntl extension build under AIX. Patch by Sébastien
12242 Sablé.
12243
12244 - Issue #9701: The MacOSX installer can patch the shell profile to ensure that
12245 the "bin" directory inside the framework is on the shell's search path. This
12246 feature now also supports the ZSH shell.
12247
12248
12249 What's New in Python 3.2 Alpha 2?
12250 =================================
12251
12252 *Release date: 05-Sep-2010*
12253
12254 Core and Builtins
12255 -----------------
12256
12257 - Issue #9225: Remove the ROT_FOUR and DUP_TOPX opcode, the latter replaced by
12258 the new (and simpler) DUP_TOP_TWO. Performance isn't changed, but our
12259 bytecode is a bit simplified. Patch by Demur Rumed.
12260
12261 - Issue #9766: Rename poorly named variables exposed by _warnings to prevent
12262 confusion with the proper variables names from 'warnings' itself.
12263
12264 - Issue #9212: dict_keys and dict_items now provide the isdisjoint() method, to
12265 conform to the Set ABC. Patch by Daniel Urban.
12266
12267 - Issue #9737: Fix a crash when trying to delete a