.. 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: 10544
.. date: 2017-11-27-08-37-34
.. nonce: 07nioT
.. section: Core and Builtins

Yield expressions are now deprecated in comprehensions and generator
expressions. They are still permitted in the definition of the outermost
iterable, as that is evaluated directly in the enclosing scope.

..

.. bpo: 32137
.. date: 2017-11-26-14-36-30
.. nonce: Stj5nL
.. section: Core and Builtins

The repr of deeply nested dict now raises a RecursionError instead of
crashing due to a stack overflow.

..

.. bpo: 32096
.. date: 2017-11-24-01-13-58
.. nonce: CQTHXJ
.. section: Core and Builtins

Revert memory allocator changes in the C API: move structures back from
_PyRuntime to Objects/obmalloc.c. The memory allocators are once again
initialized statically, and so PyMem_RawMalloc() and Py_DecodeLocale() can
be called before _PyRuntime_Initialize().

..

.. bpo: 32043
.. date: 2017-11-16-03-44-08
.. nonce: AAzwpZ
.. section: Core and Builtins

Add a new "developer mode": new "-X dev" command line option to enable debug
checks at runtime.

..

.. bpo: 32023
.. date: 2017-11-15-10-49-35
.. nonce: XnCGT5
.. section: Core and Builtins

SyntaxError is now correctly raised when a generator expression without
parenthesis is used instead of an inheritance list in a class definition.
The duplication of the parentheses can be omitted only on calls.

..

.. bpo: 32012
.. date: 2017-11-13-00-37-11
.. nonce: Kprjqe
.. section: Core and Builtins

SyntaxError is now correctly raised when a generator expression without
parenthesis is passed as an argument, but followed by a trailing comma. A
generator expression always needs to be directly inside a set of parentheses
and cannot have a comma on either side.

..

.. bpo: 28180
.. date: 2017-11-12-11-44-22
.. nonce: HQX000
.. section: Core and Builtins

A new internal ``_Py_SetLocaleFromEnv(category)`` helper function has been
added in order to improve the consistency of behaviour across different
``libc`` implementations (e.g. Android doesn't support setting the locale
from the environment by default).

..

.. 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: 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: 31845
.. date: 2017-10-24-21-27-32
.. nonce: 8OS-k3
.. section: Core and Builtins

Environment variables are once more read correctly at interpreter startup.

..

.. bpo: 28936
.. date: 2017-10-23-23-39-26
.. nonce: C288Jh
.. section: Core and Builtins

Ensure that lexically first syntax error involving a parameter and
``global`` or ``nonlocal`` is detected first at a given scope. Patch by Ivan
Levkivskyi.

..

.. 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: 31618
.. date: 2017-10-18-19-41-12
.. nonce: liLDiS
.. section: Core and Builtins

The per-frame tracing logic added in 3.7a1 has been altered so that
``frame->f_lineno`` is updated before either ``"line"`` or ``"opcode"``
events are emitted. Previously, opcode events were emitted first, and
therefore would occasionally see stale line numbers on the frame. The
behavior of this feature has changed slightly as a result: when both
``f_trace_lines`` and ``f_trace_opcodes`` are enabled, line events now occur
first.

..

.. 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: 31781
.. date: 2017-10-13-20-01-47
.. nonce: cXE9SM
.. section: Core and Builtins

Prevent crashes when calling methods of an uninitialized
``zipimport.zipimporter`` object. Patch by Oren Milman.

..

.. bpo: 30399
.. date: 2017-10-12-22-21-01
.. nonce: 45f1gv
.. section: Core and Builtins

Standard repr() of BaseException with a single argument no longer contains
redundant trailing comma.

..

.. 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: 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: 32214
.. date: 2017-12-04-15-51-57
.. nonce: uozdNj
.. section: Library

PEP 557, Data Classes. Provides a decorator which adds boilerplate methods
to classes which use type annotations so specify fields.

..

.. 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: 32101
.. date: 2017-11-29-00-42-47
.. nonce: -axD5l
.. section: Library

Add :attr:`sys.flags.dev_mode` flag

..

.. bpo: 32154
.. date: 2017-11-28-15-27-10
.. nonce: kDox7L
.. section: Library

