gh-95913: Edit, sort & expand 3.11 WhatsNew Porting section (#98585)

This commit is contained in:
C.A.M. Gerlach 2022-10-24 07:33:31 -05:00 committed by GitHub
parent 8dbec4dbe5
commit 43bef54a32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 31 additions and 30 deletions

View File

@ -1842,22 +1842,23 @@ in the Python API that may require changes to your Python code.
Porting notes for the C API are
:ref:`listed separately <whatsnew311-c-api-porting>`.
* Prohibited passing non-:class:`concurrent.futures.ThreadPoolExecutor`
executors to :meth:`loop.set_default_executor` following a deprecation in
Python 3.8.
(Contributed by Illia Volochii in :issue:`43234`.)
* :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. In Python 3, the
"universal newline" is used by default when a file is open in text mode. The
:ref:`newline parameter <open-newline-parameter>` of :func:`open` controls
how universal newlines works.
in the file mode. In Python 3, "universal newline" mode is used by default
whenever a file is opened in text mode,
and the ``'U'`` flag has been deprecated since Python 3.3.
The :ref:`newline parameter <open-newline-parameter>`
to these functions controls how universal newlines work.
(Contributed by Victor Stinner in :issue:`37330`.)
* The :mod:`pdb` module now reads the :file:`.pdbrc` configuration file with
the ``'utf-8'`` encoding.
(Contributed by Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) in :issue:`41137`.)
* :class:`ast.AST` node positions are now validated when provided to
:func:`compile` and other related functions. If invalid positions are detected,
a :exc:`ValueError` will be raised. (Contributed by Pablo Galindo in :gh:`93351`)
* Prohibited passing non-:class:`concurrent.futures.ThreadPoolExecutor`
executors to :meth:`asyncio.loop.set_default_executor`
following a deprecation in Python 3.8.
(Contributed by Illia Volochii in :issue:`43234`.)
* :mod:`calendar`: The :class:`calendar.LocaleTextCalendar` and
:class:`calendar.LocaleHTMLCalendar` classes now use
@ -1865,29 +1866,29 @@ Porting notes for the C API are
if no locale is specified.
(Contributed by Victor Stinner in :issue:`46659`.)
* Global inline flags (e.g. ``(?i)``) can now only be used at the start of
the regular expressions. Using them not at the start of expression was
deprecated since Python 3.6.
(Contributed by Serhiy Storchaka in :issue:`47066`.)
* The :mod:`pdb` module now reads the :file:`.pdbrc` configuration file with
the ``'UTF-8'`` encoding.
(Contributed by Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) in :issue:`41137`.)
* :mod:`re` module: Fix a few long-standing bugs where, in rare cases,
capturing group could get wrong result. So the result may be different than
before.
(Contributed by Ma Lin in :issue:`35859`.)
* The *population* parameter of :func:`random.sample` must be a sequence.
Automatic conversion of sets to lists is no longer supported. If the sample size
* The *population* parameter of :func:`random.sample` must be a sequence,
and automatic conversion of :class:`set`\s to :class:`list`\s
is no longer supported. Also, if the sample size
is larger than the population size, a :exc:`ValueError` is raised.
(Contributed by Raymond Hettinger in :issue:`40465`.)
* :class:`ast.AST` node positions are now validated when provided to
:func:`compile` and other related functions. If invalid positions are detected,
a :exc:`ValueError` will be raised. (Contributed by Pablo Galindo in :gh:`93351`)
* The *random* optional parameter of :func:`random.shuffle` was removed.
It was previously an arbitrary random function to use for the shuffle;
now, :func:`random.random` (its previous default) will always be used.
* :c:member:`~PyTypeObject.tp_dictoffset` should be treated as write-only.
It can be set to describe C extension clases to the VM, but should be regarded
as meaningless when read. To get the pointer to the object's dictionary call
:c:func:`PyObject_GenericGetDict` instead.
* In :mod:`re` :ref:`re-syntax`, global inline flags (e.g. ``(?i)``)
can now only be used at the start of regular expressions.
Using them elsewhere has been deprecated since Python 3.6.
(Contributed by Serhiy Storchaka in :issue:`47066`.)
* In the :mod:`re` module, several long-standing bugs where fixed that,
in rare cases, could cause capture groups to get the wrong result.
Therefore, this could change the captured output in these cases.
(Contributed by Ma Lin in :issue:`35859`.)
.. _whatsnew311-build-changes: