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

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