.. bpo: 32176
.. date: 2017-12-02-21-37-22
.. nonce: Wt25-N
.. release date: 2017-12-05
.. section: Core and Builtins

co_flags.CO_NOFREE is now always set correctly by the code object
constructor based on freevars and cellvars, rather than needing to be set
correctly by the caller. This ensures it will be cleared automatically when
additional cell references are injected into a modified code object and
function.

..

.. bpo: 31949
.. date: 2017-11-05-16-11-07
.. nonce: 2yNC_z
.. section: Core and Builtins

Fixed several issues in printing tracebacks (PyTraceBack_Print()).
Setting sys.tracebacklimit to 0 or less now suppresses printing tracebacks.
Setting sys.tracebacklimit to None now causes using the default limit.
Setting sys.tracebacklimit to an integer larger than LONG_MAX now means using
the limit LONG_MAX rather than the default limit.
Fixed integer overflows in the case of more than 2**31 traceback items on
Windows.
Fixed output errors handling.

..

.. bpo: 30696
.. date: 2017-10-28-22-06-03
.. nonce: lhC3HE
.. section: Core and Builtins

Fix the interactive interpreter looping endlessly when no memory.

..

.. bpo: 20047
.. date: 2017-10-28-19-11-05
.. nonce: GuNAto
.. section: Core and Builtins

Bytearray methods partition() and rpartition() now accept only bytes-like
objects as separator, as documented.  In particular they now raise TypeError
rather of returning a bogus result when an integer is passed as a separator.

..

.. bpo: 31852
.. date: 2017-10-27-19-18-44
.. nonce: P_4cVr
.. section: Core and Builtins

Fix a segmentation fault caused by a combination of the async soft keyword
and continuation lines.

..

.. bpo: 21720
.. date: 2017-10-25-15-51-37
.. nonce: BwIKLP
.. section: Core and Builtins

BytesWarning no longer emitted when the *fromlist* argument of
``__import__()`` or the ``__all__`` attribute of the module contain bytes
instances.

..

.. bpo: 31825
.. date: 2017-10-20-14-07-46
.. nonce: gJvmGW
.. section: Core and Builtins

Fixed OverflowError in the 'unicode-escape' codec and in
codecs.escape_decode() when decode an escaped non-ascii byte.

..

.. bpo: 28603
.. date: 2017-10-17-13-29-19
.. nonce: _-oia3
.. section: Core and Builtins

Print the full context/cause chain of exceptions on interpreter exit, even
if an exception in the chain is unhashable or compares equal to later ones.
Patch by Zane Bitter.

..

.. bpo: 31786
.. date: 2017-10-15-23-44-57
.. nonce: XwdEP4
.. section: Core and Builtins

Fix timeout rounding in the select module to round correctly negative
timeouts between -1.0 and 0.0. The functions now block waiting for events as
expected. Previously, the call was incorrectly non-blocking. Patch by Pablo
Galindo.

..

.. bpo: 31642
.. date: 2017-10-08-10-00-55
.. nonce: 1IKqgs
.. section: Core and Builtins

Restored blocking "from package import module" by setting
sys.modules["package.module"] to None.

..

.. bpo: 31626
.. date: 2017-10-01-15-48-03
.. nonce: reLPxY
.. section: Core and Builtins

Fixed a bug in debug memory allocator.  There was a write to freed memory
after shrinking a memory block.

..

.. bpo: 31619
.. date: 2017-09-29-20-32-24
.. nonce: 6gQ1kv
.. section: Core and Builtins

Fixed a ValueError when convert a string with large number of underscores to
integer with binary base.

..

.. bpo: 31592
.. date: 2017-09-26-16-05-04
.. nonce: IFBZj9
.. section: Core and Builtins

Fixed an assertion failure in Python parser in case of a bad
`unicodedata.normalize()`. Patch by Oren Milman.

..

.. bpo: 31588
.. date: 2017-09-26-13-03-16
.. nonce: wT9Iy7
.. section: Core and Builtins

Raise a `TypeError` with a helpful error message when class creation fails
due to a metaclass with a bad ``__prepare__()`` method. Patch by Oren
Milman.