The ``asyncio.windows_utils.socketpair()`` function has been removed: use
directly :func:`socket.socketpair` which is available on all platforms since
Python 3.5 (before, it wasn't available on Windows).
``asyncio.windows_utils.socketpair()`` was just an alias to
``socket.socketpair`` on Python 3.5 and newer.

..

.. bpo: 32089
.. date: 2017-11-27-11-29-34
.. nonce: 6ydDYv
.. section: Library

warnings: In development (-X dev) and debug mode (pydebug build), use the
"default" action for ResourceWarning, rather than the "always" action, in
the default warnings filters.

..

.. bpo: 32107
.. date: 2017-11-26-18-48-17
.. nonce: h2ph2K
.. section: Library

``uuid.getnode()`` now preferentially returns universally administered MAC
addresses if available, over locally administered MAC addresses.  This makes
a better guarantee for global uniqueness of UUIDs returned from
``uuid.uuid1()``.  If only locally administered MAC addresses are available,
the first such one found is returned.

..

.. bpo: 23033
.. date: 2017-11-26-17-00-52
.. nonce: YGXRWT
.. section: Library

Wildcard is now supported in hostname when it is one and only character in
the left most segment of hostname in second argument of
:meth:`ssl.match_hostname`.  Patch by Mandeep Singh.

..

.. 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: 28334
.. date: 2017-11-24-11-50-41
.. nonce: 3gGGlt
.. section: Library

Use :func:`os.path.expanduser` to find the ``~/.netrc`` file in
:class:`netrc.netrc`.  If it does not exist, :exc:`FileNotFoundError` is
raised.  Patch by Dimitri Merejkowsky.

..

.. bpo: 32121
.. date: 2017-11-24-00-59-12
.. nonce: ePbmwC
.. section: Library

Made ``tracemalloc.Traceback`` behave more like the traceback module,
sorting the frames from oldest to most recent. ``Traceback.format()`` now
accepts negative *limit*, truncating the result to the ``abs(limit)`` oldest
frames. To get the old behaviour, one can use the new *most_recent_first*
argument to ``Traceback.format()``. (Patch by Jesse Bakker.)

..

.. 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: 19610
.. date: 2017-11-23-16-15-55
.. nonce: Dlca2P
.. section: Library

``setup()`` now warns about invalid types for some fields.
The ``distutils.dist.Distribution`` class now warns when ``classifiers``,
``keywords`` and ``platforms`` fields are not specified as a list or a
string.

..

.. bpo: 32071
.. date: 2017-11-22-19-52-17
.. nonce: 4WNhUH
.. section: Library

Added the ``-k`` command-line option to ``python -m unittest`` to run only
tests that match the given pattern(s).

..

.. bpo: 10049
.. date: 2017-11-22-17-21-01
.. nonce: ttsBqb
.. section: Library

Added *nullcontext* no-op context manager to contextlib. This provides a
simpler and faster alternative to ExitStack() when handling optional context
managers.

..

.. bpo: 28684
.. date: 2017-11-22-12-54-46
.. nonce: NLiDKZ
.. section: Library

The new test.support.skip_unless_bind_unix_socket() decorator is used here
to skip asyncio tests that fail because the platform lacks a functional
bind() function for unix domain sockets (as it is the case for non root
users on the recent Android versions that run now SELinux in enforcing
mode).

..

.. 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: 27535
.. date: 2017-11-21-16-05-35
.. nonce: JLhcNz
.. section: Library

The warnings module doesn't leak memory anymore in the hidden warnings
registry for the "ignore" action of warnings filters. warn_explicit()
function doesn't add the warning key to the registry anymore for the
"ignore" action.

..

.. bpo: 32088
.. date: 2017-11-20-15-28-31
.. nonce: mV-4Nu
.. section: Library

warnings:  When Python is build is debug mode (``Py_DEBUG``),
:exc:`DeprecationWarning`, :exc:`PendingDeprecationWarning` and
:exc:`ImportWarning` warnings are now displayed by default.

..

.. bpo: 1647489
.. date: 2017-11-20-01-29-46
.. nonce: -ZNNkh
.. section: Library

Fixed searching regular expression patterns that could match an empty
string. Non-empty string can now be correctly found after matching an empty
string.

..

.. bpo: 25054
.. date: 2017-11-20-01-01-01
.. nonce: rOlRV6
.. section: Library

Added support of splitting on a pattern that could match an empty string.

..

.. 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: 32069
.. date: 2017-11-18-17-09-01
.. nonce: S0wyy4
.. section: Library

Drop legacy SSL transport from asyncio, ssl.MemoryBIO is always used anyway.

..

.. bpo: 32066
.. date: 2017-11-17-18-28-53
.. nonce: OMQFLH
.. section: Library

asyncio: Support pathlib.Path in create_unix_connection; sock arg should be
optional

..

.. bpo: 32046
.. date: 2017-11-16-20-09-45
.. nonce: 9sGDtw
.. section: Library

Updates 2to3 to convert from operator.isCallable(obj) to callable(obj).
Patch by Donghee Na.

..

.. bpo: 32018
.. date: 2017-11-16-02-32-41
.. nonce: YMQ7Q2
.. section: Library

inspect.signature should follow :pep:`8`, if the parameter has an annotation
and a default value. Patch by Donghee Na.

..

.. bpo: 32025
.. date: 2017-11-15-20-03-45
.. nonce: lnIKYT
.. section: Library

Add time.thread_time() and time.thread_time_ns()

..

.. bpo: 32037
.. date: 2017-11-15-19-04-22
.. nonce: r8-5Nk
.. section: Library

Integers that fit in a signed 32-bit integer will be now pickled with
protocol 0 using the INT opcode.  This will decrease the size of a pickle,
speed up pickling and unpickling, and make these integers be unpickled as
int instances in Python 2.

..

.. 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: 28369
.. date: 2017-11-10-16-27-26
.. nonce: IS74nd
.. section: Library

Enhance add_reader/writer check that socket is not used by some transport.
Before, only cases when add_reader/writer were called with an int FD were
supported.  Now the check is implemented correctly for all file-like
objects.

..

.. bpo: 31976
.. date: 2017-11-09-21-36-32
.. nonce: EOA7qY
.. section: Library

Fix race condition when flushing a file is slow, which can cause a segfault
if closing the file from another thread.

..

.. bpo: 31985
.. date: 2017-11-08-16-51-52
.. nonce: dE_fOB
.. section: Library

Formally deprecated aifc.openfp, sunau.openfp, and wave.openfp. Since change
7bc817d5ba917528e8bd07ec461c635291e7b06a in 1993, openfp in each of the
three modules had been pointing to that module's open function as a matter
of backwards compatibility, though it had been both untested and
undocumented.

..

.. bpo: 21862
.. date: 2017-11-07-15-19-52
.. nonce: RwietE
.. section: Library

cProfile command line now accepts ``-m module_name`` as an alternative to
script path. Patch by Sanyam Khurana.

..

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

Reduce performance overhead of asyncio debug mode.

..

.. bpo: 31843
.. date: 2017-11-07-00-37-50
.. nonce: lM2gkR
.. section: Library

*database* argument of sqlite3.connect() now accepts a :term:`path-like
object`, instead of just a string.

..

.. bpo: 31945
.. date: 2017-11-05-01-17-12
.. nonce: TLPBtS
.. section: Library

Add Configurable *blocksize* to ``HTTPConnection`` and ``HTTPSConnection``
for improved upload throughput.  Patch by Nir Soffer.

..

.. bpo: 31943
.. date: 2017-11-04-19-28-08
.. nonce: bxw5gM
.. section: Library

Add a ``cancelled()`` method to :class:`asyncio.Handle`.  Patch by Marat
Sharafutdinov.

..

.. 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: 21423
.. date: 2017-11-02-22-26-16
.. nonce: hw5mEh
.. section: Library

Add an initializer argument to {Process,Thread}PoolExecutor

..

.. 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: 31917
.. date: 2017-11-01-03-28-24
.. nonce: DYQL0g
.. section: Library

Add 3 new clock identifiers: :const:`time.CLOCK_BOOTTIME`,
:const:`time.CLOCK_PROF` and :const:`time.CLOCK_UPTIME`.

..

.. 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: 31884
.. date: 2017-10-27
.. nonce: bjhre9
.. section: Library

added required constants to subprocess module for setting priority on
windows

..

.. bpo: 28281
.. date: 2017-10-26-14-54-38
.. nonce: 7ZN5FG
.. section: Library

Remove year (1-9999) limits on the Calendar.weekday() function.
Patch by Mark Gollahon.

..

.. bpo: 31702
.. date: 2017-10-24-21-10-44
.. nonce: SfwJDI
.. section: Library

crypt.mksalt() now allows to specify the number of rounds for SHA-256 and
SHA-512 hashing.

..

.. bpo: 30639
.. date: 2017-10-24-12-24-56
.. nonce: ptNM9a
.. section: Library

:func:`inspect.getfile` no longer computes the repr of unknown objects to
display in an error message, to protect against badly behaved custom reprs.

..

.. bpo: 30768
.. date: 2017-10-24-12-00-16
.. nonce: Om8Yj_
.. section: Library

Fix the pthread+semaphore implementation of PyThread_acquire_lock_timed()
when called with timeout > 0 and intr_flag=0: recompute the timeout if
sem_timedwait() is interrupted by a signal (EINTR). See also the :pep:`475`.

..

.. bpo: 31854
.. date: 2017-10-23
.. nonce: fh8334f
.. section: Library

Add ``mmap.ACCESS_DEFAULT`` constant.

..

.. bpo: 31834
.. date: 2017-10-23-23-27-52
.. nonce: InwC6O
.. section: Library

Use optimized code for BLAKE2 only with SSSE3+. The pure SSE2 implementation
is slower than the pure C reference implementation.

..

.. bpo: 28292
.. date: 2017-10-23-20-03-36
.. nonce: 1Gkim2
.. section: Library

Calendar.itermonthdates() will now consistently raise an exception when a
date falls outside of the 0001-01-01 through 9999-12-31 range.  To support
applications that cannot tolerate such exceptions, the new methods
itermonthdays3() and itermonthdays4() are added.  The new methods return
tuples and are not restricted by the range supported by datetime.date.

..

.. bpo: 28564
.. date: 2017-10-23-16-22-54
.. nonce: Tx-l-I
.. section: Library

The shutil.rmtree() function has been sped up to 20--40%. This was done
using the os.scandir() function.

..

.. 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: 31653
.. date: 2017-10-22-12-43-03
.. nonce: ttfGvq
.. section: Library

Don't release the GIL if we can acquire a multiprocessing semaphore
immediately.

..

.. 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: 20825
.. date: 2017-10-21-09-13-16
.. nonce: -1MBEy
.. section: Library

Add ``subnet_of`` and ``superset_of`` containment tests to
:class:`ipaddress.IPv6Network` and :class:`ipaddress.IPv4Network`. Patch by
Michel Albert and Cheryl Sabella.

..

.. bpo: 31827
.. date: 2017-10-20-16-12-01
.. nonce: 7R8s8s
.. section: Library

Remove the os.stat_float_times() function. It was introduced in Python 2.3
for backward compatibility with Python 2.2, and was deprecated since Python
3.1.

..

.. bpo: 31756
.. date: 2017-10-20-12-57-52
.. nonce: IxCvGB
.. section: Library

Add a ``subprocess.Popen(text=False)`` keyword argument to ``subprocess``
functions to be more explicit about when the library should attempt to
decode outputs into text. Patch by Andrew Clegg.

..

.. bpo: 31819
.. date: 2017-10-19-20-03-13
.. nonce: mw2wF9
.. section: Library

Add AbstractEventLoop.sock_recv_into().

..

.. 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: 31803
.. date: 2017-10-17-22-55-13
.. nonce: YLL1gJ
.. section: Library

time.clock() and time.get_clock_info('clock') now emit a DeprecationWarning
warning.

..

.. bpo: 31800
.. date: 2017-10-17-20-08-19
.. nonce: foOSCi
.. section: Library

Extended support for parsing UTC offsets. strptime '%z' can now parse the
output generated by datetime.isoformat, including seconds and microseconds.

..

.. 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: 30541
.. date: 2017-10-17-12-04-37
.. nonce: q3BM6C
.. section: Library

Add new function to seal a mock and prevent the automatically creation of
child mocks. Patch by Mario Corchero.

..

.. bpo: 31784
.. date: 2017-10-13-23-35-47
.. nonce: 6e57bd
.. section: Library

Implement the :pep:`564`, add new 6 new functions with nanosecond resolution
to the :mod:`time` module: :func:`~time.clock_gettime_ns`,
:func:`~time.clock_settime_ns`, :func:`~time.monotonic_ns`,
:func:`~time.perf_counter_ns`, :func:`~time.process_time_ns`,
:func:`~time.time_ns`.

..

.. bpo: 30143
.. date: 2017-10-12-19-05-54
.. nonce: 25_hU1
.. section: Library

2to3 now generates a code that uses abstract collection classes from
collections.abc rather than collections.

..

.. 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: 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: 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: 31690
.. date: 2017-10-05-15-14-46
.. nonce: f0XteV
.. section: Library

Allow the flags re.ASCII, re.LOCALE, and re.UNICODE to be used as group
flags for regular expressions.

..

.. bpo: 30349
.. date: 2017-10-05-12-45-29
.. nonce: 6zKJsF
.. section: Library

FutureWarning is now emitted if a regular expression contains character set
constructs that will change semantically in the future (nested sets and set
operations).

..

.. bpo: 31664
.. date: 2017-10-04-20-36-28
.. nonce: 4VDUzo
.. section: Library

Added support for the Blowfish hashing in the crypt module.

..

.. 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: 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: 31307
.. date: 2017-09-07-12-50-28
.. nonce: AVBiNY
.. section: Library

Allow use of bytes objects for arguments to
:meth:`configparser.ConfigParser.read`. Patch by Vincent Michel.

..

.. 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: 31245
.. date: 2017-08-22-11-05-35
.. nonce: AniZuz
.. section: Library

Added support for AF_UNIX socket in asyncio ``create_datagram_endpoint``.

..

.. bpo: 30553
.. date: 2017-07-05-14-48-26
.. nonce: Oupsxo
.. section: Library

Add HTTP/2 status code 421 (Misdirected Request) to
:class:`http.HTTPStatus`. Patch by Vitor Pereira.

..

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

Added asyncio.BaseEventLoop.connect_accepted_socket versionadded marker.

..

.. 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: 32138
.. date: 2017-11-27-16-18-58
.. nonce: QsTvf-
.. section: Tests

Skip on Android test_faulthandler tests that raise SIGSEGV and remove the
test.support.requires_android_level decorator.

..

.. bpo: 32136
.. date: 2017-11-26-17-11-27
.. nonce: Y11luJ
.. section: Tests

The runtime embedding tests have been split out from
``Lib/test/test_capi.py`` into a new ``Lib/test/test_embed.py`` file.

..

.. bpo: 28668
.. date: 2017-11-25-14-53-29
.. nonce: Y1G6pA
.. section: Tests

test.support.requires_multiprocessing_queue is removed. Skip tests with
test.support.import_module('multiprocessing.synchronize') instead when the
semaphore implementation is broken or missing.

..

.. bpo: 32126
.. date: 2017-11-24-18-15-12
.. nonce: PLmNLn
.. section: Tests

Skip test_get_event_loop_new_process in test.test_asyncio.test_events when
sem_open() is not functional.

..

.. 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: 28538
.. date: 2017-11-21-17-27-59
.. nonce: DsNBS7
.. section: Build

Revert the previous changes, the if_nameindex structure is defined by
Unified Headers.

..

.. bpo: 28762
.. date: 2017-11-21-17-12-24
.. nonce: R6uu8w
.. section: Build

Revert the last commit, the F_LOCK macro is defined by Android Unified
Headers.

..

.. bpo: 29040
.. date: 2017-11-21-16-56-24
.. nonce: 14lCSr
.. section: Build

Support building Android with Unified Headers. The first NDK release to
support Unified Headers is android-ndk-r14.

..

.. 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: 28643
.. date: 2017-11-01-14-16-27
.. nonce: 9iPKJy
.. section: Build

Record profile-opt build progress with stamp files.

..

.. bpo: 31866
.. date: 2017-10-24-23-21-13
.. nonce: MkNO66
.. section: Build

Finish removing support for AtheOS.

..

.. 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: 20486
.. date: 2017-10-26-23-02-57
.. nonce: 3IdsZ1
.. section: Windows

Implement the ``Database.Close()`` method to help closing MSI database
objects.

..

.. bpo: 31857
.. date: 2017-10-23-18-35-50
.. nonce: YwhEvc
.. section: Windows

Make the behavior of USE_STACKCHECK deterministic in a multi-threaded
environment.

..

.. 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: 32159
.. date: 2017-11-28-21-24-41
.. nonce: RSl4QK
.. section: Tools/Demos

Remove CVS and Subversion tools: remove svneol.py and treesync.py scripts.
CPython migrated from CVS to Subversion, to Mercurial, and then to Git. CVS
and Subversion are no longer used to develop CPython.

..

.. 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: 32125
.. date: 2017-11-24-21-25-43
.. nonce: K8zWgn
.. section: C API

The ``Py_UseClassExceptionsFlag`` flag has been removed. It was deprecated
and wasn't used anymore since Python 2.0.

..

.. bpo: 25612
.. date: 2017-10-22-13-12-28
.. nonce: 1jnWKT
.. section: C API

Move the current exception state from the frame object to the co-routine.
This simplifies the interpreter and fixes a couple of obscure bugs caused by
having swap exception state when entering or exiting a generator.

..

.. bpo: 23699
.. date: 2017-10-19-15-27-04
.. nonce: -noVVc
.. section: C API

Add Py_RETURN_RICHCOMPARE macro to reduce boilerplate code in rich
comparison functions.

..

.. 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.
