diff options
Diffstat (limited to 'Misc/NEWS.d/3.9.0a1.rst')
-rw-r--r-- | Misc/NEWS.d/3.9.0a1.rst | 5772 |
1 files changed, 5772 insertions, 0 deletions
diff --git a/Misc/NEWS.d/3.9.0a1.rst b/Misc/NEWS.d/3.9.0a1.rst new file mode 100644 index 0000000..2c79bca --- /dev/null +++ b/Misc/NEWS.d/3.9.0a1.rst @@ -0,0 +1,5772 @@ +.. bpo: 38722 +.. date: 2019-11-18-16-17-56 +.. nonce: x3mECW +.. release date: 2019-11-19 +.. section: Security + +:mod:`runpy` now uses :meth:`io.open_code` to open code files. Patch by +Jason Killen. + +.. + +.. bpo: 38622 +.. date: 2019-11-14-16-13-23 +.. nonce: 3DYkfb +.. section: Security + +Add additional audit events for the :mod:`ctypes` module. + +.. + +.. bpo: 38418 +.. date: 2019-10-08-19-29-55 +.. nonce: QL7s0- +.. section: Security + +Fixes audit event for :func:`os.system` to be named ``os.system``. + +.. + +.. bpo: 38243 +.. date: 2019-09-25-13-21-09 +.. nonce: 1pfz24 +.. section: Security + +Escape the server title of :class:`xmlrpc.server.DocXMLRPCServer` when +rendering the document page as HTML. (Contributed by Dong-hee Na in +:issue:`38243`.) + +.. + +.. bpo: 38174 +.. date: 2019-09-23-21-02-46 +.. nonce: MeWuJd +.. section: Security + +Update vendorized expat library version to 2.2.8, which resolves +CVE-2019-15903. + +.. + +.. bpo: 37764 +.. date: 2019-08-27-01-13-05 +.. nonce: qv67PQ +.. section: Security + +Fixes email._header_value_parser.get_unstructured going into an infinite +loop for a specific case in which the email header does not have trailing +whitespace, and the case in which it contains an invalid encoded word. Patch +by Ashwin Ramaswami. + +.. + +.. bpo: 37461 +.. date: 2019-07-16-08-11-00 +.. nonce: 1Ahz7O +.. section: Security + +Fix an infinite loop when parsing specially crafted email headers. Patch by +Abhilash Raj. + +.. + +.. bpo: 37363 +.. date: 2019-07-01-10-31-14 +.. nonce: fSjatj +.. section: Security + +Adds audit events for the range of supported run commands (see +:ref:`using-on-general`). + +.. + +.. bpo: 37463 +.. date: 2019-07-01-08-46-14 +.. nonce: 1CHwjE +.. section: Security + +ssl.match_hostname() no longer accepts IPv4 addresses with additional text +after the address and only quad-dotted notation without trailing +whitespaces. Some inet_aton() implementations ignore whitespace and all data +after whitespace, e.g. '127.0.0.1 whatever'. + +.. + +.. bpo: 37363 +.. date: 2019-06-21-15-58-59 +.. nonce: diouyl +.. section: Security + +Adds audit events for :mod:`ensurepip`, :mod:`ftplib`, :mod:`glob`, +:mod:`imaplib`, :mod:`nntplib`, :mod:`pdb`, :mod:`poplib`, :mod:`shutil`, +:mod:`smtplib`, :mod:`sqlite3`, :mod:`subprocess`, :mod:`telnetlib`, +:mod:`tempfile` and :mod:`webbrowser`, as well as :func:`os.listdir`, +:func:`os.scandir` and :func:`breakpoint`. + +.. + +.. bpo: 37364 +.. date: 2019-06-21-14-42-53 +.. nonce: IIRc2s +.. section: Security + +:func:`io.open_code` is now used when reading :file:`.pth` files. + +.. + +.. bpo: 34631 +.. date: 2019-06-17-09-34-25 +.. nonce: DBfM4j +.. section: Security + +Updated OpenSSL to 1.1.1c in Windows installer + +.. + +.. bpo: 34155 +.. date: 2019-05-04-13-33-37 +.. nonce: MJll68 +.. section: Security + +Fix parsing of invalid email addresses with more than one ``@`` (e.g. +a@b@c.com.) to not return the part before 2nd ``@`` as valid email address. +Patch by maxking & jpic. + +.. + +.. bpo: 38631 +.. date: 2019-11-18-17-10-20 +.. nonce: tRHaAk +.. section: Core and Builtins + +Replace ``Py_FatalError()`` call with a regular :exc:`RuntimeError` +exception in :meth:`float.__getformat__`. + +.. + +.. bpo: 38639 +.. date: 2019-10-30-11-31-47 +.. nonce: 9-vKtO +.. section: Core and Builtins + +Optimized :func:`math.floor()`, :func:`math.ceil()` and :func:`math.trunc()` +for floats. + +.. + +.. bpo: 38640 +.. date: 2019-10-30-11-25-25 +.. nonce: 4sAFh5 +.. section: Core and Builtins + +Fixed a bug in the compiler that was causing to raise in the presence of +break statements and continue statements inside always false while loops. +Patch by Pablo Galindo. + +.. + +.. bpo: 38613 +.. date: 2019-10-29-15-44-24 +.. nonce: V_R3NC +.. section: Core and Builtins + +Optimized some set operations (e.g. ``|``, ``^``, and ``-``) of +``dict_keys``. ``d.keys() | other`` was slower than ``set(d) | other`` but +they are almost same performance for now. + +.. + +.. bpo: 28029 +.. date: 2019-10-29-09-38-54 +.. nonce: AmRMEF +.. section: Core and Builtins + +``"".replace("", s, n)`` now returns ``s`` instead of an empty string for +all non-zero ``n``. There are similar changes for :class:`bytes` and +:class:`bytearray` objects. + +.. + +.. bpo: 38535 +.. date: 2019-10-20-12-43-48 +.. nonce: ESMkVN +.. section: Core and Builtins + +Fixed line numbers and column offsets for AST nodes for calls without +arguments in decorators. + +.. + +.. bpo: 38525 +.. date: 2019-10-20-00-36-18 +.. nonce: Vty1cA +.. section: Core and Builtins + +Fix a segmentation fault when using reverse iterators of empty ``dict`` +objects. Patch by Dong-hee Na and Inada Naoki. + +.. + +.. bpo: 38465 +.. date: 2019-10-19-12-44-13 +.. nonce: V1L8c4 +.. section: Core and Builtins + +:class:`bytearray`, :class:`~array.array` and :class:`~mmap.mmap` objects +allow now to export more than 2**31 buffers at a time. + +.. + +.. bpo: 38469 +.. date: 2019-10-13-23-41-38 +.. nonce: 9kmuQj +.. section: Core and Builtins + +Fixed a bug where the scope of named expressions was not being resolved +correctly in the presence of the *global* keyword. Patch by Pablo Galindo. + +.. + +.. bpo: 38437 +.. date: 2019-10-10-20-42-09 +.. nonce: z_0mZp +.. section: Core and Builtins + +Activate the ``GC_DEBUG`` macro for debug builds of the interpreter (when +``Py_DEBUG`` is set). Patch by Pablo Galindo. + +.. + +.. bpo: 38379 +.. date: 2019-10-10-01-41-02 +.. nonce: _q4dhn +.. section: Core and Builtins + +When the garbage collector makes a collection in which some objects +resurrect (they are reachable from outside the isolated cycles after the +finalizers have been executed), do not block the collection of all objects +that are still unreachable. Patch by Pablo Galindo and Tim Peters. + +.. + +.. bpo: 38379 +.. date: 2019-10-09-16-50-52 +.. nonce: oz5qZx +.. section: Core and Builtins + +When cyclic garbage collection (gc) runs finalizers that resurrect +unreachable objects, the current gc run ends, without collecting any cyclic +trash. However, the statistics reported by ``collect()`` and +``get_stats()`` claimed that all cyclic trash found was collected, and that +the resurrected objects were collected. Changed the stats to report that +none were collected. + +.. + +.. bpo: 38392 +.. date: 2019-10-07-22-51-39 +.. nonce: KaXXps +.. section: Core and Builtins + +In debug mode, :c:func:`PyObject_GC_Track` now calls ``tp_traverse()`` of +the object type to ensure that the object is valid: test that objects +visited by ``tp_traverse()`` are valid. + +.. + +.. bpo: 38210 +.. date: 2019-10-06-15-01-57 +.. nonce: Xgc6F_ +.. section: Core and Builtins + +Remove unecessary intersection and update set operation in dictview with +empty set. (Contributed by Dong-hee Na in :issue:`38210`.) + +.. + +.. bpo: 38402 +.. date: 2019-10-05-19-36-16 +.. nonce: EZuzgK +.. section: Core and Builtins + +Check the error from the system's underlying ``crypt`` or ``crypt_r``. + +.. + +.. bpo: 37474 +.. date: 2019-10-01-12-46-30 +.. nonce: cB3se1 +.. section: Core and Builtins + +On FreeBSD, Python no longer calls ``fedisableexcept()`` at startup to +control the floating point control mode. The call became useless since +FreeBSD 6: it became the default mode. + +.. + +.. bpo: 38006 +.. date: 2019-09-30-09-33-21 +.. nonce: UYlJum +.. section: Core and Builtins + +Fix a bug due to the interaction of weakrefs and the cyclic garbage +collector. We must clear any weakrefs in garbage in order to prevent their +callbacks from executing and causing a crash. + +.. + +.. bpo: 38317 +.. date: 2019-09-30-00-56-21 +.. nonce: pmqlIQ +.. section: Core and Builtins + +Fix warnings options priority: ``PyConfig.warnoptions`` has the highest +priority, as stated in the :pep:`587`. + +.. + +.. bpo: 38310 +.. date: 2019-09-28-22-54-25 +.. nonce: YDTbEo +.. section: Core and Builtins + +Predict ``BUILD_MAP_UNPACK_WITH_CALL`` -> ``CALL_FUNCTION_EX`` opcode pairs +in the main interpreter loop. Patch by Brandt Bucher. + +.. + +.. bpo: 36871 +.. date: 2019-09-24-18-45-46 +.. nonce: p47knk +.. section: Core and Builtins + +Improve error handling for the assert_has_calls and assert_has_awaits +methods of mocks. Fixed a bug where any errors encountered while binding the +expected calls to the mock's spec were silently swallowed, leading to +misleading error output. + +.. + +.. bpo: 11410 +.. date: 2019-09-24-05-32-27 +.. nonce: vS182p +.. section: Core and Builtins + +Better control over symbol visibility is provided through use of the +visibility attributes available in gcc >= 4.0, provided in a uniform way +across POSIX and Windows. The POSIX build files have been updated to compile +with -fvisibility=hidden, minimising exported symbols. + +.. + +.. bpo: 38219 +.. date: 2019-09-22-13-56-18 +.. nonce: rFl7JD +.. section: Core and Builtins + +Optimized the :class:`dict` constructor and the :meth:`~dict.update` method +for the case when the argument is a dict. + +.. + +.. bpo: 38236 +.. date: 2019-09-20-19-06-23 +.. nonce: eQ0Tmj +.. section: Core and Builtins + +Python now dumps path configuration if it fails to import the Python codecs +of the filesystem and stdio encodings. + +.. + +.. bpo: 38013 +.. date: 2019-09-12-19-50-01 +.. nonce: I7btD0 +.. section: Core and Builtins + +Allow to call ``async_generator_athrow().throw(...)`` even for non-started +async generator helper. It fixes annoying warning at the end of +:func:`asyncio.run` call. + +.. + +.. bpo: 38124 +.. date: 2019-09-12-00-14-01 +.. nonce: n6E0H7 +.. section: Core and Builtins + +Fix an off-by-one error in PyState_AddModule that could cause out-of-bounds +memory access. + +.. + +.. bpo: 38116 +.. date: 2019-09-11-14-49-42 +.. nonce: KDwmwt +.. section: Core and Builtins + +The select module is now PEP-384 compliant and no longer has static state + +.. + +.. bpo: 38113 +.. date: 2019-09-11-14-10-02 +.. nonce: yZXC3P +.. section: Core and Builtins + +ast module updated to PEP-384 and all statics removed + +.. + +.. bpo: 38076 +.. date: 2019-09-09-16-36-37 +.. nonce: C5dVBl +.. section: Core and Builtins + +The struct module is now PEP-384 compatible + +.. + +.. bpo: 38075 +.. date: 2019-09-09-15-59-50 +.. nonce: N8OZKF +.. section: Core and Builtins + +The random module is now PEP-384 compatible + +.. + +.. bpo: 38074 +.. date: 2019-09-09-15-40-57 +.. nonce: MsVbeI +.. section: Core and Builtins + +zlib module made PEP-384 compatible + +.. + +.. bpo: 38073 +.. date: 2019-09-09-15-17-58 +.. nonce: ZoKYOU +.. section: Core and Builtins + +Make pwd extension module PEP-384 compatible + +.. + +.. bpo: 38072 +.. date: 2019-09-09-15-00-42 +.. nonce: Y1xpDO +.. section: Core and Builtins + +grp module made PEP-384 compatible + +.. + +.. bpo: 38069 +.. date: 2019-09-09-14-46-05 +.. nonce: cn8XLv +.. section: Core and Builtins + +Make _posixsubprocess PEP-384 compatible + +.. + +.. bpo: 38071 +.. date: 2019-09-09-14-44-17 +.. nonce: bLwkBJ +.. section: Core and Builtins + +Make termios extension module PEP-384 compatible + +.. + +.. bpo: 38005 +.. date: 2019-09-02-20-00-31 +.. nonce: e7VsTA +.. section: Core and Builtins + +Fixed comparing and creating of InterpreterID and ChannelID. + +.. + +.. bpo: 36946 +.. date: 2019-09-02-16-17-42 +.. nonce: _lAuSR +.. section: Core and Builtins + +Fix possible signed integer overflow when handling slices. Patch by +hongweipeng. + +.. + +.. bpo: 37994 +.. date: 2019-08-31-11-13-25 +.. nonce: Rj6S4j +.. section: Core and Builtins + +Fixed silencing arbitrary errors if an attribute lookup fails in several +sites. Only AttributeError should be silenced. + +.. + +.. bpo: 8425 +.. date: 2019-08-29-01-55-38 +.. nonce: FTq4A8 +.. section: Core and Builtins + +Optimize set difference_update for the case when the other set is much +larger than the base set. (Suggested by Evgeny Kapun with code contributed +by Michele Orrù). + +.. + +.. bpo: 37966 +.. date: 2019-08-27-21-21-36 +.. nonce: 5OBLez +.. section: Core and Builtins + +The implementation of :func:`~unicodedata.is_normalized` has been greatly +sped up on strings that aren't normalized, by implementing the full +normalization-quick-check algorithm from the Unicode standard. + +.. + +.. bpo: 37947 +.. date: 2019-08-26-04-09-57 +.. nonce: mzAQtB +.. section: Core and Builtins + +Adjust correctly the recursion level in the symtable generation for named +expressions. Patch by Pablo Galindo. + +.. + +.. bpo: 37812 +.. date: 2019-08-23-22-46-25 +.. nonce: vsWZwS +.. section: Core and Builtins + +The ``CHECK_SMALL_INT`` macro used inside :file:`Object/longobject.c` has +been replaced with an explicit ``return`` at each call site. + +.. + +.. bpo: 37751 +.. date: 2019-08-20-04-36-37 +.. nonce: CSFzUd +.. section: Core and Builtins + +Fix :func:`codecs.lookup` to normalize the encoding name the same way than +:func:`encodings.normalize_encoding`, except that :func:`codecs.lookup` also +converts the name to lower case. + +.. + +.. bpo: 37830 +.. date: 2019-08-17-18-41-59 +.. nonce: fNfMbz +.. section: Core and Builtins + +Fixed compilation of :keyword:`break` and :keyword:`continue` in the +:keyword:`finally` block when the corresponding :keyword:`try` block +contains :keyword:`return` with a non-constant value. + +.. + +.. bpo: 20490 +.. date: 2019-08-15-12-48-36 +.. nonce: -hXeEn +.. section: Core and Builtins + +Improve import error message for partially initialized module on circular +``from`` imports - by Anthony Sottile. + +.. + +.. bpo: 37840 +.. date: 2019-08-13-18-05-20 +.. nonce: elLCci +.. section: Core and Builtins + +Fix handling of negative indices in :c:member:`~PySequenceMethods.sq_item` +of :class:`bytearray`. Patch by Sergey Fedoseev. + +.. + +.. bpo: 37802 +.. date: 2019-08-09-18-28-57 +.. nonce: pKxcAW +.. section: Core and Builtins + +Slightly improve performance of :c:func:`PyLong_FromUnsignedLong`, +:c:func:`PyLong_FromUnsignedLongLong` and :c:func:`PyLong_FromSize_t`. Patch +by Sergey Fedoseev. + +.. + +.. bpo: 37409 +.. date: 2019-08-06-23-39-05 +.. nonce: 1qwzn2 +.. section: Core and Builtins + +Ensure explicit relative imports from interactive sessions and scripts +(having no parent package) always raise ImportError, rather than treating +the current module as the package. Patch by Ben Lewis. + +.. + +.. bpo: 32912 +.. date: 2019-08-06-14-03-59 +.. nonce: UDwSMJ +.. section: Core and Builtins + +Reverted :issue:`32912`: emitting :exc:`SyntaxWarning` instead of +:exc:`DeprecationWarning` for invalid escape sequences in string and bytes +literals. + +.. + +.. bpo: 37757 +.. date: 2019-08-05-14-22-59 +.. nonce: lRv5HX +.. section: Core and Builtins + +:pep:`572`: As described in the PEP, assignment expressions now raise +:exc:`SyntaxError` when their interaction with comprehension scoping results +in an ambiguous target scope. + +The ``TargetScopeError`` subclass originally proposed by the PEP has been +removed in favour of just raising regular syntax errors for the disallowed +cases. + +.. + +.. bpo: 36279 +.. date: 2019-08-04-12-24-18 +.. nonce: 8Zy7jZ +.. section: Core and Builtins + +Fix potential use of uninitialized memory in :func:`os.wait3`. + +.. + +.. bpo: 36311 +.. date: 2019-08-02-15-01-33 +.. nonce: uY5vt- +.. section: Core and Builtins + +Decoding bytes objects larger than 2GiB is faster and no longer fails when a +multibyte characters spans a chunk boundary. + +.. + +.. bpo: 34880 +.. date: 2019-08-01-10-45-51 +.. nonce: u_x_CG +.. section: Core and Builtins + +The :keyword:`assert` statement now works properly if the +:exc:`AssertionError` exception is being shadowed. Patch by Zackery Spytz. + +.. + +.. bpo: 37340 +.. date: 2019-07-25-11-06-57 +.. nonce: 5ktLEg +.. section: Core and Builtins + +Removed object cache (``free_list``) for bound method objects. Temporary +bound method objects are less used than before thanks to the ``LOAD_METHOD`` +opcode and the ``_PyObject_VectorcallMethod`` C API. + +.. + +.. bpo: 37648 +.. date: 2019-07-22-11-05-05 +.. nonce: 6TY2L- +.. section: Core and Builtins + +Fixed minor inconsistency in :meth:`list.__contains__`, +:meth:`tuple.__contains__` and a few other places. The collection's item is +now always at the left and the needle is on the right of ``==``. + +.. + +.. bpo: 37444 +.. date: 2019-07-20-22-34-42 +.. nonce: UOd3Xs +.. section: Core and Builtins + +Update differing exception between :meth:`builtins.__import__` and +:meth:`importlib.__import__`. + +.. + +.. bpo: 37619 +.. date: 2019-07-18-11-50-49 +.. nonce: X6Lulo +.. section: Core and Builtins + +When adding a wrapper descriptor from one class to a different class (for +example, setting ``__add__ = str.__add__`` on an ``int`` subclass), an +exception is correctly raised when the operator is called. + +.. + +.. bpo: 37593 +.. date: 2019-07-14-23-57-27 +.. nonce: yHSTwH +.. section: Core and Builtins + +Swap the positions of the *posonlyargs* and *args* parameters in the +constructor of :class:`ast.parameters` nodes. + +.. + +.. bpo: 37543 +.. date: 2019-07-10-20-33-53 +.. nonce: EvI19D +.. section: Core and Builtins + +Optimized pymalloc for non PGO build. + +.. + +.. bpo: 37537 +.. date: 2019-07-10-09-56-47 +.. nonce: OkB0wd +.. section: Core and Builtins + +Compute allocated pymalloc blocks inside _Py_GetAllocatedBlocks(). This +slows down _Py_GetAllocatedBlocks() but gives a small speedup to +_PyObject_Malloc() and _PyObject_Free(). + +.. + +.. bpo: 37467 +.. date: 2019-07-01-12-22-44 +.. nonce: u-XyEu +.. section: Core and Builtins + +Fix :func:`sys.excepthook` and :c:func:`PyErr_Display` if a filename is a +bytes string. For example, for a SyntaxError exception where the filename +attribute is a bytes string. + +.. + +.. bpo: 37433 +.. date: 2019-06-27-15-01-14 +.. nonce: amNGqr +.. section: Core and Builtins + +Fix ``SyntaxError`` indicator printing too many spaces for multi-line +strings - by Anthony Sottile. + +.. + +.. bpo: 37417 +.. date: 2019-06-26-18-41-00 +.. nonce: VsZeHL +.. section: Core and Builtins + +:meth:`bytearray.extend` now correctly handles errors that arise during +iteration. Patch by Brandt Bucher. + +.. + +.. bpo: 37414 +.. date: 2019-06-26-17-27-26 +.. nonce: o6Lnbc +.. section: Core and Builtins + +The undocumented ``sys.callstats()`` function has been removed. Since Python +3.7, it was deprecated and always returned ``None``. It required a special +build option ``CALL_PROFILE`` which was already removed in Python 3.7. + +.. + +.. bpo: 37392 +.. date: 2019-06-25-01-45-06 +.. nonce: J3JhIx +.. section: Core and Builtins + +Remove ``sys.getcheckinterval()`` and ``sys.setcheckinterval()`` functions. +They were deprecated since Python 3.2. Use :func:`sys.getswitchinterval` and +:func:`sys.setswitchinterval` instead. Remove also ``check_interval`` field +of the ``PyInterpreterState`` structure. + +.. + +.. bpo: 37388 +.. date: 2019-06-24-21-53-52 +.. nonce: 0XTZmW +.. section: Core and Builtins + +In development mode and in debug build, *encoding* and *errors* arguments +are now checked on string encoding and decoding operations. Examples: +:func:`open`, :meth:`str.encode` and :meth:`bytes.decode`. + +By default, for best performances, the *errors* argument is only checked at +the first encoding/decoding error, and the *encoding* argument is sometimes +ignored for empty strings. + +.. + +.. bpo: 37348 +.. date: 2019-06-23-00-26-30 +.. nonce: pp8P-x +.. section: Core and Builtins + +Optimized decoding short ASCII string with UTF-8 and ascii codecs. +``b"foo".decode()`` is about 15% faster. Patch by Inada Naoki. + +.. + +.. bpo: 24214 +.. date: 2019-06-22-12-45-20 +.. nonce: hIiHeD +.. section: Core and Builtins + +Improved support of the surrogatepass error handler in the UTF-8 and UTF-16 +incremental decoders. + +.. + +.. bpo: 37330 +.. date: 2019-06-18-17-53-06 +.. nonce: wAvHmz +.. section: Core and Builtins + +:func:`open`, :func:`io.open`, :func:`codecs.open` and +:class:`fileinput.FileInput` no longer accept ``'U'`` ("universal newline") +in the file mode. This flag was deprecated since Python 3.3. + +.. + +.. bpo: 35224 +.. date: 2019-06-17-06-03-55 +.. nonce: FHWPGv +.. section: Core and Builtins + +Reverse evaluation order of key: value in dict comprehensions as proposed in +PEP 572. I.e. in ``{k: v for ...}``, ``k`` will be evaluated before ``v``. + +.. + +.. bpo: 37316 +.. date: 2019-06-17-03-53-16 +.. nonce: LytDX_ +.. section: Core and Builtins + +Fix the :c:func:`PySys_Audit` call in :class:`mmap.mmap`. + +.. + +.. bpo: 37300 +.. date: 2019-06-16-02-38-25 +.. nonce: WJkgKV +.. section: Core and Builtins + +Remove an unnecssary Py_XINCREF in classobject.c. + +.. + +.. bpo: 37269 +.. date: 2019-06-14-06-32-33 +.. nonce: SjVVAe +.. section: Core and Builtins + +Fix a bug in the peephole optimizer that was not treating correctly constant +conditions with binary operators. Patch by Pablo Galindo. + +.. + +.. bpo: 20443 +.. date: 2019-06-13-12-55-38 +.. nonce: bQWAxg +.. section: Core and Builtins + +Python now gets the absolute path of the script filename specified on the +command line (ex: "python3 script.py"): the __file__ attribute of the +__main__ module and sys.path[0] become an absolute path, rather than a +relative path. + +.. + +.. bpo: 37257 +.. date: 2019-06-13-02-27-12 +.. nonce: IMxDvT +.. section: Core and Builtins + +Python's small object allocator (``obmalloc.c``) now allows (no more than) +one empty arena to remain available for immediate reuse, without returning +it to the OS. This prevents thrashing in simple loops where an arena could +be created and destroyed anew on each iteration. + +.. + +.. bpo: 37231 +.. date: 2019-06-12-14-39-16 +.. nonce: LF41Es +.. section: Core and Builtins + +The dispatching of type slots to special methods (for example calling +``__mul__`` when doing ``x * y``) has been made faster. + +.. + +.. bpo: 36974 +.. date: 2019-06-11-12-59-38 +.. nonce: bVYmSA +.. section: Core and Builtins + +Implemented separate vectorcall functions for every calling convention of +builtin functions and methods. This improves performance for calls. + +.. + +.. bpo: 37213 +.. date: 2019-06-11-11-15-19 +.. nonce: UPii5K +.. section: Core and Builtins + +Handle correctly negative line offsets in the peephole optimizer. Patch by +Pablo Galindo. + +.. + +.. bpo: 37219 +.. date: 2019-06-10-23-18-31 +.. nonce: jPSufq +.. section: Core and Builtins + +Remove erroneous optimization for empty set differences. + +.. + +.. bpo: 15913 +.. date: 2019-06-06-20-52-38 +.. nonce: 5Sg5cv +.. section: Core and Builtins + +Implement :c:func:`PyBuffer_SizeFromFormat()` function (previously +documented but not implemented): call :func:`struct.calcsize`. Patch by +Joannah Nanjekye. + +.. + +.. bpo: 36922 +.. date: 2019-06-06-13-59-52 +.. nonce: EMZ3TF +.. section: Core and Builtins + +Slot functions optimize any callable with ``Py_TPFLAGS_METHOD_DESCRIPTOR`` +instead of only instances of ``function``. + +.. + +.. bpo: 36974 +.. date: 2019-06-06-11-00-55 +.. nonce: wdzzym +.. section: Core and Builtins + +The slot ``tp_vectorcall_offset`` is inherited unconditionally to support +``super().__call__()`` when the base class uses vectorcall. + +.. + +.. bpo: 37160 +.. date: 2019-06-05-09-24-17 +.. nonce: O3IAY3 +.. section: Core and Builtins + +:func:`threading.get_native_id` now also supports NetBSD. + +.. + +.. bpo: 37077 +.. date: 2019-05-28-11-47-44 +.. nonce: S1h0Fc +.. section: Core and Builtins + +Add :func:`threading.get_native_id` support for AIX. Patch by M. Felt + +.. + +.. bpo: 36781 +.. date: 2019-05-06-09-59-31 +.. nonce: uocWt6 +.. section: Core and Builtins + +:func:`sum` has been optimized for boolean values. + +.. + +.. bpo: 34556 +.. date: 2019-05-05-18-09-40 +.. nonce: o9kfpu +.. section: Core and Builtins + +Add ``--upgrade-deps`` to venv module. Patch by Cooper Ry Lees + +.. + +.. bpo: 20523 +.. date: 2019-02-15-20-42-36 +.. nonce: rRLrvr +.. section: Core and Builtins + +``pdb.Pdb`` supports ~/.pdbrc in Windows 7. Patch by Tim Hopper and Dan +Lidral-Porter. + +.. + +.. bpo: 35551 +.. date: 2019-01-18-16-16-27 +.. nonce: oF5pbO +.. section: Core and Builtins + +Updated encodings: - Removed the "tis260" encoding, which was an alias for +the nonexistent "tactis" codec. - Added "mac_centeuro" as an alias for the +mac_latin2 encoding. + +.. + +.. bpo: 19072 +.. date: 2018-07-23-13-09-54 +.. nonce: Gc59GS +.. section: Core and Builtins + +The :class:`classmethod` decorator can now wrap other descriptors such as +property objects. Adapted from a patch written by Graham Dumpleton. + +.. + +.. bpo: 27575 +.. date: 2018-06-14-13-55-45 +.. nonce: mMYgzv +.. section: Core and Builtins + +Improve speed of dictview intersection by directly using set intersection +logic. Patch by David Su. + +.. + +.. bpo: 30773 +.. date: 2018-06-07-01-01-20 +.. nonce: C31rVE +.. section: Core and Builtins + +Prohibit parallel running of aclose() / asend() / athrow(). Fix ag_running +to reflect the actual running status of the AG. + +.. + +.. bpo: 36589 +.. date: 2019-11-16-22-56-51 +.. nonce: 0Io76D +.. section: Library + +The :func:`curses.update_lines_cols` function now returns ``None`` instead +of ``1`` on success. + +.. + +.. bpo: 38807 +.. date: 2019-11-15-09-30-29 +.. nonce: PsmRog +.. section: Library + +Update :exc:`TypeError` messages for :meth:`os.path.join` to include +:class:`os.PathLike` objects as acceptable input types. + +.. + +.. bpo: 38724 +.. date: 2019-11-14-14-13-29 +.. nonce: T5ySfR +.. section: Library + +Add a repr for ``subprocess.Popen`` objects. Patch by Andrey Doroschenko. + +.. + +.. bpo: 38786 +.. date: 2019-11-13-16-49-03 +.. nonce: gNOwKh +.. section: Library + +pydoc now recognizes and parses HTTPS URLs. Patch by python273. + +.. + +.. bpo: 38785 +.. date: 2019-11-13-16-17-43 +.. nonce: NEOEfk +.. section: Library + +Prevent asyncio from crashing if parent ``__init__`` is not called from a +constructor of object derived from ``asyncio.Future``. + +.. + +.. bpo: 38723 +.. date: 2019-11-12-15-46-28 +.. nonce: gcdMFn +.. section: Library + +:mod:`pdb` now uses :meth:`io.open_code` to trigger auditing events. + +.. + +.. bpo: 27805 +.. date: 2019-11-11-21-43-06 +.. nonce: D3zl1_ +.. section: Library + +Allow opening pipes and other non-seekable files in append mode with +:func:`open`. + +.. + +.. bpo: 38438 +.. date: 2019-11-11-06-14-25 +.. nonce: vSVeHN +.. section: Library + +Simplify the :mod:`argparse` usage message for ``nargs="*"``. + +.. + +.. bpo: 38761 +.. date: 2019-11-10-13-40-33 +.. nonce: P1UUIZ +.. section: Library + +WeakSet is now registered as a collections.abc.MutableSet. + +.. + +.. bpo: 38716 +.. date: 2019-11-06-15-58-07 +.. nonce: R3uMLT +.. section: Library + +logging: change RotatingHandler namer and rotator to class-level attributes. +This stops __init__ from setting them to None in the case where a subclass +defines them with eponymous methods. + +.. + +.. bpo: 38713 +.. date: 2019-11-05-21-22-22 +.. nonce: bmhquU +.. section: Library + +Add :data:`os.P_PIDFD` constant, which may be passed to :func:`os.waitid` to +wait on a Linux process file descriptor. + +.. + +.. bpo: 38692 +.. date: 2019-11-05-19-15-57 +.. nonce: 2DCDA- +.. section: Library + +Add :class:`asyncio.PidfdChildWatcher`, a Linux-specific child watcher +implementation that polls process file descriptors. + +.. + +.. bpo: 38692 +.. date: 2019-11-05-07-18-24 +.. nonce: UpatA7 +.. section: Library + +Expose the Linux ``pidfd_open`` syscall as :func:`os.pidfd_open`. + +.. + +.. bpo: 38602 +.. date: 2019-10-27-22-29-45 +.. nonce: 7jvYFA +.. section: Library + +Added constants :data:`~fcntl.F_OFD_GETLK`, :data:`~fcntl.F_OFD_SETLK` and +:data:`~fcntl.F_OFD_SETLKW` to the :mod:`fcntl` module. Patch by Dong-hee +Na. + +.. + +.. bpo: 38334 +.. date: 2019-10-27-00-08-49 +.. nonce: pfLLmc +.. section: Library + +Fixed seeking backward on an encrypted :class:`zipfile.ZipExtFile`. + +.. + +.. bpo: 38312 +.. date: 2019-10-26-14-42-20 +.. nonce: e_FVWh +.. section: Library + +Add :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, +:func:`curses.get_tabsize`, and :func:`curses.set_tabsize` functions - by +Anthony Sottile. + +.. + +.. bpo: 38586 +.. date: 2019-10-24-17-26-39 +.. nonce: cyq5nr +.. section: Library + +Now :func:`~logging.config.fileConfig` correcty sets the .name of handlers +loaded. + +.. + +.. bpo: 38565 +.. date: 2019-10-24-08-10-30 +.. nonce: SWSUst +.. section: Library + +Add new cache_parameters() method for functools.lru_cache() to better +support pickling. + +.. + +.. bpo: 34679 +.. date: 2019-10-23-16-25-12 +.. nonce: Bnw8o3 +.. section: Library + +asynci.ProactorEventLoop.close() now only calls signal.set_wakeup_fd() in +the main thread. + +.. + +.. bpo: 31202 +.. date: 2019-10-20-12-04-48 +.. nonce: NfdIus +.. section: Library + +The case the result of :func:`pathlib.WindowsPath.glob` matches now the case +of the pattern for literal parts. + +.. + +.. bpo: 36321 +.. date: 2019-10-19-21-41-20 +.. nonce: CFlxfy +.. section: Library + +Remove misspelled attribute. The 3.8 changelog noted that this would be +removed in 3.9. + +.. + +.. bpo: 38521 +.. date: 2019-10-18-13-57-31 +.. nonce: U-7aaM +.. section: Library + +Fixed erroneous equality comparison in statistics.NormalDist(). + +.. + +.. bpo: 38493 +.. date: 2019-10-16-19-56-51 +.. nonce: 86ExWB +.. section: Library + +Added :data:`~os.CLD_KILLED` and :data:`~os.CLD_STOPPED` for +:attr:`si_code`. Patch by Dong-hee Na. + +.. + +.. bpo: 38478 +.. date: 2019-10-15-11-37-57 +.. nonce: A87OPO +.. section: Library + +Fixed a bug in :meth:`inspect.signature.bind` that was causing it to fail +when handling a keyword argument with same name as positional-only +parameter. Patch by Pablo Galindo. + +.. + +.. bpo: 33604 +.. date: 2019-10-15-09-47-40 +.. nonce: J12cWT +.. section: Library + +Fixed `hmac.new` and `hmac.HMAC` to raise TypeError instead of ValueError +when the digestmod parameter, now required in 3.8, is omitted. Also +clarified the hmac module documentation and docstrings. + +.. + +.. bpo: 38378 +.. date: 2019-10-13-11-00-03 +.. nonce: yYNpSm +.. section: Library + +Parameters *out* and *in* of :func:`os.sendfile` was renamed to *out_fd* and +*in_fd*. + +.. + +.. bpo: 38417 +.. date: 2019-10-12-00-13-47 +.. nonce: W7x_aS +.. section: Library + +Added support for setting the umask in the child process to the subprocess +module on POSIX systems. + +.. + +.. bpo: 38449 +.. date: 2019-10-11-18-49-00 +.. nonce: 9TWMlz +.. section: Library + +Revert GH-15522, which introduces a regression in +:meth:`mimetypes.guess_type` due to improper handling of filenames as urls. + +.. + +.. bpo: 38431 +.. date: 2019-10-10-16-53-00 +.. nonce: d5wzNp +.. section: Library + +Fix ``__repr__`` method for :class:`dataclasses.InitVar` to support typing +objects, patch by Samuel Colvin. + +.. + +.. bpo: 38109 +.. date: 2019-10-10-00-25-28 +.. nonce: 9w-IGF +.. section: Library + +Add missing :data:`stat.S_IFDOOR`, :data:`stat.S_IFPORT`, +:data:`stat.S_IFWHT`, :func:`stat.S_ISDOOR`, :func:`stat.S_ISPORT`, and +:func:`stat.S_ISWHT` values to the Python implementation of :mod:`stat`. + +.. + +.. bpo: 38422 +.. date: 2019-10-09-18-16-51 +.. nonce: aiM5bq +.. section: Library + +Clarify docstrings of pathlib suffix(es) + +.. + +.. bpo: 38405 +.. date: 2019-10-08-11-18-40 +.. nonce: 0-7e7s +.. section: Library + +Nested subclasses of :class:`typing.NamedTuple` are now pickleable. + +.. + +.. bpo: 38332 +.. date: 2019-10-05-02-07-52 +.. nonce: hwrPN7 +.. section: Library + +Prevent :exc:`KeyError` thrown by :func:`_encoded_words.decode` when given +an encoded-word with invalid content-type encoding from propagating all the +way to :func:`email.message.get`. + +.. + +.. bpo: 38371 +.. date: 2019-10-04-18-39-59 +.. nonce: S6Klvm +.. section: Library + +Deprecated the ``split()`` method in :class:`_tkinter.TkappType` in favour +of the ``splitlist()`` method which has more consistent and predicable +behavior. + +.. + +.. bpo: 38341 +.. date: 2019-10-01-21-06-18 +.. nonce: uqwgU_ +.. section: Library + +Add :exc:`smtplib.SMTPNotSupportedError` to the :mod:`smtplib` exported +names. + +.. + +.. bpo: 38319 +.. date: 2019-09-30-22-06-33 +.. nonce: 5QjiDa +.. section: Library + +sendfile() used in socket and shutil modules was raising OverflowError for +files >= 2GiB on 32-bit architectures. (patch by Giampaolo Rodola) + +.. + +.. bpo: 38242 +.. date: 2019-09-30-00-15-27 +.. nonce: uPIyAc +.. section: Library + +Revert the new asyncio Streams API + +.. + +.. bpo: 13153 +.. date: 2019-09-29-22-47-37 +.. nonce: 0mO9qR +.. section: Library + +OS native encoding is now used for converting between Python strings and Tcl +objects. This allows to display, copy and paste to clipboard emoji and +other non-BMP characters. Converting strings from Tcl to Python and back +now never fails (except MemoryError). + +.. + +.. bpo: 38019 +.. date: 2019-09-29-13-50-24 +.. nonce: 6MoOE3 +.. section: Library + +Correctly handle pause/resume reading of closed asyncio unix pipe. + +.. + +.. bpo: 38163 +.. date: 2019-09-28-20-16-40 +.. nonce: x51-vK +.. section: Library + +Child mocks will now detect their type as either synchronous or +asynchronous, asynchronous child mocks will be AsyncMocks and synchronous +child mocks will be either MagicMock or Mock (depending on their parent +type). + +.. + +.. bpo: 38161 +.. date: 2019-09-27-16-31-28 +.. nonce: zehai1 +.. section: Library + +Removes _AwaitEvent from AsyncMock. + +.. + +.. bpo: 38216 +.. date: 2019-09-27-15-24-45 +.. nonce: -7yvZR +.. section: Library + +Allow the rare code that wants to send invalid http requests from the +`http.client` library a way to do so. The fixes for bpo-30458 led to +breakage for some projects that were relying on this ability to test their +own behavior in the face of bad requests. + +.. + +.. bpo: 28286 +.. date: 2019-09-26-12-16-30 +.. nonce: LdSsrN +.. section: Library + +Deprecate opening :class:`~gzip.GzipFile` for writing implicitly. Always +specify the *mode* argument for writing. + +.. + +.. bpo: 38108 +.. date: 2019-09-25-21-37-02 +.. nonce: Jr9HU6 +.. section: Library + +Any synchronous magic methods on an AsyncMock now return a MagicMock. Any +asynchronous magic methods on a MagicMock now return an AsyncMock. + +.. + +.. bpo: 38265 +.. date: 2019-09-25-05-16-19 +.. nonce: X6-gsT +.. section: Library + +Update the *length* parameter of :func:`os.pread` to accept +:c:type:`Py_ssize_t` instead of :c:type:`int`. + +.. + +.. bpo: 38112 +.. date: 2019-09-24-10-55-01 +.. nonce: 2EinX9 +.. section: Library + +:mod:`compileall` has a higher default recursion limit and new command-line +arguments for path manipulation, symlinks handling, and multiple +optimization levels. + +.. + +.. bpo: 38248 +.. date: 2019-09-22-13-05-36 +.. nonce: Yo3N_1 +.. section: Library + +asyncio: Fix inconsistent immediate Task cancellation + +.. + +.. bpo: 38237 +.. date: 2019-09-20-14-27-17 +.. nonce: xRUZbx +.. section: Library + +The arguments for the builtin pow function are more descriptive. They can +now also be passed in as keywords. + +.. + +.. bpo: 34002 +.. date: 2019-09-19-19-58-33 +.. nonce: KBnaVX +.. section: Library + +Improve efficiency in parts of email package by changing while-pop to a for +loop, using isdisjoint instead of set intersections. + +.. + +.. bpo: 38191 +.. date: 2019-09-17-12-28-27 +.. nonce: 1TU0HV +.. section: Library + +Constructors of :class:`~typing.NamedTuple` and :class:`~typing.TypedDict` +types now accept arbitrary keyword argument names, including "cls", "self", +"typename", "_typename", "fields" and "_fields". + +.. + +.. bpo: 38155 +.. date: 2019-09-16-21-47-48 +.. nonce: d92lRc +.. section: Library + +Add ``__all__`` to :mod:`datetime`. Patch by Tahia Khan. + +.. + +.. bpo: 38185 +.. date: 2019-09-16-19-12-57 +.. nonce: zYWppY +.. section: Library + +Fixed case-insensitive string comparison in :class:`sqlite3.Row` indexing. + +.. + +.. bpo: 38136 +.. date: 2019-09-16-09-54-42 +.. nonce: MdI-Zb +.. section: Library + +Changes AsyncMock call count and await count to be two different counters. +Now await count only counts when a coroutine has been awaited, not when it +has been called, and vice-versa. Update the documentation around this. + +.. + +.. bpo: 37828 +.. date: 2019-09-15-21-31-18 +.. nonce: gLLDX7 +.. section: Library + +Fix default mock name in :meth:`unittest.mock.Mock.assert_called` +exceptions. Patch by Abraham Toriz Cruz. + +.. + +.. bpo: 38175 +.. date: 2019-09-15-10-30-33 +.. nonce: 61XlUv +.. section: Library + +Fix a memory leak in comparison of :class:`sqlite3.Row` objects. + +.. + +.. bpo: 33936 +.. date: 2019-09-14-10-34-00 +.. nonce: 8wCI_n +.. section: Library + +_hashlib no longer calls obsolete OpenSSL initialization function with +OpenSSL 1.1.0+. + +.. + +.. bpo: 34706 +.. date: 2019-09-13-14-54-33 +.. nonce: HWVpOY +.. section: Library + +Preserve subclassing in inspect.Signature.from_callable. + +.. + +.. bpo: 38153 +.. date: 2019-09-13-12-18-51 +.. nonce: nHAbuJ +.. section: Library + +Names of hashing algorithms frome OpenSSL are now normalized to follow +Python's naming conventions. For example OpenSSL uses sha3-512 instead of +sha3_512 or blake2b512 instead of blake2b. + +.. + +.. bpo: 38115 +.. date: 2019-09-13-09-24-58 +.. nonce: BOO-Y1 +.. section: Library + +Fix a bug in dis.findlinestarts() where it would return invalid bytecode +offsets. Document that a code object's co_lnotab can contain invalid +bytecode offsets. + +.. + +.. bpo: 38148 +.. date: 2019-09-13-08-55-43 +.. nonce: Lnww6D +.. section: Library + +Add slots to :mod:`asyncio` transport classes, which can reduce memory +usage. + +.. + +.. bpo: 38142 +.. date: 2019-09-12-18-41-35 +.. nonce: 1I0Ch0 +.. section: Library + +The _hashlib OpenSSL wrapper extension module is now PEP-384 compliant. + +.. + +.. bpo: 9216 +.. date: 2019-09-12-14-54-45 +.. nonce: W7QMpC +.. section: Library + +hashlib constructors now support usedforsecurity flag to signal that a +hashing algorithm is not used in a security context. + +.. + +.. bpo: 36991 +.. date: 2019-09-12-14-52-38 +.. nonce: 1OcSm8 +.. section: Library + +Fixes a potential incorrect AttributeError exception escaping +ZipFile.extract() in some unsupported input error situations. + +.. + +.. bpo: 38134 +.. date: 2019-09-12-13-18-55 +.. nonce: gXJTbP +.. section: Library + +Remove obsolete copy of PBKDF2_HMAC_fast. All supported OpenSSL versions +contain a fast implementation. + +.. + +.. bpo: 38132 +.. date: 2019-09-12-12-47-35 +.. nonce: KSFx1F +.. section: Library + +The OpenSSL hashlib wrapper uses a simpler implementation. Several Macros +and pointless caches are gone. The hash name now comes from OpenSSL's EVP. +The algorithm name stays the same, except it is now always lower case. + +.. + +.. bpo: 38008 +.. date: 2019-09-12-10-47-34 +.. nonce: sH74Iy +.. section: Library + +Fix parent class check in protocols to correctly identify the module that +provides a builtin protocol, instead of assuming they all come from the +:mod:`collections.abc` module + +.. + +.. bpo: 34037 +.. date: 2019-09-11-21-38-41 +.. nonce: LIAS_3 +.. section: Library + +For :mod:`asyncio`, add a new coroutine +:meth:`loop.shutdown_default_executor`. The new coroutine provides an API to +schedule an executor shutdown that waits on the threadpool to finish +closing. Also, :func:`asyncio.run` has been updated to utilize the new +coroutine. Patch by Kyle Stanley. + +.. + +.. bpo: 37405 +.. date: 2019-09-11-20-27-41 +.. nonce: MG5xiY +.. section: Library + +Fixed regression bug for socket.getsockname() for non-CAN_ISOTP AF_CAN +address family sockets by returning a 1-tuple instead of string. + +.. + +.. bpo: 38121 +.. date: 2019-09-11-16-54-57 +.. nonce: SrSDzB +.. section: Library + +Update parameter names on functions in importlib.metadata matching the +changes in the 0.22 release of importlib_metadata. + +.. + +.. bpo: 38110 +.. date: 2019-09-11-14-49-20 +.. nonce: A19Y-q +.. section: Library + +The os.closewalk() implementation now uses the libc fdwalk() API on +platforms where it is available. + +.. + +.. bpo: 38093 +.. date: 2019-09-11-14-45-30 +.. nonce: yQ6k7y +.. section: Library + +Fixes AsyncMock so it doesn't crash when used with AsyncContextManagers or +AsyncIterators. + +.. + +.. bpo: 37488 +.. date: 2019-09-11-11-44-16 +.. nonce: S8CJUL +.. section: Library + +Add warning to :meth:`datetime.utctimetuple`, :meth:`datetime.utcnow` and +:meth:`datetime.utcfromtimestamp` . + +.. + +.. bpo: 35640 +.. date: 2019-09-10-15-52-55 +.. nonce: X0lp5f +.. section: Library + +Allow passing a :term:`path-like object` as ``directory`` argument to the +:class:`http.server.SimpleHTTPRequestHandler` class. Patch by Géry Ogam. + +.. + +.. bpo: 38086 +.. date: 2019-09-10-11-42-59 +.. nonce: w5TlG- +.. section: Library + +Update importlib.metadata with changes from `importlib_metadata 0.21 +<https://gitlab.com/python-devs/importlib_metadata/blob/0.21/importlib_metadata/docs/changelog.rst>`_. + +.. + +.. bpo: 37251 +.. date: 2019-09-10-10-59-50 +.. nonce: 8zn2o3 +.. section: Library + +Remove `__code__` check in AsyncMock that incorrectly evaluated function +specs as async objects but failed to evaluate classes with `__await__` but +no `__code__` attribute defined as async objects. + +.. + +.. bpo: 38037 +.. date: 2019-09-09-18-39-23 +.. nonce: B0UgFU +.. section: Library + +Fix reference counters in the :mod:`signal` module. + +.. + +.. bpo: 38066 +.. date: 2019-09-09-14-39-47 +.. nonce: l9mWv- +.. section: Library + +Hide internal asyncio.Stream methods: feed_eof(), feed_data(), +set_exception() and set_transport(). + +.. + +.. bpo: 38059 +.. date: 2019-09-08-11-36-50 +.. nonce: 8SA6co +.. section: Library + +inspect.py now uses sys.exit() instead of exit() + +.. + +.. bpo: 38049 +.. date: 2019-09-07-12-32-50 +.. nonce: xKP4tf +.. section: Library + +Added command-line interface for the :mod:`ast` module. + +.. + +.. bpo: 37953 +.. date: 2019-09-06-17-40-34 +.. nonce: db5FQq +.. section: Library + +In :mod:`typing`, improved the ``__hash__`` and ``__eq__`` methods for +:class:`ForwardReferences`. + +.. + +.. bpo: 38026 +.. date: 2019-09-04-20-34-14 +.. nonce: 0LLRX- +.. section: Library + +Fixed :func:`inspect.getattr_static` used ``isinstance`` while it should +avoid dynamic lookup. + +.. + +.. bpo: 35923 +.. date: 2019-09-03-01-41-35 +.. nonce: lYpKbY +.. section: Library + +Update :class:`importlib.machinery.BuiltinImporter` to use +``loader._ORIGIN`` instead of a hardcoded value. Patch by Dong-hee Na. + +.. + +.. bpo: 38010 +.. date: 2019-09-02-14-30-39 +.. nonce: JOnz9Z +.. section: Library + +In ``importlib.metadata`` sync with ``importlib_metadata`` 0.20, clarifying +behavior of ``files()`` and fixing issue where only one requirement was +returned for ``requires()`` on ``dist-info`` packages. + +.. + +.. bpo: 38006 +.. date: 2019-09-02-13-37-27 +.. nonce: Y7vA0Q +.. section: Library + +weakref.WeakValueDictionary defines a local remove() function used as +callback for weak references. This function was created with a closure. +Modify the implementation to avoid the closure. + +.. + +.. bpo: 37995 +.. date: 2019-08-31-13-36-09 +.. nonce: rS8HzT +.. section: Library + +Added the *indent* option to :func:`ast.dump` which allows it to produce a +multiline indented output. + +.. + +.. bpo: 34410 +.. date: 2019-08-31-01-52-59 +.. nonce: 7KbWZQ +.. section: Library + +Fixed a crash in the :func:`tee` iterator when re-enter it. RuntimeError is +now raised in this case. + +.. + +.. bpo: 37140 +.. date: 2019-08-30-11-21-10 +.. nonce: cFAX-a +.. section: Library + +Fix a ctypes regression of Python 3.8. When a ctypes.Structure is passed by +copy to a function, ctypes internals created a temporary object which had +the side effect of calling the structure finalizer (__del__) twice. The +Python semantics requires a finalizer to be called exactly once. Fix ctypes +internals to no longer call the finalizer twice. + +.. + +.. bpo: 37587 +.. date: 2019-08-29-18-48-48 +.. nonce: N7TGTC +.. section: Library + +``_json.scanstring`` is now up to 3x faster when there are many backslash +escaped characters in the JSON string. + +.. + +.. bpo: 37834 +.. date: 2019-08-29-16-41-36 +.. nonce: FThnsh +.. section: Library + +Prevent shutil.rmtree exception when built on non-Windows system without fd +system call support, like older versions of macOS. + +.. + +.. bpo: 10978 +.. date: 2019-08-29-01-19-13 +.. nonce: J6FQYY +.. section: Library + +Semaphores and BoundedSemaphores can now release more than one waiting +thread at a time. + +.. + +.. bpo: 37972 +.. date: 2019-08-28-21-40-12 +.. nonce: kP-n4L +.. section: Library + +Subscripts to the `unittest.mock.call` objects now receive the same chaining +mechanism as any other custom attributes, so that the following usage no +longer raises a `TypeError`: + +call().foo().__getitem__('bar') + +Patch by blhsing + +.. + +.. bpo: 37965 +.. date: 2019-08-28-14-04-18 +.. nonce: 7xGE-C +.. section: Library + +Fix C compiler warning caused by distutils.ccompiler.CCompiler.has_function. + +.. + +.. bpo: 37964 +.. date: 2019-08-27-21-19-28 +.. nonce: SxdnsF +.. section: Library + +Add ``F_GETPATH`` command to :mod:`fcntl`. + +.. + +.. bpo: 37960 +.. date: 2019-08-27-10-52-13 +.. nonce: CTY7Lw +.. section: Library + +``repr()`` of buffered and text streams now silences only expected +exceptions when get the value of "name" and "mode" attributes. + +.. + +.. bpo: 37961 +.. date: 2019-08-27-10-30-44 +.. nonce: 4nm0zZ +.. section: Library + +Add a ``total_nframe`` field to the traces collected by the tracemalloc +module. This field indicates the original number of frames before it was +truncated. + +.. + +.. bpo: 37951 +.. date: 2019-08-27-10-03-48 +.. nonce: MfRQgL +.. section: Library + +Most features of the subprocess module now work again in subinterpreters. +Only *preexec_fn* is restricted in subinterpreters. + +.. + +.. bpo: 36205 +.. date: 2019-08-27-03-53-26 +.. nonce: AfkGRl +.. section: Library + +Fix the rusage implementation of time.process_time() to correctly report the +sum of the system and user CPU time. + +.. + +.. bpo: 37950 +.. date: 2019-08-26-10-45-51 +.. nonce: -K1IKT +.. section: Library + +Fix :func:`ast.dump` when call with incompletely initialized node. + +.. + +.. bpo: 34679 +.. date: 2019-08-25-18-07-48 +.. nonce: HECzL7 +.. section: Library + +Restores instantiation of Windows IOCP event loops from the non-main thread. + +.. + +.. bpo: 36917 +.. date: 2019-08-25-14-56-42 +.. nonce: GBxdw2 +.. section: Library + +Add default implementation of the :meth:`ast.NodeVisitor.visit_Constant` +method which emits a deprecation warning and calls corresponding methody +``visit_Num()``, ``visit_Str()``, etc. + +.. + +.. bpo: 37798 +.. date: 2019-08-24-16-54-49 +.. nonce: 7mRQCk +.. section: Library + +Update test_statistics.py to verify that the statistics module works well +for both C and Python implementations. Patch by Dong-hee Na + +.. + +.. bpo: 26589 +.. date: 2019-08-23-00-55-19 +.. nonce: M1xyxG +.. section: Library + +Added a new status code to the http module: 451 +UNAVAILABLE_FOR_LEGAL_REASONS + +.. + +.. bpo: 37915 +.. date: 2019-08-22-16-13-27 +.. nonce: xyoZI5 +.. section: Library + +Fix a segmentation fault that appeared when comparing instances of +``datetime.timezone`` and ``datetime.tzinfo`` objects. Patch by Pablo +Galindo. + +.. + +.. bpo: 32554 +.. date: 2019-08-22-01-49-05 +.. nonce: 4xiXyM +.. section: Library + +Deprecate having random.seed() call hash on arbitrary types. + +.. + +.. bpo: 9938 +.. date: 2019-08-21-16-38-56 +.. nonce: t3G7N9 +.. section: Library + +Add optional keyword argument ``exit_on_error`` for :class:`ArgumentParser`. + +.. + +.. bpo: 37851 +.. date: 2019-08-21-13-43-04 +.. nonce: mIIfD_ +.. section: Library + +The :mod:`faulthandler` module no longer allocates its alternative stack at +Python startup. Now the stack is only allocated at the first faulthandler +usage. + +.. + +.. bpo: 32793 +.. date: 2019-08-20-05-17-32 +.. nonce: cgpXl6 +.. section: Library + +Fix a duplicated debug message when :meth:`smtplib.SMTP.connect` is called. + +.. + +.. bpo: 37885 +.. date: 2019-08-19-10-31-41 +.. nonce: 4Nc9sp +.. section: Library + +venv: Don't generate unset variable warning on deactivate. + +.. + +.. bpo: 37868 +.. date: 2019-08-17-22-33-54 +.. nonce: hp64fi +.. section: Library + +Fix dataclasses.is_dataclass when given an instance that never raises +AttributeError in __getattr__. That is, an object that returns something +for __dataclass_fields__ even if it's not a dataclass. + +.. + +.. bpo: 37811 +.. date: 2019-08-14-21-41-07 +.. nonce: d1xYj7 +.. section: Library + +Fix ``socket`` module's ``socket.connect(address)`` function being unable to +establish connection in case of interrupted system call. The problem was +observed on all OSes which ``poll(2)`` system call can take only +non-negative integers and -1 as a timeout value. + +.. + +.. bpo: 37863 +.. date: 2019-08-14-20-46-39 +.. nonce: CkXqgX +.. section: Library + +Optimizations for Fraction.__hash__ suggested by Tim Peters. + +.. + +.. bpo: 21131 +.. date: 2019-08-14-15-34-23 +.. nonce: 0MMQRi +.. section: Library + +Fix ``faulthandler.register(chain=True)`` stack. faulthandler now allocates +a dedicated stack of ``SIGSTKSZ*2`` bytes, instead of just ``SIGSTKSZ`` +bytes. Calling the previous signal handler in faulthandler signal handler +uses more than ``SIGSTKSZ`` bytes of stack memory on some platforms. + +.. + +.. bpo: 37798 +.. date: 2019-08-14-13-51-24 +.. nonce: AmXrik +.. section: Library + +Add C fastpath for statistics.NormalDist.inv_cdf() Patch by Dong-hee Na + +.. + +.. bpo: 37804 +.. date: 2019-08-12-23-07-47 +.. nonce: Ene6L- +.. section: Library + +Remove the deprecated method `threading.Thread.isAlive()`. Patch by Dong-hee +Na. + +.. + +.. bpo: 37819 +.. date: 2019-08-11-10-34-19 +.. nonce: LVJls- +.. section: Library + +Add Fraction.as_integer_ratio() to match the corresponding methods in bool, +int, float, and decimal. + +.. + +.. bpo: 14465 +.. date: 2019-08-10-18-50-04 +.. nonce: qZGC4g +.. section: Library + +Add an xml.etree.ElementTree.indent() function for pretty-printing XML +trees. Contributed by Stefan Behnel. + +.. + +.. bpo: 37810 +.. date: 2019-08-10-12-33-27 +.. nonce: d4zbvB +.. section: Library + +Fix :mod:`difflib` ``?`` hint in diff output when dealing with tabs. Patch +by Anthony Sottile. + +.. + +.. bpo: 37772 +.. date: 2019-08-07-23-48-09 +.. nonce: hLCvdn +.. section: Library + +In ``zipfile.Path``, when adding implicit dirs, ensure that ancestral +directories are added and that duplicates are excluded. + +.. + +.. bpo: 18578 +.. date: 2019-08-07-19-34-07 +.. nonce: xfvdb_ +.. section: Library + +Renamed and documented `test.bytecode_helper` as +`test.support.bytecode_helper`. Patch by Joannah Nanjekye. + +.. + +.. bpo: 37785 +.. date: 2019-08-07-14-49-22 +.. nonce: y7OlT8 +.. section: Library + +Fix xgettext warnings in :mod:`argparse`. + +.. + +.. bpo: 34488 +.. date: 2019-08-06-21-30-58 +.. nonce: OqxVo8 +.. section: Library + +:meth:`writelines` method of :class:`io.BytesIO` is now slightly faster when +many small lines are passed. Patch by Sergey Fedoseev. + +.. + +.. bpo: 37449 +.. date: 2019-08-04-17-22-33 +.. nonce: ycbL2z +.. section: Library + +`ensurepip` now uses `importlib.resources.read_binary()` to read data +instead of `pkgutil.get_data()`. Patch by Joannah Nanjekye. + +.. + +.. bpo: 28292 +.. date: 2019-08-04-11-47-58 +.. nonce: vkihH5 +.. section: Library + +Mark calendar.py helper functions as being private. The follows PEP 8 +guidance to maintain the style conventions in the module and it addresses a +known case of user confusion. + +.. + +.. bpo: 18049 +.. date: 2019-08-02-16-44-42 +.. nonce: OA4qBL +.. section: Library + +Add definition of THREAD_STACK_SIZE for AIX in Python/thread_pthread.h The +default thread stacksize caused crashes with the default recursion limit +Patch by M Felt + +.. + +.. bpo: 37742 +.. date: 2019-08-02-14-01-25 +.. nonce: f4Xn9S +.. section: Library + +The logging.getLogger() API now returns the root logger when passed the name +'root', whereas previously it returned a non-root logger named 'root'. This +could affect cases where user code explicitly wants a non-root logger named +'root', or instantiates a logger using logging.getLogger(__name__) in some +top-level module called 'root.py'. + +.. + +.. bpo: 37738 +.. date: 2019-08-01-17-11-16 +.. nonce: A3WWcT +.. section: Library + +Fix the implementation of curses ``addch(str, color_pair)``: pass the color +pair to ``setcchar()``, instead of always passing 0 as the color pair. + +.. + +.. bpo: 37723 +.. date: 2019-07-31-16-49-01 +.. nonce: zq6tw8 +.. section: Library + +Fix performance regression on regular expression parsing with huge character +sets. Patch by Yann Vaginay. + +.. + +.. bpo: 35943 +.. date: 2019-07-31-15-52-51 +.. nonce: -KswoB +.. section: Library + +The function :c:func:`PyImport_GetModule` now ensures any module it returns +is fully initialized. Patch by Joannah Nanjekye. + +.. + +.. bpo: 32178 +.. date: 2019-07-30-22-41-05 +.. nonce: X-IFLe +.. section: Library + +Fix IndexError in :mod:`email` package when trying to parse invalid address +fields starting with ``:``. + +.. + +.. bpo: 37268 +.. date: 2019-07-30-01-27-29 +.. nonce: QDmA44 +.. section: Library + +The :mod:`parser` module is deprecated and will be removed in future +versions of Python. + +.. + +.. bpo: 11953 +.. date: 2019-07-29-21-39-45 +.. nonce: 4Hpwf9 +.. section: Library + +Completing WSA* error codes in :mod:`socket`. + +.. + +.. bpo: 37685 +.. date: 2019-07-28-22-25-25 +.. nonce: _3bN9f +.. section: Library + +Fixed comparisons of :class:`datetime.timedelta` and +:class:`datetime.timezone`. + +.. + +.. bpo: 37697 +.. date: 2019-07-28-17-44-21 +.. nonce: 7UV5d0 +.. section: Library + +Syncronize ``importlib.metadata`` with `importlib_metadata 0.19 +<https://gitlab.com/python-devs/importlib_metadata/-/milestones/20>`_, +improving handling of EGG-INFO files and fixing a crash when entry point +names contained colons. + +.. + +.. bpo: 37695 +.. date: 2019-07-27-20-21-03 +.. nonce: QANdvg +.. section: Library + +Correct :func:`curses.unget_wch` error message. Patch by Anthony Sottile. + +.. + +.. bpo: 37689 +.. date: 2019-07-27-18-00-43 +.. nonce: glEmZi +.. section: Library + +Add :meth:`is_relative_to` in :class:`PurePath` to determine whether or not +one path is relative to another. + +.. + +.. bpo: 29553 +.. date: 2019-07-27-10-14-45 +.. nonce: TVeIDe +.. section: Library + +Fixed :meth:`argparse.ArgumentParser.format_usage` for mutually exclusive +groups. Patch by Andrew Nester. + +.. + +.. bpo: 37691 +.. date: 2019-07-26-22-30-01 +.. nonce: 1Li3rx +.. section: Library + +Let math.dist() accept coordinates as sequences (or iterables) rather than +just tuples. + +.. + +.. bpo: 37685 +.. date: 2019-07-26-00-12-29 +.. nonce: TqckMZ +.. section: Library + +Fixed ``__eq__``, ``__lt__`` etc implementations in some classes. They now +return :data:`NotImplemented` for unsupported type of the other operand. +This allows the other operand to play role (for example the equality +comparison with :data:`~unittest.mock.ANY` will return ``True``). + +.. + +.. bpo: 37354 +.. date: 2019-07-25-10-28-40 +.. nonce: RT3_3H +.. section: Library + +Make Activate.ps1 Powershell script static to allow for signing it. + +.. + +.. bpo: 37664 +.. date: 2019-07-24-18-27-44 +.. nonce: o-GYZC +.. section: Library + +Update wheels bundled with ensurepip (pip 19.2.3 and setuptools 41.2.0) + +.. + +.. bpo: 37663 +.. date: 2019-07-24-14-38-53 +.. nonce: h4-9-1 +.. section: Library + +Bring consistency to venv shell activation scripts by always using +__VENV_PROMPT__. + +.. + +.. bpo: 37642 +.. date: 2019-07-21-20-59-31 +.. nonce: L61Bvy +.. section: Library + +Allowed the pure Python implementation of :class:`datetime.timezone` to +represent sub-minute offsets close to minimum and maximum boundaries, +specifically in the ranges (23:59, 24:00) and (-23:59, 24:00). Patch by +Ngalim Siregar + +.. + +.. bpo: 36161 +.. date: 2019-07-20-01-17-43 +.. nonce: Fzf-f9 +.. section: Library + +In :mod:`posix`, use ``ttyname_r`` instead of ``ttyname`` for thread safety. + +.. + +.. bpo: 36324 +.. date: 2019-07-19-22-44-41 +.. nonce: 1VjywS +.. section: Library + +Make internal attributes for statistics.NormalDist() private. + +.. + +.. bpo: 37555 +.. date: 2019-07-19-20-13-48 +.. nonce: S5am28 +.. section: Library + +Fix `NonCallableMock._call_matcher` returning tuple instead of `_Call` +object when `self._spec_signature` exists. Patch by Elizabeth Uselton + +.. + +.. bpo: 29446 +.. date: 2019-07-19-16-06-48 +.. nonce: iXGuoi +.. section: Library + +Make `from tkinter import *` import only the expected objects. + +.. + +.. bpo: 16970 +.. date: 2019-07-19-01-46-56 +.. nonce: GEASf5 +.. section: Library + +Adding a value error when an invalid value in passed to nargs Patch by +Robert Leenders + +.. + +.. bpo: 34443 +.. date: 2019-07-17-11-10-08 +.. nonce: OFnGqz +.. section: Library + +Exceptions from :mod:`enum` now use the ``__qualname`` of the enum class in +the exception message instead of the ``__name__``. + +.. + +.. bpo: 37491 +.. date: 2019-07-17-06-54-43 +.. nonce: op0aMs +.. section: Library + +Fix ``IndexError`` when parsing email headers with unexpectedly ending +bare-quoted string value. Patch by Abhilash Raj. + +.. + +.. bpo: 37587 +.. date: 2019-07-13-16-02-48 +.. nonce: fd-1aF +.. section: Library + +Make json.loads faster for long strings. (Patch by Marco Paolini) + +.. + +.. bpo: 18378 +.. date: 2019-07-13-13-40-12 +.. nonce: NHcojp +.. section: Library + +Recognize "UTF-8" as a valid value for LC_CTYPE in locale._parse_localename. + +.. + +.. bpo: 37579 +.. date: 2019-07-13-10-59-43 +.. nonce: B1Tq9i +.. section: Library + +Return :exc:`NotImplemented` in Python implementation of ``__eq__`` for +:class:`~datetime.timedelta` and :class:`~datetime.time` when the other +object being compared is not of the same type to match C implementation. +Patch by Karthikeyan Singaravelan. + +.. + +.. bpo: 21478 +.. date: 2019-07-10-23-07-11 +.. nonce: cCw9rF +.. section: Library + +Record calls to parent when autospecced object is attached to a mock using +:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan. + +.. + +.. bpo: 37531 +.. date: 2019-07-09-19-38-26 +.. nonce: GX7s8S +.. section: Library + +"python3 -m test -jN --timeout=TIMEOUT" now kills a worker process if it +runs longer than *TIMEOUT* seconds. + +.. + +.. bpo: 37482 +.. date: 2019-07-09-11-20-21 +.. nonce: auzvev +.. section: Library + +Fix serialization of display name in originator or destination address +fields with both encoded words and special chars. + +.. + +.. bpo: 36993 +.. date: 2019-07-09-05-44-39 +.. nonce: 4javqu +.. section: Library + +Improve error reporting for corrupt zip files with bad zip64 extra data. +Patch by Daniel Hillier. + +.. + +.. bpo: 37502 +.. date: 2019-07-08-03-15-04 +.. nonce: qZGC4g +.. section: Library + +pickle.loads() no longer raises TypeError when the buffers argument is set +to None + +.. + +.. bpo: 37520 +.. date: 2019-07-07-21-09-08 +.. nonce: Gg0KD6 +.. section: Library + +Correct behavior for zipfile.Path.parent when the path object identifies a +subdirectory. + +.. + +.. bpo: 18374 +.. date: 2019-07-05-21-46-45 +.. nonce: qgE0H3 +.. section: Library + +Fix the ``.col_offset`` attribute of nested :class:`ast.BinOp` instances +which had a too large value in some situations. + +.. + +.. bpo: 37424 +.. date: 2019-07-04-13-00-20 +.. nonce: 0i1MR- +.. section: Library + +Fixes a possible hang when using a timeout on `subprocess.run()` while +capturing output. If the child process spawned its own children or +otherwise connected its stdout or stderr handles with another process, we +could hang after the timeout was reached and our child was killed when +attempting to read final output from the pipes. + +.. + +.. bpo: 37421 +.. date: 2019-07-03-12-47-52 +.. nonce: gR5hC8 +.. section: Library + +Fix :func:`multiprocessing.util.get_temp_dir` finalizer: clear also the +'tempdir' configuration of the current process, so next call to +``get_temp_dir()`` will create a new temporary directory, rather than +reusing the removed temporary directory. + +.. + +.. bpo: 37481 +.. date: 2019-07-02-13-08-30 +.. nonce: hd5k09 +.. section: Library + +The distutils ``bdist_wininst`` command is deprecated in Python 3.8, use +``bdist_wheel`` (wheel packages) instead. + +.. + +.. bpo: 37479 +.. date: 2019-07-02-12-43-57 +.. nonce: O53a5S +.. section: Library + +When `Enum.__str__` is overridden in a derived class, the override will be +used by `Enum.__format__` regardless of whether mixin classes are present. + +.. + +.. bpo: 37440 +.. date: 2019-06-28-16-40-17 +.. nonce: t3wX-N +.. section: Library + +http.client now enables TLS 1.3 post-handshake authentication for default +context or if a cert_file is passed to HTTPSConnection. + +.. + +.. bpo: 37437 +.. date: 2019-06-27-20-33-50 +.. nonce: du39_A +.. section: Library + +Update vendorized expat version to 2.2.7. + +.. + +.. bpo: 37428 +.. date: 2019-06-27-13-27-02 +.. nonce: _wcwUd +.. section: Library + +SSLContext.post_handshake_auth = True no longer sets +SSL_VERIFY_POST_HANDSHAKE verify flag for client connections. Although the +option is documented as ignored for clients, OpenSSL implicitly enables cert +chain validation when the flag is set. + +.. + +.. bpo: 37420 +.. date: 2019-06-26-22-25-05 +.. nonce: CxFJ09 +.. section: Library + +:func:`os.sched_setaffinity` now correctly handles errors that arise during +iteration over its ``mask`` argument. Patch by Brandt Bucher. + +.. + +.. bpo: 37412 +.. date: 2019-06-26-16-28-59 +.. nonce: lx0VjC +.. section: Library + +The :func:`os.getcwdb` function now uses the UTF-8 encoding on Windows, +rather than the ANSI code page: see :pep:`529` for the rationale. The +function is no longer deprecated on Windows. + +.. + +.. bpo: 37406 +.. date: 2019-06-26-03-00-06 +.. nonce: uovkpq +.. section: Library + +The sqlite3 module now raises TypeError, rather than ValueError, if +operation argument type is not str: execute(), executemany() and calling a +connection. + +.. + +.. bpo: 29412 +.. date: 2019-06-25-19-27-25 +.. nonce: n4Zqdh +.. section: Library + +Fix IndexError in parsing a header value ending unexpectedly. Patch by +Abhilash Raj. + +.. + +.. bpo: 36546 +.. date: 2019-06-25-05-07-48 +.. nonce: RUcxaK +.. section: Library + +The *dist* argument for statistics.quantiles() is now positional only. The +current name doesn't reflect that the argument can be either a dataset or a +distribution. Marking the parameter as positional avoids confusion and +makes it possible to change the name later. + +.. + +.. bpo: 37394 +.. date: 2019-06-25-02-10-00 +.. nonce: srZ1zx +.. section: Library + +Fix a bug that was causing the :mod:`queue` module to fail if the +accelerator module was not available. Patch by Pablo Galindo. + +.. + +.. bpo: 37376 +.. date: 2019-06-24-11-26-34 +.. nonce: SwSUQ4 +.. section: Library + +:mod:`pprint` now has support for :class:`types.SimpleNamespace`. Patch by +Carl Bordum Hansen. + +.. + +.. bpo: 26967 +.. date: 2019-06-23-12-46-10 +.. nonce: xEuem1 +.. section: Library + +An :class:`~argparse.ArgumentParser` with ``allow_abbrev=False`` no longer +disables grouping of short flags, such as ``-vv``, but only disables +abbreviation of long flags as documented. Patch by Zac Hatfield-Dodds. + +.. + +.. bpo: 37212 +.. date: 2019-06-22-22-00-35 +.. nonce: Zhv-tq +.. section: Library + +:func:`unittest.mock.call` now preserves the order of keyword arguments in +repr output. Patch by Karthikeyan Singaravelan. + +.. + +.. bpo: 37372 +.. date: 2019-06-22-12-30-00 +.. nonce: kIKqZ6 +.. section: Library + +Fix error unpickling datetime.time objects from Python 2 with seconds>=24. +Patch by Justin Blanchard. + +.. + +.. bpo: 37345 +.. date: 2019-06-22-08-51-44 +.. nonce: o8XABX +.. section: Library + +Add formal support for UDPLITE sockets. Support was present before, but it +is now easier to detect support with ``hasattr(socket, 'IPPROTO_UDPLITE')`` +and there are constants defined for each of the values needed: +:py:obj:`socket.IPPROTO_UDPLITE`, :py:obj:`UDPLITE_SEND_CSCOV`, and +:py:obj:`UDPLITE_RECV_CSCOV`. Patch by Gabe Appleton. + +.. + +.. bpo: 37358 +.. date: 2019-06-21-14-54-02 +.. nonce: RsASpn +.. section: Library + +Optimized ``functools.partial`` by using vectorcall. + +.. + +.. bpo: 37347 +.. date: 2019-06-20-14-23-48 +.. nonce: Gf9yYI +.. section: Library + +:meth:`sqlite3.Connection.create_aggregate`, +:meth:`sqlite3.Connection.create_function`, +:meth:`sqlite3.Connection.set_authorizer`, +:meth:`sqlite3.Connection.set_progress_handler` +:meth:`sqlite3.Connection.set_trace_callback` methods lead to segfaults if +some of these methods are called twice with an equal object but not the +same. Now callbacks are stored more carefully. Patch by Aleksandr Balezin. + +.. + +.. bpo: 37163 +.. date: 2019-06-19-10-35-53 +.. nonce: 9pPg2F +.. section: Library + +The *obj* argument of :func:`dataclasses.replace` is positional-only now. + +.. + +.. bpo: 37085 +.. date: 2019-06-18-16-29-31 +.. nonce: GeYaD6 +.. section: Library + +Add the optional Linux SocketCAN Broadcast Manager constants, used as flags +to configure the BCM behaviour, in the socket module. Patch by Karl Ding. + +.. + +.. bpo: 37328 +.. date: 2019-06-18-15-31-33 +.. nonce: 2PW1-l +.. section: Library + +``HTMLParser.unescape`` is removed. It was undocumented and deprecated +since Python 3.4. + +.. + +.. bpo: 37305 +.. date: 2019-06-18-13-59-55 +.. nonce: fGzWlP +.. section: Library + +Add .webmanifest -> application/manifest+json to list of recognized file +types and content type headers + +.. + +.. bpo: 37320 +.. date: 2019-06-17-22-10-37 +.. nonce: ffieYa +.. section: Library + +``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to +``sunau.open()``, and ``wave.openfp()`` alias to ``wave.open()`` have been +removed. They were deprecated since Python 3.7. + +.. + +.. bpo: 37315 +.. date: 2019-06-17-11-59-52 +.. nonce: o1xFC0 +.. section: Library + +Deprecated accepting floats with integral value (like ``5.0``) in +:func:`math.factorial`. + +.. + +.. bpo: 37312 +.. date: 2019-06-17-10-03-52 +.. nonce: qKvBfF +.. section: Library + +``_dummy_thread`` and ``dummy_threading`` modules have been removed. These +modules were deprecated since Python 3.7 which requires threading support. + +.. + +.. bpo: 33972 +.. date: 2019-06-15-14-39-50 +.. nonce: XxnNPw +.. section: Library + +Email with single part but content-type set to ``multipart/*`` doesn't raise +AttributeError anymore. + +.. + +.. bpo: 37280 +.. date: 2019-06-14-13-30-47 +.. nonce: Fxur0F +.. section: Library + +Use threadpool for reading from file for sendfile fallback mode. + +.. + +.. bpo: 37279 +.. date: 2019-06-14-13-25-56 +.. nonce: OHlW6l +.. section: Library + +Fix asyncio sendfile support when sendfile sends extra data in fallback +mode. + +.. + +.. bpo: 19865 +.. date: 2019-06-14-08-30-16 +.. nonce: FRGH4I +.. section: Library + +:func:`ctypes.create_unicode_buffer()` now also supports non-BMP characters +on platforms with 16-bit :c:type:`wchar_t` (for example, Windows and AIX). + +.. + +.. bpo: 37266 +.. date: 2019-06-13-11-59-52 +.. nonce: goLjef +.. section: Library + +In a subinterpreter, spawning a daemon thread now raises an exception. +Daemon threads were never supported in subinterpreters. Previously, the +subinterpreter finalization crashed with a Pyton fatal error if a daemon +thread was still running. + +.. + +.. bpo: 37210 +.. date: 2019-06-12-16-10-50 +.. nonce: r4yMg6 +.. section: Library + +Allow pure Python implementation of :mod:`pickle` to work even when the C +:mod:`_pickle` module is unavailable. + +.. + +.. bpo: 21872 +.. date: 2019-06-12-08-56-22 +.. nonce: V9QGGN +.. section: Library + +Fix :mod:`lzma`: module decompresses data incompletely. When decompressing a +FORMAT_ALONE format file, and it doesn't have the end marker, sometimes the +last one to dozens bytes can't be output. Patch by Ma Lin. + +.. + +.. bpo: 35922 +.. date: 2019-06-11-19-34-29 +.. nonce: rxpzWr +.. section: Library + +Fix :meth:`RobotFileParser.crawl_delay` and +:meth:`RobotFileParser.request_rate` to return ``None`` rather than raise +:exc:`AttributeError` when no relevant rule is defined in the robots.txt +file. Patch by Rémi Lapeyre. + +.. + +.. bpo: 35766 +.. date: 2019-06-11-16-41-40 +.. nonce: v1Kj-T +.. section: Library + +Change the format of feature_version to be a (major, minor) tuple. + +.. + +.. bpo: 36607 +.. date: 2019-06-11-13-52-04 +.. nonce: 5_mJkQ +.. section: Library + +Eliminate :exc:`RuntimeError` raised by :func:`asyncio.all_tasks()` if +internal tasks weak set is changed by another thread during iteration. + +.. + +.. bpo: 18748 +.. date: 2019-06-11-01-54-19 +.. nonce: ADqCkq +.. section: Library + +:class:`_pyio.IOBase` destructor now does nothing if getting the ``closed`` +attribute fails to better mimick :class:`_io.IOBase` finalizer. + +.. + +.. bpo: 36402 +.. date: 2019-06-11-00-35-02 +.. nonce: b0IJVp +.. section: Library + +Fix a race condition at Python shutdown when waiting for threads. Wait until +the Python thread state of all non-daemon threads get deleted (join all +non-daemon threads), rather than just wait until non-daemon Python threads +complete. + +.. + +.. bpo: 37206 +.. date: 2019-06-09-22-25-03 +.. nonce: 2WBg4q +.. section: Library + +Default values which cannot be represented as Python objects no longer +improperly represented as ``None`` in function signatures. + +.. + +.. bpo: 37111 +.. date: 2019-06-09-17-22-33 +.. nonce: 2I0z2k +.. section: Library + +Added ``encoding`` and ``errors`` keyword parameters to +``logging.basicConfig``. + +.. + +.. bpo: 12144 +.. date: 2019-06-08-23-26-58 +.. nonce: Z7mz-q +.. section: Library + +Ensure cookies with ``expires`` attribute are handled in +:meth:`CookieJar.make_cookies`. + +.. + +.. bpo: 34886 +.. date: 2019-06-08-16-03-19 +.. nonce: Ov-pc9 +.. section: Library + +Fix an unintended ValueError from :func:`subprocess.run` when checking for +conflicting `input` and `stdin` or `capture_output` and `stdout` or `stderr` +args when they were explicitly provided but with `None` values within a +passed in `**kwargs` dict rather than as passed directly by name. Patch +contributed by Rémi Lapeyre. + +.. + +.. bpo: 37173 +.. date: 2019-06-08-11-33-48 +.. nonce: 0e_8gS +.. section: Library + +The exception message for ``inspect.getfile()`` now correctly reports the +passed class rather than the builtins module. + +.. + +.. bpo: 37178 +.. date: 2019-06-07-17-16-09 +.. nonce: Day_oB +.. section: Library + +Give math.perm() a one argument form that means the same as +math.factorial(). + +.. + +.. bpo: 37178 +.. date: 2019-06-07-17-11-34 +.. nonce: b1StSv +.. section: Library + +For math.perm(n, k), let k default to n, giving the same result as +factorial. + +.. + +.. bpo: 37165 +.. date: 2019-06-05-11-48-19 +.. nonce: V_rwfE +.. section: Library + +Converted _collections._count_elements to use the Argument Clinic. + +.. + +.. bpo: 34767 +.. date: 2019-06-04-23-44-52 +.. nonce: BpDShN +.. section: Library + +Do not always create a :class:`collections.deque` in :class:`asyncio.Lock`. + +.. + +.. bpo: 37158 +.. date: 2019-06-04-22-25-38 +.. nonce: JKm15S +.. section: Library + +Speed-up statistics.fmean() by switching from a function to a generator. + +.. + +.. bpo: 34282 +.. date: 2019-06-04-15-39-14 +.. nonce: aAK54n +.. section: Library + +Remove ``Enum._convert`` method, deprecated in 3.8. + +.. + +.. bpo: 37150 +.. date: 2019-06-04-14-44-41 +.. nonce: TTzHxj +.. section: Library + +`argparse._ActionsContainer.add_argument` now throws error, if someone +accidentally pass FileType class object instead of instance of FileType as +`type` argument + +.. + +.. bpo: 28724 +.. date: 2019-05-30-15-51-42 +.. nonce: 34TrS8 +.. section: Library + +The socket module now has the :func:`socket.send_fds` and +:func:`socket.recv.fds` methods. Contributed by Joannah Nanjekye, Shinya +Okano and Victor Stinner. + +.. + +.. bpo: 35621 +.. date: 2019-05-28-19-03-46 +.. nonce: Abc1lf +.. section: Library + +Support running asyncio subprocesses when execution event loop in a thread +on UNIX. + +.. + +.. bpo: 36520 +.. date: 2019-05-28-02-37-00 +.. nonce: W4tday +.. section: Library + +Lengthy email headers with UTF-8 characters are now properly encoded when +they are folded. Patch by Jeffrey Kintscher. + +.. + +.. bpo: 30835 +.. date: 2019-05-27-15-29-46 +.. nonce: 3FoaWH +.. section: Library + +Fixed a bug in email parsing where a message with invalid bytes in +content-transfer-encoding of a multipart message can cause an +AttributeError. Patch by Andrew Donnellan. + +.. + +.. bpo: 31163 +.. date: 2019-05-26-16-34-53 +.. nonce: 21A802 +.. section: Library + +pathlib.Path instance's rename and replace methods now return the new Path +instance. + +.. + +.. bpo: 25068 +.. date: 2019-05-22-04-52-35 +.. nonce: vR_rC- +.. section: Library + +:class:`urllib.request.ProxyHandler` now lowercases the keys of the passed +dictionary. + +.. + +.. bpo: 26185 +.. date: 2019-05-20-14-17-29 +.. nonce: pQW4mI +.. section: Library + +Fix :func:`repr` on empty :class:`ZipInfo` object. Patch by Mickaël +Schoentgen. + +.. + +.. bpo: 21315 +.. date: 2019-05-19-10-48-46 +.. nonce: PgXVqF +.. section: Library + +Email headers containing RFC2047 encoded words are parsed despite the +missing whitespace, and a defect registered. Also missing trailing +whitespace after encoded words is now registered as a defect. + +.. + +.. bpo: 31904 +.. date: 2019-05-17-16-50-02 +.. nonce: 4a5ggm +.. section: Library + +Port test_datetime to VxWorks: skip zoneinfo tests on VxWorks + +.. + +.. bpo: 35805 +.. date: 2019-05-17-15-11-08 +.. nonce: E4YwYz +.. section: Library + +Add parser for Message-ID header and add it to default HeaderRegistry. This +should prevent folding of Message-ID using RFC 2048 encoded words. + +.. + +.. bpo: 36871 +.. date: 2019-05-12-12-58-37 +.. nonce: 6xiEHZ +.. section: Library + +Ensure method signature is used instead of constructor signature of a class +while asserting mock object against method calls. Patch by Karthikeyan +Singaravelan. + +.. + +.. bpo: 35070 +.. date: 2019-05-09-18-50-55 +.. nonce: 4vaqNL +.. section: Library + +posix.getgrouplist() now works correctly when the user belongs to +NGROUPS_MAX supplemental groups. Patch by Jeffrey Kintscher. + +.. + +.. bpo: 31783 +.. date: 2019-05-07-19-25-55 +.. nonce: lgLo69 +.. section: Library + +Fix race condition in ThreadPoolExecutor when worker threads are created +during interpreter shutdown. + +.. + +.. bpo: 36582 +.. date: 2019-05-07-17-42-36 +.. nonce: L_dxR6 +.. section: Library + +Fix ``UserString.encode()`` to correctly return ``bytes`` rather than a +``UserString`` instance. + +.. + +.. bpo: 32424 +.. date: 2019-04-28-10-34-19 +.. nonce: eqNPhM +.. section: Library + +Deprecate xml.etree.ElementTree.Element.copy() in favor of copy.copy(). + +Patch by Gordon P. Hemsley + +.. + +.. bpo: 36564 +.. date: 2019-04-08-13-00-13 +.. nonce: _n67m_ +.. section: Library + +Fix infinite loop in email header folding logic that would be triggered when +an email policy's max_line_length is not long enough to include the required +markup and any values in the message. Patch by Paul Ganssle + +.. + +.. bpo: 36543 +.. date: 2019-04-06-20-08-12 +.. nonce: RPjmUz +.. section: Library + +Removed methods Element.getchildren(), Element.getiterator() and +ElementTree.getiterator() and the xml.etree.cElementTree module. + +.. + +.. bpo: 36409 +.. date: 2019-03-23-16-42-46 +.. nonce: ZYVKao +.. section: Library + +Remove the old plistlib API deprecated in Python 3.4 + +.. + +.. bpo: 36302 +.. date: 2019-03-21-19-23-46 +.. nonce: Yc591g +.. section: Library + +distutils sorts source file lists so that Extension .so files build more +reproducibly by default + +.. + +.. bpo: 36250 +.. date: 2019-03-09-16-04-12 +.. nonce: tSK4N1 +.. section: Library + +Ignore ``ValueError`` from ``signal`` with ``interaction`` in non-main +thread. + +.. + +.. bpo: 36046 +.. date: 2019-02-19-17-32-45 +.. nonce: fX9OPj +.. section: Library + +Added ``user``, ``group`` and ``extra_groups`` parameters to the +subprocess.Popen constructor. Patch by Patrick McLean. + +.. + +.. bpo: 32627 +.. date: 2019-02-03-19-13-08 +.. nonce: b68f64 +.. section: Library + +Fix compile error when ``_uuid`` headers conflicting included. + +.. + +.. bpo: 35800 +.. date: 2019-01-25-17-12-17 +.. nonce: MCGJdQ +.. section: Library + +Deprecate ``smtpd.MailmanProxy`` ready for future removal. + +.. + +.. bpo: 35168 +.. date: 2019-01-22-09-23-20 +.. nonce: UGv2yW +.. section: Library + +:attr:`shlex.shlex.punctuation_chars` is now a read-only property. + +.. + +.. bpo: 8538 +.. date: 2019-01-09-16-18-52 +.. nonce: PfVZia +.. section: Library + +Add support for boolean actions like ``--foo`` and ``--no-foo`` to argparse. +Patch contributed by Rémi Lapeyre. + +.. + +.. bpo: 20504 +.. date: 2018-11-21-18-05-50 +.. nonce: kG0ub5 +.. section: Library + +Fixes a bug in :mod:`cgi` module when a multipart/form-data request has no +`Content-Length` header. + +.. + +.. bpo: 25988 +.. date: 2018-11-19-10-23-58 +.. nonce: 6o7gGK +.. section: Library + +The abstract base classes in :mod:`collections.abc` no longer are exposed in +the regular :mod:`collections` module. + +.. + +.. bpo: 11122 +.. date: 2018-11-12-19-08-50 +.. nonce: Gj7BQn +.. section: Library + +Distutils won't check for rpmbuild in specified paths only. + +.. + +.. bpo: 34775 +.. date: 2018-09-23-03-18-52 +.. nonce: vHeuHk +.. section: Library + +Division handling of PurePath now returns NotImplemented instead of raising +a TypeError when passed something other than an instance of str or PurePath. +Patch by Roger Aiudi. + +.. + +.. bpo: 34749 +.. date: 2018-09-21-13-23-29 +.. nonce: B0k819 +.. section: Library + +:func:`binascii.a2b_base64` is now up to 2 times faster. Patch by Sergey +Fedoseev. + +.. + +.. bpo: 34519 +.. date: 2018-08-27-15-44-50 +.. nonce: cPlH1h +.. section: Library + +Add additional aliases for HP Roman 8. Patch by Michael Osipov. + +.. + +.. bpo: 28009 +.. date: 2018-08-04-12-26-11 +.. nonce: 4JcHZb +.. section: Library + +Fix uuid.getnode() on platforms with '.' as MAC Addr delimiter as well fix +for MAC Addr format that omits a leading 0 in MAC Addr values. Currently, +AIX is the only know platform with these settings. Patch by Michael Felt. + +.. + +.. bpo: 30618 +.. date: 2018-07-14-13-48-56 +.. nonce: T5AUF6 +.. section: Library + +Add :meth:`~pathlib.Path.readlink`. Patch by Girts Folkmanis. + +.. + +.. bpo: 32498 +.. date: 2018-06-17-21-02-25 +.. nonce: La3TZz +.. section: Library + +Made :func:`urllib.parse.unquote()` accept bytes in addition to strings. +Patch by Stein Karlsen. + +.. + +.. bpo: 33348 +.. date: 2018-04-24-13-18-48 +.. nonce: XaJDei +.. section: Library + +lib2to3 now recognizes expressions after ``*`` and `**` like in ``f(*[] or +[])``. + +.. + +.. bpo: 32689 +.. date: 2018-02-13-17-58-30 +.. nonce: a-3SnH +.. section: Library + +Update :func:`shutil.move` function to allow for Path objects to be used as +source argument. Patch by Emily Morehouse and Maxwell "5.13b" McKinnon. + +.. + +.. bpo: 32820 +.. date: 2018-02-13-12-25-43 +.. nonce: 0stF0u +.. section: Library + +Added __format__ to IPv4 and IPv6 classes. Always outputs a fully zero- +padded string. Supports b/x/n modifiers (bin/hex/native format). Native +format for IPv4 is bin, native format for IPv6 is hex. Also supports '#' and +'_' modifiers. + +.. + +.. bpo: 27657 +.. date: 2017-12-26-14-32-23 +.. nonce: 6BhyVK +.. section: Library + +Fix urllib.parse.urlparse() with numeric paths. A string like "path:80" is +no longer parsed as a path but as a scheme ("path") and a path ("80"). + +.. + +.. bpo: 4963 +.. date: 2017-08-15-11-24-41 +.. nonce: LRYres +.. section: Library + +Fixed non-deterministic behavior related to mimetypes extension mapping and +module reinitialization. + +.. + +.. bpo: 21767 +.. date: 2019-11-17-11-54-57 +.. nonce: Qq3Dos +.. section: Documentation + +Explicitly mention abc support in functools.singledispatch + +.. + +.. bpo: 38816 +.. date: 2019-11-15-11-39-13 +.. nonce: vUaSVL +.. section: Documentation + +Provides more details about the interaction between :c:func:`fork` and +CPython's runtime, focusing just on the C-API. This includes cautions about +where :c:func:`fork` should and shouldn't be called. + +.. + +.. bpo: 38351 +.. date: 2019-11-15-09-22-28 +.. nonce: xwhlse +.. section: Documentation + +Modernize :mod:`email` examples from %-formatting to f-strings. + +.. + +.. bpo: 38778 +.. date: 2019-11-12-15-31-09 +.. nonce: PHhTlv +.. section: Documentation + +Document the fact that :exc:`RuntimeError` is raised if :meth:`os.fork` is +called in a subinterpreter. + +.. + +.. bpo: 38592 +.. date: 2019-10-26-13-19-07 +.. nonce: Y96BYO +.. section: Documentation + +Add Brazilian Portuguese to the language switcher at Python Documentation +website. + +.. + +.. bpo: 38294 +.. date: 2019-09-27-23-37-41 +.. nonce: go_jFf +.. section: Documentation + +Add list of no-longer-escaped chars to re.escape documentation + +.. + +.. bpo: 38053 +.. date: 2019-09-07-19-09-01 +.. nonce: lttibE +.. section: Documentation + +Modernized the plistlib documentation + +.. + +.. bpo: 26868 +.. date: 2019-09-07-15-55-46 +.. nonce: Raw0Gd +.. section: Documentation + +Fix example usage of :c:func:`PyModule_AddObject` to properly handle errors. + +.. + +.. bpo: 36797 +.. date: 2019-09-05-14-47-51 +.. nonce: KN9Ga5 +.. section: Documentation + +Fix a dead link in the distutils API Reference. + +.. + +.. bpo: 37977 +.. date: 2019-08-29-14-38-01 +.. nonce: pML-UI +.. section: Documentation + +Warn more strongly and clearly about pickle insecurity + +.. + +.. bpo: 37979 +.. date: 2019-08-29-10-40-05 +.. nonce: TAUx_E +.. section: Documentation + +Added a link to dateutil.parser.isoparse in the datetime.fromisoformat +documentation. Patch by Paul Ganssle + +.. + +.. bpo: 12707 +.. date: 2019-08-27-01-14-59 +.. nonce: Yj3_7_ +.. section: Documentation + +Deprecate info(), geturl(), getcode() methods in favor of the headers, url, +and status properties, respectively, for HTTPResponse and addinfourl. Also +deprecate the code attribute of addinfourl in favor of the status attribute. +Patch by Ashwin Ramaswami + +.. + +.. bpo: 37937 +.. date: 2019-08-24-12-59-06 +.. nonce: F7fHbt +.. section: Documentation + +Mention ``frame.f_trace`` in :func:`sys.settrace` docs. + +.. + +.. bpo: 37878 +.. date: 2019-08-16-20-01-10 +.. nonce: MvA6rZ +.. section: Documentation + +Make :c:func:`PyThreadState_DeleteCurrent` Internal. + +.. + +.. bpo: 37759 +.. date: 2019-08-04-19-20-58 +.. nonce: EHRF4i +.. section: Documentation + +Beginning edits to Whatsnew 3.8 + +.. + +.. bpo: 37726 +.. date: 2019-07-31-11-40-06 +.. nonce: h-3o9a +.. section: Documentation + +Stop recommending getopt in the tutorial for command line argument parsing +and promote argparse. + +.. + +.. bpo: 32910 +.. date: 2019-07-25-10-30-32 +.. nonce: caLLAe +.. section: Documentation + +Remove implementation-specific behaviour of how venv's Deactivate works. + +.. + +.. bpo: 37256 +.. date: 2019-07-16-14-48-12 +.. nonce: qJTrBb +.. section: Documentation + +Fix wording of arguments for :class:`Request` in :mod:`urllib.request` + +.. + +.. bpo: 37284 +.. date: 2019-07-13-12-58-20 +.. nonce: rP8WpB +.. section: Documentation + +Add a brief note to indicate that any new ``sys.implementation`` required +attributes must go through the PEP process. + +.. + +.. bpo: 30088 +.. date: 2019-07-13-12-43-01 +.. nonce: CIcBjy +.. section: Documentation + +Documented that :class:`mailbox.Maildir` constructor doesn't attempt to +verify the maildir folder layout correctness. Patch by Sviatoslav Sydorenko. + +.. + +.. bpo: 37521 +.. date: 2019-07-12-15-09-56 +.. nonce: 7tiFR- +.. section: Documentation + +Fix `importlib` examples to insert any newly created modules via +importlib.util.module_from_spec() immediately into sys.modules instead of +after calling loader.exec_module(). + +Thanks to Benjamin Mintz for finding the bug. + +.. + +.. bpo: 37456 +.. date: 2019-07-06-17-51-36 +.. nonce: lgAQHn +.. section: Documentation + +Slash ('/') is now part of syntax. + +.. + +.. bpo: 37487 +.. date: 2019-07-06-17-19-26 +.. nonce: QagfZ5 +.. section: Documentation + +Fix PyList_GetItem index description to include 0. + +.. + +.. bpo: 37149 +.. date: 2019-07-06-02-19-02 +.. nonce: NumHn3 +.. section: Documentation + +Replace the dead link to the Tkinter 8.5 reference by John Shipman, New +Mexico Tech, with a link to the archive.org copy. + +.. + +.. bpo: 37478 +.. date: 2019-07-06-00-57-27 +.. nonce: B0ioLw +.. section: Documentation + +Added possible exceptions to the description of os.chdir(). + +.. + +.. bpo: 34903 +.. date: 2019-06-17-09-36-46 +.. nonce: r_wGRc +.. section: Documentation + +Documented that in :meth:`datetime.datetime.strptime()`, the leading zero in +some two-digit formats is optional. Patch by Mike Gleen. + +.. + +.. bpo: 36260 +.. date: 2019-06-04-09-29-00 +.. nonce: WrGuc- +.. section: Documentation + +Add decompression pitfalls to zipfile module documentation. + +.. + +.. bpo: 37004 +.. date: 2019-05-22-04-30-07 +.. nonce: BRgxrt +.. section: Documentation + +In the documentation for difflib, a note was added explicitly warning that +the results of SequenceMatcher's ratio method may depend on the order of the +input strings. + +.. + +.. bpo: 36960 +.. date: 2019-05-18-16-25-44 +.. nonce: xEKHXj +.. section: Documentation + +Restructured the :mod:`datetime` docs in the interest of making them more +user-friendly and improving readability. Patch by Brad Solomon. + +.. + +.. bpo: 36487 +.. date: 2019-04-02-19-23-00 +.. nonce: Jg6-MG +.. section: Documentation + +Make C-API docs clear about what the "main" interpreter is. + +.. + +.. bpo: 23460 +.. date: 2019-02-14-07-12-48 +.. nonce: Iqiqtm +.. section: Documentation + +The documentation for decimal string formatting using the `:g` specifier has +been updated to reflect the correct exponential notation cutoff point. +Original patch contributed by Tuomas Suutari. + +.. + +.. bpo: 35803 +.. date: 2019-01-21-14-30-59 +.. nonce: yae6Lq +.. section: Documentation + +Document and test that ``tempfile`` functions may accept a :term:`path-like +object` for the ``dir`` argument. Patch by Anthony Sottile. + +.. + +.. bpo: 33944 +.. date: 2018-10-26-18-10-29 +.. nonce: V1YeOA +.. section: Documentation + +Added a note about the intended use of code in .pth files. + +.. + +.. bpo: 34293 +.. date: 2018-07-31-15-38-26 +.. nonce: yHupAL +.. section: Documentation + +Fix the Doc/Makefile regarding PAPER environment variable and PDF builds + +.. + +.. bpo: 25237 +.. date: 2018-06-02-12-55-23 +.. nonce: m8-JMu +.. section: Documentation + +Add documentation for tkinter modules + +.. + +.. bpo: 38614 +.. date: 2019-10-30-15-12-32 +.. nonce: M6UnLB +.. section: Tests + +Fix test_communicate() of test_asyncio.test_subprocess: use +``support.LONG_TIMEOUT`` (5 minutes), instead of just 1 minute. + +.. + +.. bpo: 38614 +.. date: 2019-10-28-15-56-02 +.. nonce: aDdDYE +.. section: Tests + +Add timeout constants to :mod:`test.support`: +:data:`~test.support.LOOPBACK_TIMEOUT`, +:data:`~test.support.INTERNET_TIMEOUT`, :data:`~test.support.SHORT_TIMEOUT` +and :data:`~test.support.LONG_TIMEOUT`. + +.. + +.. bpo: 38502 +.. date: 2019-10-17-00-49-38 +.. nonce: vUEic7 +.. section: Tests + +test.regrtest now uses process groups in the multiprocessing mode (-jN +command line option) if process groups are available: if :func:`os.setsid` +and :func:`os.killpg` functions are available. + +.. + +.. bpo: 35998 +.. date: 2019-10-16-01-36-15 +.. nonce: G305Bf +.. section: Tests + +Fix a race condition in test_asyncio.test_start_tls_server_1(). Previously, +there was a race condition between the test main() function which replaces +the protocol and the test ServerProto protocol which sends ANSWER once it +gets HELLO. Now, only the test main() function is responsible to send data, +ServerProto no longer sends data. + +.. + +.. bpo: 38470 +.. date: 2019-10-14-22-46-35 +.. nonce: NHtzpy +.. section: Tests + +Fix ``test_compileall.test_compile_dir_maxlevels()`` on Windows without long +path support: only create 3 subdirectories instead of between 20 and 100 +subdirectories. + +.. + +.. bpo: 37531 +.. date: 2019-10-08-16-42-05 +.. nonce: 7v-_Ca +.. section: Tests + +On timeout, regrtest no longer attempts to call ``popen.communicate()`` +again: it can hang until all child processes using stdout and stderr pipes +completes. Kill the worker process and ignores its output. Change also the +faulthandler timeout of the main process from 1 minute to 5 minutes, for +Python slowest buildbots. + +.. + +.. bpo: 38239 +.. date: 2019-09-26-15-48-36 +.. nonce: MfoVzY +.. section: Tests + +Fix test_gdb for Link Time Optimization (LTO) builds. + +.. + +.. bpo: 38275 +.. date: 2019-09-25-14-40-57 +.. nonce: -kdveI +.. section: Tests + +test_ssl now handles disabled TLS/SSL versions better. OpenSSL's crypto +policy and run-time settings are recognized and tests for disabled versions +are skipped. Tests also accept more TLS minimum_versions for platforms that +override OpenSSL's default with strict settings. + +.. + +.. bpo: 38271 +.. date: 2019-09-25-13-11-29 +.. nonce: iHXNIg +.. section: Tests + +The private keys for test_ssl were encrypted with 3DES in traditional PKCS#5 +format. 3DES and the digest algorithm of PKCS#5 are blocked by some strict +crypto policies. Use PKCS#8 format with AES256 encryption instead. + +.. + +.. bpo: 38270 +.. date: 2019-09-25-12-18-31 +.. nonce: _x-9uH +.. section: Tests + +test.support now has a helper function to check for availibility of a hash +digest function. Several tests are refactored avoid MD5 and use SHA256 +instead. Other tests are marked to use MD5 and skipped when MD5 is disabled. + +.. + +.. bpo: 37123 +.. date: 2019-09-24-12-30-55 +.. nonce: IoutBn +.. section: Tests + +Multiprocessing test test_mymanager() now also expects -SIGTERM, not only +exitcode 0. BaseManager._finalize_manager() sends SIGTERM to the manager +process if it takes longer than 1 second to stop, which happens on slow +buildbots. + +.. + +.. bpo: 38212 +.. date: 2019-09-24-12-24-05 +.. nonce: IWbhWz +.. section: Tests + +Multiprocessing tests: increase test_queue_feeder_donot_stop_onexc() timeout +from 1 to 60 seconds. + +.. + +.. bpo: 38117 +.. date: 2019-09-11-17-22-32 +.. nonce: X7LgGY +.. section: Tests + +Test with OpenSSL 1.1.1d + +.. + +.. bpo: 38018 +.. date: 2019-09-03-19-33-10 +.. nonce: zTrMu7 +.. section: Tests + +Increase code coverage for multiprocessing.shared_memory. + +.. + +.. bpo: 37805 +.. date: 2019-08-25-19-51-46 +.. nonce: Kl1sti +.. section: Tests + +Add tests for json.dump(..., skipkeys=True). Patch by Dong-hee Na. + +.. + +.. bpo: 37531 +.. date: 2019-08-20-19-24-19 +.. nonce: wRoXfU +.. section: Tests + +Enhance regrtest multiprocess timeout: write a message when killing a worker +process, catch popen.kill() and popen.wait() exceptions, put a timeout on +the second call to popen.communicate(). + +.. + +.. bpo: 37876 +.. date: 2019-08-16-16-15-14 +.. nonce: m3k1w3 +.. section: Tests + +Add tests for ROT-13 codec. + +.. + +.. bpo: 36833 +.. date: 2019-07-18-14-52-58 +.. nonce: Zoe9ek +.. section: Tests + +Added tests for PyDateTime_xxx_GET_xxx() macros of the C API of the +:mod:`datetime` module. Patch by Joannah Nanjekye. + +.. + +.. bpo: 37558 +.. date: 2019-07-11-10-33-56 +.. nonce: SKHRsL +.. section: Tests + +Fix test_shared_memory_cleaned_after_process_termination name handling + +.. + +.. bpo: 37526 +.. date: 2019-07-09-12-33-18 +.. nonce: vmm5y7 +.. section: Tests + +Add :func:`test.support.catch_threading_exception`: context manager catching +:class:`threading.Thread` exception using :func:`threading.excepthook`. + +.. + +.. bpo: 37421 +.. date: 2019-07-08-10-11-36 +.. nonce: OY77go +.. section: Tests + +test_concurrent_futures now explicitly stops the ForkServer instance if it's +running. + +.. + +.. bpo: 37421 +.. date: 2019-07-05-14-47-55 +.. nonce: n8o2to +.. section: Tests + +multiprocessing tests now stop the ForkServer instance if it's running: +close the "alive" file descriptor to ask the server to stop and then remove +its UNIX address. + +.. + +.. bpo: 37421 +.. date: 2019-07-03-00-05-28 +.. nonce: ORGRSG +.. section: Tests + +test_distutils.test_build_ext() is now able to remove the temporary +directory on Windows: don't import the newly built C extension ("xx") in the +current process, but test it in a separated process. + +.. + +.. bpo: 37421 +.. date: 2019-07-02-23-29-06 +.. nonce: WEfc5A +.. section: Tests + +test_concurrent_futures now cleans up multiprocessing to remove immediately +temporary directories created by multiprocessing.util.get_temp_dir(). + +.. + +.. bpo: 37421 +.. date: 2019-07-02-23-20-35 +.. nonce: HCkKWz +.. section: Tests + +test_winconsoleio doesn't leak a temporary file anymore: use +tempfile.TemporaryFile() to remove it when the test completes. + +.. + +.. bpo: 37421 +.. date: 2019-07-01-19-57-26 +.. nonce: NFH1f0 +.. section: Tests + +multiprocessing tests now explicitly call ``_run_finalizers()`` to +immediately remove temporary directories created by tests. + +.. + +.. bpo: 37421 +.. date: 2019-07-01-19-56-17 +.. nonce: bOe350 +.. section: Tests + +urllib.request tests now call :func:`~urllib.request.urlcleanup` to remove +temporary files created by ``urlretrieve()`` tests and to clear the +``_opener`` global variable set by ``urlopen()`` and functions calling +indirectly ``urlopen()``. + +.. + +.. bpo: 37472 +.. date: 2019-07-01-17-19-47 +.. nonce: WzkEAx +.. section: Tests + +Remove ``Lib/test/outstanding_bugs.py``. + +.. + +.. bpo: 37199 +.. date: 2019-06-29-23-56-28 +.. nonce: FHDsLf +.. section: Tests + +Fix test failures when IPv6 is unavailable or disabled. + +.. + +.. bpo: 19696 +.. date: 2019-06-29-16-02-21 +.. nonce: 05ijhN +.. section: Tests + +Replace deprecated method "random.choose" with "random.choice" in +"test_pkg_import.py". + +.. + +.. bpo: 37335 +.. date: 2019-06-28-16-37-52 +.. nonce: o5S2hY +.. section: Tests + +Remove no longer necessary code from c locale coercion tests + +.. + +.. bpo: 37421 +.. date: 2019-06-27-00-37-59 +.. nonce: rVJb3x +.. section: Tests + +Fix test_shutil to no longer leak temporary files. + +.. + +.. bpo: 37411 +.. date: 2019-06-26-15-28-45 +.. nonce: 5lGNhM +.. section: Tests + +Fix test_wsgiref.testEnviron() to no longer depend on the environment +variables (don't fail if "X" variable is set). + +.. + +.. bpo: 37400 +.. date: 2019-06-25-16-02-43 +.. nonce: cx_EWv +.. section: Tests + +Fix test_os.test_chown(): use os.getgroups() rather than grp.getgrall() to +get groups. Rename also the test to test_chown_gid(). + +.. + +.. bpo: 37359 +.. date: 2019-06-24-10-47-07 +.. nonce: CkdtyO +.. section: Tests + +Add --cleanup option to python3 -m test to remove ``test_python_*`` +directories of previous failed jobs. Add "make cleantest" to run ``python3 +-m test --cleanup``. + +.. + +.. bpo: 37362 +.. date: 2019-06-21-15-47-33 +.. nonce: D3xppx +.. section: Tests + +test_gdb no longer fails if it gets an "unexpected" message on stderr: it +now ignores stderr. The purpose of test_gdb is to test that python-gdb.py +commands work as expected, not to test gdb. + +.. + +.. bpo: 35998 +.. date: 2019-06-14-17-05-49 +.. nonce: yX82oD +.. section: Tests + +Avoid TimeoutError in test_asyncio: test_start_tls_server_1() + +.. + +.. bpo: 37278 +.. date: 2019-06-14-12-21-47 +.. nonce: z0HUOr +.. section: Tests + +Fix test_asyncio ProactorLoopCtrlC: join the thread to prevent leaking a +running thread and leaking a reference. + +.. + +.. bpo: 37261 +.. date: 2019-06-13-12-19-56 +.. nonce: NuKFVo +.. section: Tests + +Fix :func:`test.support.catch_unraisable_exception`: its __exit__() method +now ignores unraisable exception raised when clearing its ``unraisable`` +attribute. + +.. + +.. bpo: 37069 +.. date: 2019-06-13-00-46-25 +.. nonce: wdktFo +.. section: Tests + +regrtest now uses :func:`sys.unraisablehook` to mark a test as "environment +altered" (ENV_CHANGED) if it emits an "unraisable exception". Moreover, +regrtest logs a warning in this case. + +Use ``python3 -m test --fail-env-changed`` to catch unraisable exceptions in +tests. + +.. + +.. bpo: 37252 +.. date: 2019-06-12-14-30-29 +.. nonce: 4o-uLs +.. section: Tests + +Fix assertions in ``test_close`` and ``test_events_mask_overflow`` devpoll +tests. + +.. + +.. bpo: 37169 +.. date: 2019-06-07-12-23-15 +.. nonce: yfXTFg +.. section: Tests + +Rewrite ``_PyObject_IsFreed()`` unit tests. + +.. + +.. bpo: 37153 +.. date: 2019-06-04-18-30-39 +.. nonce: 711INB +.. section: Tests + +``test_venv.test_multiprocessing()`` now explicitly calls +``pool.terminate()`` to wait until the pool completes. + +.. + +.. bpo: 34001 +.. date: 2019-06-03-20-47-10 +.. nonce: KvYx9z +.. section: Tests + +Make test_ssl pass with LibreSSL. LibreSSL handles minimum and maximum TLS +version differently than OpenSSL. + +.. + +.. bpo: 36919 +.. date: 2019-05-28-15-41-34 +.. nonce: -vGt_m +.. section: Tests + +Make ``test_source_encoding.test_issue2301`` implementation independent. The +test will work now for both CPython and IronPython. + +.. + +.. bpo: 30202 +.. date: 2019-04-15-19-05-35 +.. nonce: Wt7INj +.. section: Tests + +Update ``test.test_importlib.test_abc`` to test ``find_spec()``. + +.. + +.. bpo: 28009 +.. date: 2019-04-11-07-59-43 +.. nonce: s85urF +.. section: Tests + +Modify the test_uuid logic to test when a program is available AND can be +used to obtain a MACADDR as basis for an UUID. Patch by M. Felt + +.. + +.. bpo: 34596 +.. date: 2018-09-07-01-18-27 +.. nonce: r2-EGd +.. section: Tests + +Fallback to a default reason when :func:`unittest.skip` is uncalled. Patch +by Naitree Zhu. + +.. + +.. bpo: 38809 +.. date: 2019-11-15-09-25-44 +.. nonce: 9jwta6 +.. section: Build + +On Windows, build scripts will now recognize and use python.exe from an +active virtual env. + +.. + +.. bpo: 38684 +.. date: 2019-11-04-14-30-37 +.. nonce: aed593 +.. section: Build + +Fix _hashlib build when Blake2 is disabled, but OpenSSL supports it. + +.. + +.. bpo: 38468 +.. date: 2019-10-13-16-18-24 +.. nonce: buCO84 +.. section: Build + +Misc/python-config.in now uses `getvar()` for all still existing +`sysconfig.get_config_var()` calls. Patch by Joannah Nanjekye. + +.. + +.. bpo: 37415 +.. date: 2019-10-11-15-32-58 +.. nonce: D9RXrq +.. section: Build + +Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks +atomic_uintptr_t type which is needed by Python. + +.. + +.. bpo: 38301 +.. date: 2019-09-28-02-37-11 +.. nonce: 123456 +.. section: Build + +In Solaris family, we must be sure to use ``-D_REENTRANT``. Patch by Jesús +Cea Avión. + +.. + +.. bpo: 36002 +.. date: 2019-09-13-14-12-36 +.. nonce: Bcl4oe +.. section: Build + +Locate ``llvm-profdata`` and ``llvm-ar`` binaries using ``AC_PATH_TOOL`` +rather than ``AC_PATH_TARGET_TOOL``. + +.. + +.. bpo: 37936 +.. date: 2019-09-10-00-54-48 +.. nonce: E7XEwu +.. section: Build + +The :file:`.gitignore` file systematically keeps "rooted", with a +non-trailing slash, all the rules that are meant to apply to files in a +specific place in the repo. Previously, when the intended file to ignore +happened to be at the root of the repo, we'd most often accidentally also +ignore files and directories with the same name anywhere in the tree. + +.. + +.. bpo: 37760 +.. date: 2019-08-24-17-39-09 +.. nonce: f3jXuH +.. section: Build + +The :file:`Tools/unicode/makeunicodedata.py` script, which is used for +converting information from the Unicode Character Database into generated +code and data used by the methods of :class:`str` and by the +:mod:`unicodedata` module, now handles each character's data as a +``dataclass`` with named attributes, rather than a length-18 list of +different fields. + +.. + +.. bpo: 37936 +.. date: 2019-08-24-00-29-40 +.. nonce: QrORqA +.. section: Build + +The :file:`.gitignore` file no longer applies to any files that are in fact +tracked in the Git repository. Patch by Greg Price. + +.. + +.. bpo: 37725 +.. date: 2019-07-30-16-26-11 +.. nonce: MkG1TT +.. section: Build + +Change "clean" makefile target to also clean the program guided optimization +(PGO) data. Previously you would have to use "make clean" and "make +profile-removal", or "make clobber". + +.. + +.. bpo: 37707 +.. date: 2019-07-29-11-36-16 +.. nonce: Sm-dGk +.. section: Build + +Mark some individual tests to skip when --pgo is used. The tests marked +increase the PGO task time significantly and likely don't help improve +optimization of the final executable. + +.. + +.. bpo: 36044 +.. date: 2019-07-11-01-28-24 +.. nonce: gIgfiJ +.. section: Build + +Reduce the number of unit tests run for the PGO generation task. This +speeds up the task by a factor of about 15x. Running the full unit test +suite is slow. This change may result in a slightly less optimized build +since not as many code branches will be executed. If you are willing to +wait for the much slower build, the old behavior can be restored using +'./configure [..] PROFILE_TASK="-m test --pgo-extended"'. We make no +guarantees as to which PGO task set produces a faster build. Users who care +should run their own relevant benchmarks as results can depend on the +environment, workload, and compiler tool chain. + +.. + +.. bpo: 37468 +.. date: 2019-07-01-14-39-40 +.. nonce: trbQ-_ +.. section: Build + +``make install`` no longer installs ``wininst-*.exe`` files used by +distutils bdist_wininst: bdist_wininst only works on Windows. + +.. + +.. bpo: 37189 +.. date: 2019-06-17-09-40-59 +.. nonce: j5ebdT +.. section: Build + +Many ``PyRun_XXX()`` functions like :c:func:`PyRun_String` were no longer +exported in ``libpython38.dll`` by mistake. Export them again to fix the ABI +compatibility. + +.. + +.. bpo: 25361 +.. date: 2019-03-19-22-07-37 +.. nonce: XO9Bfr +.. section: Build + +Enables use of SSE2 instructions in Windows 32-bit build. + +.. + +.. bpo: 36210 +.. date: 2019-03-06-18-55-10 +.. nonce: fup9H2 +.. section: Build + +Update optional extension module detection for AIX. ossaudiodev and spwd are +not applicable for AIX, and are no longer reported as missing. 3rd-party +packaging of ncurses (with ASIS support) conflicts with officially supported +AIX curses library, so configure AIX to use libcurses.a. However, skip +trying to build _curses_panel. + +patch by M Felt + +.. + +.. bpo: 38589 +.. date: 2019-10-28-10-48-16 +.. nonce: V69Q1a +.. section: Windows + +Fixes HTML Help shortcut when Windows is not installed to C drive + +.. + +.. bpo: 38453 +.. date: 2019-10-28-10-32-43 +.. nonce: NwwatW +.. section: Windows + +Ensure ntpath.realpath() correctly resolves relative paths. + +.. + +.. bpo: 38519 +.. date: 2019-10-28-05-01-29 +.. nonce: dCkY66 +.. section: Windows + +Restores the internal C headers that were missing from the nuget.org and +Microsoft Store packages. + +.. + +.. bpo: 38492 +.. date: 2019-10-16-09-49-09 +.. nonce: Te1LxC +.. section: Windows + +Remove ``pythonw.exe`` dependency on the Microsoft C++ runtime. + +.. + +.. bpo: 38344 +.. date: 2019-10-05-05-50-58 +.. nonce: scr2LO +.. section: Windows + +Fix error message in activate.bat + +.. + +.. bpo: 38359 +.. date: 2019-10-03-08-04-14 +.. nonce: wzwsl_ +.. section: Windows + +Ensures ``pyw.exe`` launcher reads correct registry key. + +.. + +.. bpo: 38355 +.. date: 2019-10-02-15-38-49 +.. nonce: n3AWX6 +.. section: Windows + +Fixes ``ntpath.realpath`` failing on ``sys.executable``. + +.. + +.. bpo: 38117 +.. date: 2019-09-16-14-07-11 +.. nonce: hJVf0C +.. section: Windows + +Update bundled OpenSSL to 1.1.1d + +.. + +.. bpo: 38092 +.. date: 2019-09-13-14-11-42 +.. nonce: x31ehI +.. section: Windows + +Reduce overhead when using multiprocessing in a Windows virtual environment. + +.. + +.. bpo: 38133 +.. date: 2019-09-12-12-05-55 +.. nonce: yFeRGS +.. section: Windows + +Allow py.exe launcher to locate installations from the Microsoft Store and +improve display of active virtual environments. + +.. + +.. bpo: 38114 +.. date: 2019-09-11-15-24-04 +.. nonce: cc0E5E +.. section: Windows + +The ``pip.ini`` is no longer included in the Nuget package. + +.. + +.. bpo: 32592 +.. date: 2019-09-11-14-51-56 +.. nonce: jvQMD9 +.. section: Windows + +Set Windows 8 as the minimum required version for API support + +.. + +.. bpo: 36634 +.. date: 2019-09-11-14-42-04 +.. nonce: 8Un8ih +.. section: Windows + +:func:`os.cpu_count` now returns active processors rather than maximum +processors. + +.. + +.. bpo: 36634 +.. date: 2019-09-11-12-34-31 +.. nonce: xLaGgb +.. section: Windows + +venv activate.bat now works when the existing variables contain double quote +characters. + +.. + +.. bpo: 38081 +.. date: 2019-09-11-10-22-01 +.. nonce: 8JhzjD +.. section: Windows + +Prevent error calling :func:`os.path.realpath` on ``'NUL'``. + +.. + +.. bpo: 38087 +.. date: 2019-09-10-14-21-40 +.. nonce: --eIib +.. section: Windows + +Fix case sensitivity in test_pathlib and test_ntpath. + +.. + +.. bpo: 38088 +.. date: 2019-09-10-14-17-25 +.. nonce: FOvWSM +.. section: Windows + +Fixes distutils not finding vcruntime140.dll with only the v142 toolset +installed. + +.. + +.. bpo: 37283 +.. date: 2019-09-09-12-22-23 +.. nonce: 8NvOkU +.. section: Windows + +Ensure command-line and unattend.xml setting override previously detected +states in Windows installer. + +.. + +.. bpo: 38030 +.. date: 2019-09-04-14-01-08 +.. nonce: _USdtk +.. section: Windows + +Fixes :func:`os.stat` failing for block devices on Windows + +.. + +.. bpo: 38020 +.. date: 2019-09-03-11-47-37 +.. nonce: xFZ2j0 +.. section: Windows + +Fixes potential crash when calling :func:`os.readlink` (or indirectly +through :func:`~os.path.realpath`) on a file that is not a supported link. + +.. + +.. bpo: 37705 +.. date: 2019-08-30-15-15-22 +.. nonce: 2o4NWW +.. section: Windows + +Improve the implementation of ``winerror_to_errno()``. + +.. + +.. bpo: 37549 +.. date: 2019-08-22-09-04-44 +.. nonce: TpKI3M +.. section: Windows + +:func:`os.dup` no longer fails for standard streams on Windows 7. + +.. + +.. bpo: 1311 +.. date: 2019-08-21-12-58-18 +.. nonce: BoW1wU +.. section: Windows + +The ``nul`` file on Windows now returns True from :func:`~os.path.exists` +and a valid result from :func:`os.stat` with ``S_IFCHR`` set. + +.. + +.. bpo: 9949 +.. date: 2019-08-14-13-40-15 +.. nonce: zW45Ks +.. section: Windows + +Enable support for following symlinks in :func:`os.realpath`. + +.. + +.. bpo: 37834 +.. date: 2019-08-12-12-00-24 +.. nonce: VB2QVj +.. section: Windows + +Treat all name surrogate reparse points on Windows in :func:`os.lstat` and +other reparse points as regular files in :func:`os.stat`. + +.. + +.. bpo: 36266 +.. date: 2019-08-08-18-05-27 +.. nonce: x4eZU3 +.. section: Windows + +Add the module name in the formatted error message when DLL load fail +happens during module import in ``_PyImport_FindSharedFuncptrWindows()``. +Patch by Srinivas Nyayapati. + +.. + +.. bpo: 25172 +.. date: 2019-08-06-18-09-18 +.. nonce: Akreij +.. section: Windows + +Trying to import the :mod:`crypt` module on Windows will result in an +:exc:`ImportError` with a message explaining that the module isn't supported +on Windows. On other platforms, if the underlying ``_crypt`` module is not +available, the ImportError will include a message explaining the problem. + +.. + +.. bpo: 37778 +.. date: 2019-08-06-13-54-12 +.. nonce: AY1XhH +.. section: Windows + +Fixes the icons used for file associations to the Microsoft Store package. + +.. + +.. bpo: 37734 +.. date: 2019-08-06-09-35-12 +.. nonce: EoJ9Nh +.. section: Windows + +Fix use of registry values to launch Python from Microsoft Store app. + +.. + +.. bpo: 37702 +.. date: 2019-07-29-16-49-31 +.. nonce: Lj2f5e +.. section: Windows + +Fix memory leak on Windows in creating an SSLContext object or running +urllib.request.urlopen('https://...'). + +.. + +.. bpo: 37672 +.. date: 2019-07-24-14-36-28 +.. nonce: uKEVHN +.. section: Windows + +Switch Windows Store package's pip to use bundled :file:`pip.ini` instead of +:envvar:`PIP_USER` variable. + +.. + +.. bpo: 10945 +.. date: 2019-07-01-12-38-48 +.. nonce: s0YBHG +.. section: Windows + +Officially drop support for creating bdist_wininst installers on non-Windows +systems. + +.. + +.. bpo: 37445 +.. date: 2019-06-28-18-10-29 +.. nonce: LsdYO6 +.. section: Windows + +Include the ``FORMAT_MESSAGE_IGNORE_INSERTS`` flag in ``FormatMessageW()`` +calls. + +.. + +.. bpo: 37369 +.. date: 2019-06-28-09-44-08 +.. nonce: 1iVpxq +.. section: Windows + +Fixes path for :data:`sys.executable` when running from the Microsoft Store. + +.. + +.. bpo: 37380 +.. date: 2019-06-25-04-15-22 +.. nonce: tPxjuz +.. section: Windows + +Don't collect unfinished processes with ``subprocess._active`` on Windows to +cleanup later. Patch by Ruslan Kuprieiev. + +.. + +.. bpo: 37351 +.. date: 2019-06-20-12-50-32 +.. nonce: asTnVW +.. section: Windows + +Removes libpython38.a from standard Windows distribution. + +.. + +.. bpo: 35360 +.. date: 2019-06-18-09-05-08 +.. nonce: tdqSmo +.. section: Windows + +Update Windows builds to use SQLite 3.28.0. + +.. + +.. bpo: 37267 +.. date: 2019-06-13-04-15-51 +.. nonce: Ygo5ef +.. section: Windows + +On Windows, :func:`os.dup` no longer creates an inheritable fd when handling +a character file. + +.. + +.. bpo: 36779 +.. date: 2019-06-11-15-41-34 +.. nonce: 0TMw6f +.. section: Windows + +Ensure ``time.tzname`` is correct on Windows when the active code page is +set to CP_UTF7 or CP_UTF8. + +.. + +.. bpo: 32587 +.. date: 2019-05-10-15-25-44 +.. nonce: -0g2O3 +.. section: Windows + +Make :data:`winreg.REG_MULTI_SZ` support zero-length strings. + +.. + +.. bpo: 28269 +.. date: 2019-05-05-05-23-34 +.. nonce: -MOHI7 +.. section: Windows + +Replace use of :c:func:`strcasecmp` for the system function +:c:func:`_stricmp`. Patch by Minmin Gong. + +.. + +.. bpo: 36590 +.. date: 2019-04-10-21-13-26 +.. nonce: ZTaKcu +.. section: Windows + +Add native Bluetooth RFCOMM support to socket module. + +.. + +.. bpo: 38117 +.. date: 2019-09-15-21-29-13 +.. nonce: ZLsoAZ +.. section: macOS + +Updated OpenSSL to 1.1.1d in macOS installer. + +.. + +.. bpo: 38089 +.. date: 2019-09-10-14-24-35 +.. nonce: eedgyD +.. section: macOS + +Move Azure Pipelines to latest VM versions and make macOS tests optional + +.. + +.. bpo: 18049 +.. date: 2019-07-13-15-58-18 +.. nonce: MklhQQ +.. section: macOS + +Increase the default stack size of threads from 5MB to 16MB on macOS, to +match the stack size of the main thread. This avoids crashes on deep +recursion in threads. + +.. + +.. bpo: 34602 +.. date: 2019-07-02-01-06-47 +.. nonce: 10d4wl +.. section: macOS + +Avoid test suite failures on macOS by no longer calling resource.setrlimit +to increase the process stack size limit at runtime. The runtime change is +no longer needed since the interpreter is being built with a larger default +stack size. + +.. + +.. bpo: 35360 +.. date: 2019-06-18-08-58-30 +.. nonce: -CWbfy +.. section: macOS + +Update macOS installer to use SQLite 3.28.0. + +.. + +.. bpo: 34631 +.. date: 2019-06-18-00-30-40 +.. nonce: vSifcv +.. section: macOS + +Updated OpenSSL to 1.1.1c in macOS installer. + +.. + +.. bpo: 26353 +.. date: 2019-11-09-23-55-59 +.. nonce: duYZiF +.. section: IDLE + +Stop adding newline when saving an IDLE shell window. + +.. + +.. bpo: 4630 +.. date: 2019-10-28-04-48-03 +.. nonce: upgjiV +.. section: IDLE + +Add an option to toggle IDLE's cursor blink for shell, editor, and output +windows. See Settings, General, Window Preferences, Cursor Blink. Patch by +Zachary Spytz. + +.. + +.. bpo: 38598 +.. date: 2019-10-26-18-16-24 +.. nonce: 6kH9FY +.. section: IDLE + +Do not try to compile IDLE shell or output windows + +.. + +.. bpo: 36698 +.. date: 2019-10-04-18-03-09 +.. nonce: BKcmom +.. section: IDLE + +IDLE no longer fails when write non-encodable characters to stderr. It now +escapes them with a backslash, as the regular Python interpreter. Added the +``errors`` field to the standard streams. + +.. + +.. bpo: 35379 +.. date: 2019-09-17-01-28-56 +.. nonce: yAECDr +.. section: IDLE + +When exiting IDLE, catch any AttributeError. One happens when +EditorWindow.close is called twice. Printing a traceback, when IDLE is run +from a terminal, is useless and annoying. + +.. + +.. bpo: 38183 +.. date: 2019-09-16-15-04-29 +.. nonce: eudCN1 +.. section: IDLE + +To avoid problems, test_idle ignores the user config directory. It no longer +tries to create or access .idlerc or any files within. Users must run IDLE +to discover problems with saving settings. + +.. + +.. bpo: 38077 +.. date: 2019-09-09-22-08-36 +.. nonce: Mzpfe2 +.. section: IDLE + +IDLE no longer adds 'argv' to the user namespace when initializing it. This +bug only affected 3.7.4 and 3.8.0b2 to 3.8.0b4. + +.. + +.. bpo: 38041 +.. date: 2019-09-05-23-12-13 +.. nonce: nxmGGK +.. section: IDLE + +Shell restart lines now fill the window width, always start with '=', and +avoid wrapping unnecessarily. The line will still wrap if the included file +name is long relative to the width. + +.. + +.. bpo: 35771 +.. date: 2019-09-01-10-22-55 +.. nonce: tdbmbP +.. section: IDLE + +To avoid occasional spurious test_idle failures on slower machines, increase +the ``hover_delay`` in test_tooltip. + +.. + +.. bpo: 37824 +.. date: 2019-08-26-00-41-53 +.. nonce: YY5jAI +.. section: IDLE + +Properly handle user input warnings in IDLE shell. Cease turning +SyntaxWarnings into SyntaxErrors. + +.. + +.. bpo: 37929 +.. date: 2019-08-24-22-00-33 +.. nonce: jb7523 +.. section: IDLE + +IDLE Settings dialog now closes properly when there is no shell window. + +.. + +.. bpo: 37902 +.. date: 2019-08-21-16-02-49 +.. nonce: _R_adE +.. section: IDLE + +Add mousewheel scrolling for IDLE module, path, and stack browsers. Patch by +George Zhang. + +.. + +.. bpo: 37849 +.. date: 2019-08-14-09-43-15 +.. nonce: -bcYF3 +.. section: IDLE + +Fixed completions list appearing too high or low when shown above the +current line. + +.. + +.. bpo: 36419 +.. date: 2019-08-04-17-10-01 +.. nonce: TJZqOc +.. section: IDLE + +Refactor IDLE autocomplete and improve testing. + +.. + +.. bpo: 37748 +.. date: 2019-08-04-15-27-50 +.. nonce: 0vf6pg +.. section: IDLE + +Reorder the Run menu. Put the most common choice, Run Module, at the top. + +.. + +.. bpo: 37692 +.. date: 2019-07-27-15-14-20 +.. nonce: TRHGjD +.. section: IDLE + +Improve highlight config sample with example shell interaction and better +labels for shell elements. + +.. + +.. bpo: 37628 +.. date: 2019-07-26-17-51-13 +.. nonce: kX4AUF +.. section: IDLE + +Settings dialog no longer expands with font size. + +.. + +.. bpo: 37627 +.. date: 2019-07-20-23-33-53 +.. nonce: dQhUNB +.. section: IDLE + +Initialize the Customize Run dialog with the command line arguments most +recently entered before. The user can optionally edit before submitting +them. + +.. + +.. bpo: 33610 +.. date: 2019-07-18-10-11-36 +.. nonce: xYqMLg +.. section: IDLE + +Fix code context not showing the correct context when first toggled on. + +.. + +.. bpo: 37530 +.. date: 2019-07-11-00-05-31 +.. nonce: AuyCyD +.. section: IDLE + +Optimize code context to reduce unneeded background activity. Font and +highlight changes now occur along with text changes instead of after a +random delay. + +.. + +.. bpo: 27452 +.. date: 2019-07-03-22-47-44 +.. nonce: nePPLi +.. section: IDLE + +Cleanup ``config.py`` by inlining ``RemoveFile`` and simplifying the +handling of ``file`` in ``CreateConfigHandlers``. + +.. + +.. bpo: 37325 +.. date: 2019-06-18-16-40-05 +.. nonce: GssOf1 +.. section: IDLE + +Fix tab focus traversal order for help source and custom run dialogs. + +.. + +.. bpo: 37321 +.. date: 2019-06-17-16-35-30 +.. nonce: zVTTGS +.. section: IDLE + +Both subprocess connection error messages now refer to the 'Startup failure' +section of the IDLE doc. + +.. + +.. bpo: 17535 +.. date: 2019-06-13-01-07-20 +.. nonce: K8i2St +.. section: IDLE + +Add optional line numbers for IDLE editor windows. Windows open without +line numbers unless set otherwise in the General tab of the configuration +dialog. + +.. + +.. bpo: 26806 +.. date: 2019-06-10-22-48-50 +.. nonce: Zltkum +.. section: IDLE + +To compensate for stack frames added by IDLE and avoid possible problems +with low recursion limits, add 30 to limits in the user code execution +process. Subtract 30 when reporting recursion limits to make this addition +mostly transparent. + +.. + +.. bpo: 37177 +.. date: 2019-06-07-00-17-41 +.. nonce: voU6pQ +.. section: IDLE + +Properly 'attach' search dialogs to their main window so that they behave +like other dialogs and do not get hidden behind their main window. + +.. + +.. bpo: 37039 +.. date: 2019-06-04-23-27-33 +.. nonce: FN_fBf +.. section: IDLE + +Adjust "Zoom Height" to individual screens by momentarily maximizing the +window on first use with a particular screen. Changing screen settings may +invalidate the saved height. While a window is maximized, "Zoom Height" has +no effect. + +.. + +.. bpo: 35763 +.. date: 2019-06-04-20-36-24 +.. nonce: 7XdoWz +.. section: IDLE + +Make calltip reminder about '/' meaning positional-only less obtrusive by +only adding it when there is room on the first line. + +.. + +.. bpo: 5680 +.. date: 2019-06-03-00-39-29 +.. nonce: VCQfOO +.. section: IDLE + +Add 'Run... Customized' to the Run menu to run a module with customized +settings. Any 'command line arguments' entered are added to sys.argv. One +can suppress the normal Shell main module restart. + +.. + +.. bpo: 36390 +.. date: 2019-03-21-08-35-00 +.. nonce: OdDCGk +.. section: IDLE + +Gather Format menu functions into format.py. Combine paragraph.py, +rstrip.py, and format methods from editor.py. + +.. + +.. bpo: 38118 +.. date: 2019-10-08-15-07-52 +.. nonce: pIZD6H +.. section: Tools/Demos + +Update Valgrind suppression file to ignore a false alarm in +:c:func:`PyUnicode_Decode` when using GCC builtin strcmp(). + +.. + +.. bpo: 38347 +.. date: 2019-10-02-09-48-42 +.. nonce: 2Tq5D1 +.. section: Tools/Demos + +pathfix.py: Assume all files that end on '.py' are Python scripts when +working recursively. + +.. + +.. bpo: 37803 +.. date: 2019-09-12-16-15-55 +.. nonce: chEizy +.. section: Tools/Demos + +pdb's ``--help`` and ``--version`` long options now work. + +.. + +.. bpo: 37942 +.. date: 2019-08-24-12-11-30 +.. nonce: 7H8N9a +.. section: Tools/Demos + +Improve ArgumentClinic converter for floats. + +.. + +.. bpo: 37704 +.. date: 2019-07-29-13-59-19 +.. nonce: xxGUz_ +.. section: Tools/Demos + +Remove ``Tools/scripts/h2py.py``: use cffi to access a C API in Python. + +.. + +.. bpo: 37675 +.. date: 2019-07-24-16-20-54 +.. nonce: 951Cvf +.. section: Tools/Demos + +2to3 now works when run from a zipped standard library. + +.. + +.. bpo: 37034 +.. date: 2019-05-27-16-13-08 +.. nonce: zbTgy8 +.. section: Tools/Demos + +Argument Clinic now uses the argument name on errors with keyword-only +argument instead of their position. Patch contributed by Rémi Lapeyre. + +.. + +.. bpo: 37064 +.. date: 2019-05-27-15-26-12 +.. nonce: k_SPW2 +.. section: Tools/Demos + +Add option -k to pathscript.py script: preserve shebang flags. Add option -a +to pathscript.py script: add flags. + +.. + +.. bpo: 37633 +.. date: 2019-11-04-21-10-47 +.. nonce: oOGVdo +.. section: C API + +Reëxport some function compatibility wrappers for macros in ``pythonrun.h``. + +.. + +.. bpo: 38644 +.. date: 2019-11-04-17-59-46 +.. nonce: euO_RR +.. section: C API + +Provide :c:func:`Py_EnterRecursiveCall` and :c:func:`Py_LeaveRecursiveCall` +as regular functions for the limited API. Previously, there were defined as +macros, but these macros didn't work with the limited API which cannot +access ``PyThreadState.recursion_depth`` field. Remove +``_Py_CheckRecursionLimit`` from the stable ABI. + +.. + +.. bpo: 38650 +.. date: 2019-10-30-22-03-03 +.. nonce: 0pi8zt +.. section: C API + +The global variable :c:data:`PyStructSequence_UnnamedField` is now a +constant and refers to a constant string. + +.. + +.. bpo: 38540 +.. date: 2019-10-21-09-24-03 +.. nonce: 314N_T +.. section: C API + +Fixed possible leak in :c:func:`PyArg_Parse` and similar functions for +format units ``"es#"`` and ``"et#"`` when the macro +:c:macro:`PY_SSIZE_T_CLEAN` is not defined. + +.. + +.. bpo: 38395 +.. date: 2019-10-08-01-23-24 +.. nonce: MJ6Ey9 +.. section: C API + +Fix a crash in :class:`weakref.proxy` objects due to incorrect lifetime +management when calling some associated methods that may delete the last +reference to object being referenced by the proxy. Patch by Pablo Galindo. + +.. + +.. bpo: 36389 +.. date: 2019-10-07-17-15-09 +.. nonce: hFX_jD +.. section: C API + +The ``_PyObject_CheckConsistency()`` function is now also available in +release mode. For example, it can be used to debug a crash in the +``visit_decref()`` function of the GC. + +.. + +.. bpo: 38266 +.. date: 2019-10-03-12-53-53 +.. nonce: 0FIC1q +.. section: C API + +Revert the removal of PyThreadState_DeleteCurrent() with documentation. + +.. + +.. bpo: 38303 +.. date: 2019-09-30-16-53-30 +.. nonce: YoIs0M +.. section: C API + +Update audioop extension module to use the stable ABI (PEP-384). Patch by +Tyler Kieft. + +.. + +.. bpo: 38234 +.. date: 2019-09-24-17-09-48 +.. nonce: d0bhEA +.. section: C API + +:c:func:`Py_SetPath` now sets :data:`sys.executable` to the program full +path (:c:func:`Py_GetProgramFullPath`) rather than to the program name +(:c:func:`Py_GetProgramName`). + +.. + +.. bpo: 38234 +.. date: 2019-09-20-17-22-41 +.. nonce: ZbquVK +.. section: C API + +Python ignored arguments passed to :c:func:`Py_SetPath`, +:c:func:`Py_SetPythonHome` and :c:func:`Py_SetProgramName`: fix Python +initialization to use specified arguments. + +.. + +.. bpo: 38205 +.. date: 2019-09-19-18-26-29 +.. nonce: Db1OJL +.. section: C API + +The :c:func:`Py_UNREACHABLE` macro now calls :c:func:`Py_FatalError`. + +.. + +.. bpo: 38140 +.. date: 2019-09-13-01-24-47 +.. nonce: y59qaO +.. section: C API + +Make dict and weakref offsets opaque for C heap types by passing the offsets +through PyMemberDef + +.. + +.. bpo: 15088 +.. date: 2019-09-05-14-17-21 +.. nonce: plt8Em +.. section: C API + +The C function ``PyGen_NeedsFinalizing`` has been removed. It was not +documented, tested or used anywhere within CPython after the implementation +of :pep:`442`. Patch by Joannah Nanjekye. (Patch by Joannah Nanjekye) + +.. + +.. bpo: 36763 +.. date: 2019-08-23-18-45-11 +.. nonce: q3Kh8Z +.. section: C API + +Options added by ``PySys_AddXOption()`` are now handled the same way than +``PyConfig.xoptions`` and command line ``-X`` options. + +.. + +.. bpo: 37926 +.. date: 2019-08-23-11-35-55 +.. nonce: hnI5IQ +.. section: C API + +Fix a crash in ``PySys_SetArgvEx(0, NULL, 0)``. + +.. + +.. bpo: 37879 +.. date: 2019-08-17-13-50-21 +.. nonce: CZeUem +.. section: C API + +Fix subtype_dealloc to suppress the type decref when the base type is a C +heap type + +.. + +.. bpo: 37645 +.. date: 2019-07-21-21-08-47 +.. nonce: 4DcUaI +.. section: C API + +Add :c:func:`_PyObject_FunctionStr` to get a user-friendly string +representation of a function-like object. Patch by Jeroen Demeyer. + +.. + +.. bpo: 29548 +.. date: 2019-07-17-09-50-50 +.. nonce: 5wIptQ +.. section: C API + +The functions ``PyEval_CallObject``, ``PyEval_CallFunction``, +``PyEval_CallMethod`` and ``PyEval_CallObjectWithKeywords`` are deprecated. +Use :c:func:`PyObject_Call` and its variants instead. + +.. + +.. bpo: 37151 +.. date: 2019-07-16-11-02-00 +.. nonce: YKfuNA +.. section: C API + +``PyCFunction_Call`` is now a deprecated alias of :c:func:`PyObject_Call`. + +.. + +.. bpo: 37540 +.. date: 2019-07-10-12-27-28 +.. nonce: E8Z773 +.. section: C API + +The vectorcall protocol now requires that the caller passes only strings as +keyword names. + +.. + +.. bpo: 37207 +.. date: 2019-07-07-10-37-07 +.. nonce: SlVNky +.. section: C API + +The vectorcall protocol is now enabled for ``type`` objects: set +``tp_vectorcall`` to a vectorcall function to be used instead of ``tp_new`` +and ``tp_init`` when calling the class itself. + +.. + +.. bpo: 21120 +.. date: 2019-07-06-23-56-47 +.. nonce: lXHqlT +.. section: C API + +Exclude Python-ast.h, ast.h and asdl.h from the limited API. + +.. + +.. bpo: 37483 +.. date: 2019-07-02-15-42-37 +.. nonce: vftT4f +.. section: C API + +Add new function ``_PyObject_CallOneArg`` for calling an object with one +positional argument. + +.. + +.. bpo: 36763 +.. date: 2019-06-28-15-49-16 +.. nonce: zrmgki +.. section: C API + +Add :func:`PyConfig_SetWideStringList` function. + +.. + +.. bpo: 37337 +.. date: 2019-06-19-12-06-31 +.. nonce: gXIGyU +.. section: C API + +Add fast functions for calling methods: +:c:func:`_PyObject_VectorcallMethod`, :c:func:`_PyObject_CallMethodNoArgs` +and :c:func:`_PyObject_CallMethodOneArg`. + +.. + +.. bpo: 28805 +.. date: 2019-06-14-14-03-51 +.. nonce: qZC0N_ +.. section: C API + +The :const:`METH_FASTCALL` calling convention has been documented. + +.. + +.. bpo: 37221 +.. date: 2019-06-11-02-50-38 +.. nonce: 4tClQT +.. section: C API + +The new function :c:func:`PyCode_NewWithPosOnlyArgs` allows to create code +objects like :c:func:`PyCode_New`, but with an extra *posonlyargcount* +parameter for indicating the number of positonal-only arguments. + +.. + +.. bpo: 37215 +.. date: 2019-06-10-15-32-34 +.. nonce: yzoNyU +.. section: C API + +Fix dtrace issue introduce by bpo-36842 + +.. + +.. bpo: 37194 +.. date: 2019-06-07-14-03-52 +.. nonce: uck7MD +.. section: C API + +Add a new public :c:func:`PyObject_CallNoArgs` function to the C API: call a +callable Python object without any arguments. It is the most efficient way +to call a callback without any argument. On x86-64, for example, +``PyObject_CallFunctionObjArgs(func, NULL)`` allocates 960 bytes on the +stack per call, whereas ``PyObject_CallNoArgs(func)`` only allocates 624 +bytes per call. + +.. + +.. bpo: 37170 +.. date: 2019-06-06-08-47-04 +.. nonce: hO_fpM +.. section: C API + +Fix the cast on error in :c:func:`PyLong_AsUnsignedLongLongMask()`. + +.. + +.. bpo: 35381 +.. date: 2019-01-18-17-05-26 +.. nonce: 9CbeW3 +.. section: C API + +Convert posixmodule.c statically allocated types ``DirEntryType`` and +``ScandirIteratorType`` to heap-allocated types. + +.. + +.. bpo: 34331 +.. date: 2018-08-04-00-59-44 +.. nonce: iaUkmU +.. section: C API + +Use singular/plural noun in error message when instantiating an abstract +class with non-overriden abstract method(s). |