..

.. bpo: 31566
.. date: 2017-09-24-09-57-04
.. nonce: OxwINs
.. section: Core and Builtins

Fix an assertion failure in `_warnings.warn()` in case of a bad ``__name__``
global. Patch by Oren Milman.

..

.. bpo: 31505
.. date: 2017-09-18-12-07-39
.. nonce: VomaFa
.. section: Core and Builtins

Fix an assertion failure in `json`, in case `_json.make_encoder()` received
a bad `encoder()` argument. Patch by Oren Milman.

..

.. bpo: 31492
.. date: 2017-09-16-22-49-16
.. nonce: RtyteL
.. section: Core and Builtins

Fix assertion failures in case of failing to import from a module with a bad
``__name__`` attribute, and in case of failing to access an attribute of
such a module. Patch by Oren Milman.

..

.. bpo: 31490
.. date: 2017-09-16-13-32-35
.. nonce: r7m2sj
.. section: Core and Builtins

Fix an assertion failure in `ctypes` class definition, in case the class has
an attribute whose name is specified in ``_anonymous_`` but not in
``_fields_``. Patch by Oren Milman.

..

.. bpo: 31478
.. date: 2017-09-15-09-13-07
.. nonce: o06iKD
.. section: Core and Builtins

Fix an assertion failure in `_random.Random.seed()` in case the argument has
a bad ``__abs__()`` method. Patch by Oren Milman.

..

.. bpo: 31315
.. date: 2017-09-01-00-40-58
.. nonce: ZX20bl
.. section: Core and Builtins

Fix an assertion failure in imp.create_dynamic(), when spec.name is not a
string. Patch by Oren Milman.

..

.. bpo: 31311
.. date: 2017-08-31-17-52-56
.. nonce: bNE2l-
.. section: Core and Builtins

Fix a crash in the ``__setstate__()`` method of `ctypes._CData`, in case of
a bad ``__dict__``. Patch by Oren Milman.

..

.. bpo: 31293
.. date: 2017-08-28-17-51-42
.. nonce: eMYZXj
.. section: Core and Builtins

Fix crashes in true division and multiplication of a timedelta object by a
float with a bad as_integer_ratio() method. Patch by Oren Milman.

..

.. bpo: 31285
.. date: 2017-08-27-21-18-30
.. nonce: 7lzaKV
.. section: Core and Builtins

Fix an assertion failure in `warnings.warn_explicit`, when the return value
of the received loader's get_source() has a bad splitlines() method. Patch
by Oren Milman.

..

.. bpo: 30817
.. date: 2017-07-01-15-11-13
.. nonce: j7ZvN_
.. section: Core and Builtins

`PyErr_PrintEx()` clears now the ignored exception that may be raised by
`_PySys_SetObjectId()`, for example when no memory.

..

.. bpo: 28556
.. date: 2017-12-05-02-03-07
.. nonce: 9Z_PsJ
.. section: Library

Two minor fixes for ``typing`` module: allow shallow copying instances of
generic classes, improve interaction of ``__init_subclass__`` with generics.
Original PRs by Ivan Levkivskyi.

..

.. bpo: 27240
.. date: 2017-12-02-16-06-00
.. nonce: Kji34M
.. section: Library

The header folding algorithm for the new email policies has been rewritten,
which also fixes bpo-30788, bpo-31831, and bpo-32182.  In particular,
RFC2231 folding is now done correctly.

..

.. bpo: 32186
.. date: 2017-11-30-20-38-16
.. nonce: O42bVe
.. section: Library

io.FileIO.readall() and io.FileIO.read() now release the GIL when getting
the file size. Fixed hang of all threads with inaccessible NFS server. Patch
by Nir Soffer.

..

.. bpo: 12239
.. date: 2017-11-24-14-07-55
.. nonce: Nj3A0x
.. section: Library

Make :meth:`msilib.SummaryInformation.GetProperty` return ``None`` when the
value of property is ``VT_EMPTY``.  Initial patch by Mark Mc Mahon.

..

.. bpo: 31325
.. date: 2017-11-23-22-12-11
.. nonce: 8jAUxN
.. section: Library

Fix wrong usage of :func:`collections.namedtuple` in the
:meth:`RobotFileParser.parse() <urllib.robotparser.RobotFileParser.parse>`
method.
Initial patch by Robin Wellner.

..

.. bpo: 12382
.. date: 2017-11-23-21-47-36
.. nonce: xWT9k0
.. section: Library

:func:`msilib.OpenDatabase` now raises a better exception message when it
couldn't open or create an MSI file.  Initial patch by William Tisäter.

..

.. bpo: 32110
.. date: 2017-11-22-09-44-15
.. nonce: VJa9bo
.. section: Library

``codecs.StreamReader.read(n)`` now returns not more than *n*
characters/bytes for non-negative *n*. This makes it compatible with
``read()`` methods of other file-like objects.

..

.. bpo: 32072
.. date: 2017-11-18-21-13-52
.. nonce: nwDV8L
.. section: Library

Fixed issues with binary plists:
Fixed saving bytearrays.
Identical objects will be saved only once.
Equal references will be load as identical objects.
Added support for saving and loading recursive data structures.

..

.. bpo: 32034
.. date: 2017-11-15-13-44-28
.. nonce: uHAOmu
.. section: Library

Make asyncio.IncompleteReadError and LimitOverrunError pickleable.

..

.. bpo: 32015
.. date: 2017-11-13-17-48-33
.. nonce: 4nqRTD
.. section: Library

Fixed the looping of asyncio in the case of reconnection the socket during
waiting async read/write from/to the socket.

..

.. bpo: 32011
.. date: 2017-11-12-20-47-59
.. nonce: NzVDdZ
.. section: Library

Restored support of loading marshal files with the TYPE_INT64 code. These
files can be produced in Python 2.7.

..

.. bpo: 31970
.. date: 2017-11-07-14-20-09
.. nonce: x4EN_9
.. section: Library

Reduce performance overhead of asyncio debug mode.

..

.. bpo: 9678
.. date: 2017-11-03-22-05-47
.. nonce: oD51q6
.. section: Library

Fixed determining the MAC address in the uuid module:
Using ifconfig on NetBSD and OpenBSD.
Using arp on Linux, FreeBSD, NetBSD and OpenBSD.
Based on patch by Takayuki Shimizukawa.

..

.. bpo: 30057
.. date: 2017-11-03-19-11-43
.. nonce: NCaijI
.. section: Library

Fix potential missed signal in signal.signal().

..

.. bpo: 31933
.. date: 2017-11-03-08-36-03
.. nonce: UrtoMP
.. section: Library

Fix Blake2 params leaf_size and node_offset on big endian platforms. Patch
by Jack O'Connor.

..

.. bpo: 31927
.. date: 2017-11-02-18-26-40
.. nonce: 40K6kp
.. section: Library

Fixed compilation of the socket module on NetBSD 8.  Fixed assertion failure
or reading arbitrary data when parse a AF_BLUETOOTH address on NetBSD and
DragonFly BSD.

..

.. bpo: 27666
.. date: 2017-11-01-18-13-42
.. nonce: j2zRnF
.. section: Library

Fixed stack corruption in curses.box() and curses.ungetmouse() when the size
of types chtype or mmask_t is less than the size of C long.  curses.box()
now accepts characters as arguments.  Based on patch by Steve Fink.

..

.. bpo: 31897
.. date: 2017-10-30-11-04-56
.. nonce: yjwdEb
.. section: Library

plistlib now catches more errors when read binary plists and raises
InvalidFileException instead of unexpected exceptions.

..

.. bpo: 25720
.. date: 2017-10-29-17-52-40
.. nonce: vSvb5h
.. section: Library

Fix the method for checking pad state of curses WINDOW. Patch by Masayuki
Yamamoto.

..

.. bpo: 31893
.. date: 2017-10-29-13-51-01
.. nonce: 8LZKEz
.. section: Library

Fixed the layout of the kqueue_event structure on OpenBSD and NetBSD. Fixed
the comparison of the kqueue_event objects.

..

.. bpo: 31891
.. date: 2017-10-29-11-23-24
.. nonce: 9kAPha
.. section: Library

Fixed building the curses module on NetBSD.

..

.. bpo: 28416
.. date: 2017-10-23-12-05-33
.. nonce: Ldnw8X
.. section: Library

Instances of pickle.Pickler subclass with the persistent_id() method and
pickle.Unpickler subclass with the persistent_load() method no longer create
reference cycles.

..

.. bpo: 28326
.. date: 2017-10-22-11-06-02
.. nonce: rxh7L4
.. section: Library

Fix multiprocessing.Process when stdout and/or stderr is closed or None.

..

.. bpo: 31457
.. date: 2017-10-18-19-05-17
.. nonce: KlE6r8
.. section: Library

If nested log adapters are used, the inner ``process()`` methods are no
longer omitted.

..

.. bpo: 31457
.. date: 2017-10-18-16-48-09
.. nonce: _ovmzp
.. section: Library

The ``manager`` property on LoggerAdapter objects is now properly settable.

..

.. bpo: 31806
.. date: 2017-10-17-23-27-03
.. nonce: TzphdL
.. section: Library

Fix timeout rounding in time.sleep(), threading.Lock.acquire() and
socket.socket.settimeout() to round correctly negative timeouts between -1.0
and 0.0. The functions now block waiting for events as expected. Previously,
the call was incorrectly non-blocking. Patch by Pablo Galindo.

..

.. bpo: 28603
.. date: 2017-10-17-12-29-18
.. nonce: tGuX2C
.. section: Library

traceback: Fix a TypeError that occurred during printing of exception
tracebacks when either the current exception or an exception in its
context/cause chain is unhashable. Patch by Zane Bitter.

..

.. bpo: 30058
.. date: 2017-10-12-19-00-53
.. nonce: cENtry
.. section: Library

Fixed buffer overflow in select.kqueue.control().

..

.. bpo: 31770
.. date: 2017-10-12-18-45-38
.. nonce: GV3MPx
.. section: Library

Prevent a crash when calling the ``__init__()`` method of a
``sqlite3.Cursor`` object more than once. Patch by Oren Milman.

..

.. bpo: 31672
.. date: 2017-10-12-02-47-16
.. nonce: DaOkVd
.. section: Library

``idpattern`` in ``string.Template`` matched some non-ASCII characters. Now
it uses ``-i`` regular expression local flag to avoid non-ASCII characters.

..

.. bpo: 31764
.. date: 2017-10-11-22-18-04
.. nonce: EMyIkK
.. section: Library

Prevent a crash in ``sqlite3.Cursor.close()`` in case the ``Cursor`` object
is uninitialized. Patch by Oren Milman.

..

.. bpo: 31752
.. date: 2017-10-11-00-45-01
.. nonce: DhWevN
.. section: Library

Fix possible crash in timedelta constructor called with custom integers.

..

.. bpo: 31701
.. date: 2017-10-09-17-42-30
.. nonce: NRrVel
.. section: Library

On Windows, faulthandler.enable() now ignores MSC and COM exceptions.

..

.. bpo: 31728
.. date: 2017-10-08-23-28-30
.. nonce: XrVMME
.. section: Library

Prevent crashes in `_elementtree` due to unsafe cleanup of `Element.text`
and `Element.tail`. Patch by Oren Milman.

..

.. bpo: 31620
.. date: 2017-10-06-04-35-31
.. nonce: gksLA1
.. section: Library

an empty asyncio.Queue now doesn't leak memory when queue.get pollers
timeout

..

.. bpo: 31632
.. date: 2017-10-04-11-37-14
.. nonce: LiOC3C
.. section: Library

Fix method set_protocol() of class _SSLProtocolTransport in asyncio module.
This method was previously modifying a wrong reference to the protocol.

..

.. bpo: 31675
.. date: 2017-10-03-15-06-24
.. nonce: Nh7jJ3
.. section: Library

Fixed memory leaks in Tkinter's methods splitlist() and split() when pass a
string larger than 2 GiB.

..

.. bpo: 31673
.. date: 2017-10-03-14-37-46
.. nonce: RFCrka
.. section: Library

Fixed typo in the name of Tkinter's method adderrorinfo().

..

.. bpo: 30806
.. date: 2017-09-29
.. nonce: lP5GrH
.. section: Library

Fix the string representation of a netrc object.

..

.. bpo: 15037
.. date: 2017-09-29-19-19-36
.. nonce: ykimLK
.. section: Library

Added a workaround for getkey() in curses for ncurses 5.7 and earlier.

..

.. bpo: 25351
.. date: 2017-09-28-23-10-51
.. nonce: 2JmFpF
.. section: Library

Avoid venv activate failures with undefined variables

..

.. bpo: 25532
.. date: 2017-09-27-08-11-38
.. nonce: ey4Yez
.. section: Library

inspect.unwrap() will now only try to unwrap an object
sys.getrecursionlimit() times, to protect against objects which create a new
object on every attribute access.

..

.. bpo: 30347
.. date: 2017-09-25-14-04-30
.. nonce: B4--_D
.. section: Library

Stop crashes when concurrently iterate over itertools.groupby() iterators.

..

.. bpo: 31516
.. date: 2017-09-20-18-43-01
.. nonce: 23Yuq3
.. section: Library

``threading.current_thread()`` should not return a dummy thread at shutdown.

..

.. bpo: 31351
.. date: 2017-09-17-15-24-25
.. nonce: yQdKv-
.. section: Library

python -m ensurepip now exits with non-zero exit code if pip bootstrapping
has failed.

..

.. bpo: 31482
.. date: 2017-09-16-01-53-11
.. nonce: 39s5dS
.. section: Library

``random.seed()`` now works with bytes in version=1

..

.. bpo: 31334
.. date: 2017-09-04-00-22-31
.. nonce: 9WYRfi
.. section: Library

Fix ``poll.poll([timeout])`` in the ``select`` module for arbitrary negative
timeouts on all OSes where it can only be a non-negative integer or -1.
Patch by Riccardo Coccioli.

..

.. bpo: 31310
.. date: 2017-08-30-18-23-54
.. nonce: 7D1UNt
.. section: Library

multiprocessing's semaphore tracker should be launched again if crashed.

..

.. bpo: 31308
.. date: 2017-08-30-17-59-36
.. nonce: KbexyC
.. section: Library

Make multiprocessing's forkserver process immune to Ctrl-C and other user
interruptions. If it crashes, restart it when necessary.

..

.. bpo: 32105
.. date: 2017-11-21-10-54-16
.. nonce: 91mhWm
.. section: Documentation

Added asyncio.BaseEventLoop.connect_accepted_socket versionadded marker.

..

.. bpo: 31537
.. date: 2017-10-08-23-02-14
.. nonce: SiFNM8
.. section: Documentation

Fix incorrect usage of ``get_history_length`` in readline documentation
example code. Patch by Brad Smith.

..

.. bpo: 30085
.. date: 2017-09-14-18-44-50
.. nonce: 0J9w-u
.. section: Documentation

The operator functions without double underscores are preferred for clarity.
The one with underscores are only kept for back-compatibility.

..

.. bpo: 31380
.. date: 2017-12-04-23-19-16
.. nonce: VlMmHW
.. section: Tests

Skip test_httpservers test_undecodable_file on macOS: fails on APFS.

..

.. bpo: 31705
.. date: 2017-11-30-12-27-10
.. nonce: yULW7O
.. section: Tests

Skip test_socket.test_sha256() on Linux kernel older than 4.5. The test
fails with ENOKEY on kernel 3.10 (on ppc64le). A fix was merged into the
kernel 4.5.

..

.. bpo: 31174
.. date: 2017-10-24-11-36-10
.. nonce: xCvXcr
.. section: Tests

Fix test_tools.test_unparse: DirectoryTestCase now stores the names sample
to always test the same files. It prevents false alarms when hunting
reference leaks.

..

.. bpo: 30695
.. date: 2017-06-30-11-20-20
.. nonce: lo7FQX
.. section: Tests

Add the `set_nomemory(start, stop)` and `remove_mem_hooks()` functions to
the _testcapi module.

..

.. bpo: 32059
.. date: 2017-11-18-11-19-28
.. nonce: a0Hxgp
.. section: Build

``detect_modules()`` in ``setup.py`` now also searches the sysroot paths
when cross-compiling.

..

.. bpo: 31957
.. date: 2017-11-06-11-53-39
.. nonce: S_1jFK
.. section: Build

Fixes Windows SDK version detection when building for Windows.

..

.. bpo: 31609
.. date: 2017-11-04-15-35-08
.. nonce: k7_nBR
.. section: Build

Fixes quotes in PCbuild/clean.bat

..

.. bpo: 31934
.. date: 2017-11-03-15-17-50
.. nonce: 8bUlpv
.. section: Build

Abort the build when building out of a not clean source tree.

..

.. bpo: 31926
.. date: 2017-11-03-10-07-14
.. nonce: 57wE98
.. section: Build

Fixed Argument Clinic sometimes causing compilation errors when there was
more than one function and/or method in a .c file with the same name.

..

.. bpo: 28791
.. date: 2017-11-02-20-30-57
.. nonce: VaE3o8
.. section: Build

Update Windows builds to use SQLite 3.21.0.

..

.. bpo: 28791
.. date: 2017-11-02-20-13-46
.. nonce: STt3jL
.. section: Build

Update OS X installer to use SQLite 3.21.0.

..

.. bpo: 22140
.. date: 2017-09-26-22-39-58
.. nonce: ZRf7Wn
.. section: Build

Prevent double substitution of prefix in python-config.sh.

..

.. bpo: 31536
.. date: 2017-09-20-21-32-21
.. nonce: KUDjno
.. section: Build

Avoid wholesale rebuild after `make regen-all` if nothing changed.

..

.. bpo: 1102
.. date: 2017-11-19-09-46-27
.. nonce: NY-g1F
.. section: Windows

Return ``None`` when ``View.Fetch()`` returns ``ERROR_NO_MORE_ITEMS``
instead of raising ``MSIError``.
Initial patch by Anthony Tuininga.

..

.. bpo: 31944
.. date: 2017-11-04-15-29-47
.. nonce: 0Bx8tZ
.. section: Windows

Fixes Modify button in Apps and Features dialog.

..

.. bpo: 31392
.. date: 2017-12-04-21-57-43
.. nonce: f8huBC
.. section: macOS

Update macOS installer to use OpenSSL 1.0.2m

..

.. bpo: 32207
.. date: 2017-12-04-15-04-43
.. nonce: IzyAJo
.. section: IDLE

Improve tk event exception tracebacks in IDLE. When tk event handling is
driven by IDLE's run loop, a confusing and distracting queue.EMPTY traceback
context is no longer added to tk event exception tracebacks.  The traceback
is now the same as when event handling is driven by user code.  Patch based
on a suggestion by Serhiy Storchaka.

..

.. bpo: 32164
.. date: 2017-11-28-21-47-15
.. nonce: 2T2Na8
.. section: IDLE

Delete unused file idlelib/tabbedpages.py. Use of TabbedPageSet in
configdialog was replaced by ttk.Notebook.

..

.. bpo: 32100
.. date: 2017-11-21-08-26-08
.. nonce: P43qx2
.. section: IDLE

IDLE: Fix old and new bugs in pathbrowser; improve tests. Patch mostly by
Cheryl Sabella.

..

.. bpo: 31858
.. date: 2017-10-26-20-20-19
.. nonce: VuSA_e
.. section: IDLE

IDLE -- Restrict shell prompt manipulation to the shell. Editor and output
windows only see an empty last prompt line.  This simplifies the code and
fixes a minor bug when newline is inserted. Sys.ps1, if present, is read on
Shell start-up, but is not set or changed.

..

.. bpo: 31860
.. date: 2017-10-24-16-21-50
.. nonce: gECuWx
.. section: IDLE

The font sample in the IDLE configuration dialog is now editable. Changes
persist while IDLE remains open

..

.. bpo: 31836
.. date: 2017-10-21-15-41-53
.. nonce: fheLME
.. section: IDLE

Test_code_module now passes if run after test_idle, which sets ps1.
The code module uses sys.ps1 if present or sets it to '>>> ' if not.
Test_code_module now properly tests both behaviors.  Ditto for ps2.

..

.. bpo: 28603
.. date: 2017-10-17-13-26-13
.. nonce: TMEQfp
.. section: IDLE

Fix a TypeError that caused a shell restart when printing a traceback that
includes an exception that is unhashable. Patch by Zane Bitter.

..

.. bpo: 13802
.. date: 2017-10-12-00-51-29
.. nonce: VwjZRD
.. section: IDLE

Use non-Latin characters in the IDLE's Font settings sample. Even if one
selects a font that defines a limited subset of the unicode Basic
Multilingual Plane, tcl/tk will use other fonts that define a character. The
expanded example give users of non-Latin characters a better idea of what
they might see in IDLE's shell and editors. To make room for the expanded
sample, frames on the Font tab are re-arranged. The Font/Tabs help explains
a bit about the additions.

..

.. bpo: 31460
.. date: 2017-09-30-19-03-26
.. nonce: HpveI6
.. section: IDLE

Simplify the API of IDLE's Module Browser.
Passing a widget instead of an flist with a root widget opens the option of
creating a browser frame that is only part of a window.  Passing a full file
name instead of pieces assumed to come from a .py file opens the possibility
of browsing python files that do not end in .py.

..

.. bpo: 31649
.. date: 2017-09-30-13-59-18
.. nonce: LxN4Vb
.. section: IDLE

IDLE - Make _htest, _utest parameters keyword only.

..

.. bpo: 31559
.. date: 2017-09-23-12-52-24
.. nonce: ydckYX
.. section: IDLE

Remove test order dependence in idle_test.test_browser.

..

.. bpo: 31459
.. date: 2017-09-22-20-26-23
.. nonce: L0pnH9
.. section: IDLE

Rename IDLE's module browser from Class Browser to Module Browser. The
original module-level class and method browser became a module browser, with
the addition of module-level functions, years ago. Nested classes and
functions were added yesterday.  For back-compatibility, the virtual event
<<open-class-browser>>, which appears on the Keys tab of the Settings
dialog, is not changed. Patch by Cheryl Sabella.

..

.. bpo: 31500
.. date: 2017-09-18-10-43-03
.. nonce: Y_YDxA
.. section: IDLE

Default fonts now are scaled on HiDPI displays.

..

.. bpo: 1612262
.. date: 2017-08-14-15-13-50
.. nonce: -x_Oyq
.. section: IDLE

IDLE module browser now shows nested classes and functions. Original patches
for code and tests by Guilherme Polo and Cheryl Sabella, respectively.

..

.. bpo: 30722
.. date: 2017-10-23-19-45-52
.. nonce: ioRlAu
.. section: Tools/Demos

Make redemo work with Python 3.6 and newer versions.
Also, remove the ``LOCALE`` option since it doesn't work with string
patterns in Python 3.
Patch by Christoph Sarnowski.

..

.. bpo: 20891
.. date: 2017-11-30-18-13-45
.. nonce: wBnMdF
.. section: C API

Fix PyGILState_Ensure(). When PyGILState_Ensure() is called in a non-Python
thread before PyEval_InitThreads(), only call PyEval_InitThreads() after
calling PyThreadState_New() to fix a crash.

..

.. bpo: 31532
.. date: 2017-09-20-21-59-52
.. nonce: s9Cw9_
.. section: C API

Fix memory corruption due to allocator mix in getpath.c between Py_GetPath()
and Py_SetPath()

..

.. bpo: 30697
.. date: 2017-06-30-11-58-01
.. nonce: Q3T_8n
.. section: C API

The `PyExc_RecursionErrorInst` singleton is removed and
`PyErr_NormalizeException()` does not use it anymore. This singleton is
persistent and its members being never cleared may cause a segfault during
finalization of the interpreter. See also issue #22898.
