Skip to content

Commit 52709b2

Browse files
miss-islingtonCAM-Gerlach
authored andcommitted
gh-95913: Copyedit/improve Other Language Changes What's New section (GH-97719)
* Add/refine cross references to items in other lang changes section * Unify context manager exception changes into single non-repetitive item * More clearly describe the intent and consequences of the -P option * Apply minor clarifications & copyedits to rest of section * Tweak the formatting of module references Co-authored-by: Ezio Melotti <[email protected]> Co-authored-by: Ezio Melotti <[email protected]> (cherry picked from commit a77d9de) Co-authored-by: C.A.M. Gerlach <[email protected]>
1 parent 232a402 commit 52709b2

File tree

1 file changed

+36
-31
lines changed

1 file changed

+36
-31
lines changed

Doc/whatsnew/3.11.rst

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -391,52 +391,57 @@ detected by checking its tag for a ``-32`` suffix. All releases of Python
391391
since 3.5 have included this in their 32-bit builds.
392392

393393

394+
.. _whatsnew311-other-lang-changes:
395+
394396
Other Language Changes
395397
======================
396398

397-
* Starred expressions can be used in :ref:`for statements<for>`. (See
398-
:issue:`46725` for more details.)
399-
400-
* Asynchronous comprehensions are now allowed inside comprehensions in
401-
asynchronous functions. Outer comprehensions implicitly become
402-
asynchronous. (Contributed by Serhiy Storchaka in :issue:`33346`.)
399+
* Starred unpacking expressions can now be used in :keyword:`for` statements.
400+
(See :issue:`46725` for more details.)
403401

404-
* A :exc:`TypeError` is now raised instead of an :exc:`AttributeError` in
405-
:meth:`contextlib.ExitStack.enter_context` and
406-
:meth:`contextlib.AsyncExitStack.enter_async_context` for objects which do not
407-
support the :term:`context manager` or :term:`asynchronous context manager`
408-
protocols correspondingly.
409-
(Contributed by Serhiy Storchaka in :issue:`44471`.)
402+
* Asynchronous :ref:`comprehensions <comprehensions>` are now allowed
403+
inside comprehensions in :ref:`asynchronous functions <async def>`.
404+
Outer comprehensions implicitly become asynchronous in this case.
405+
(Contributed by Serhiy Storchaka in :issue:`33346`.)
410406

411407
* A :exc:`TypeError` is now raised instead of an :exc:`AttributeError` in
412-
:keyword:`with` and :keyword:`async with` statements for objects which do not
413-
support the :term:`context manager` or :term:`asynchronous context manager`
414-
protocols correspondingly.
415-
(Contributed by Serhiy Storchaka in :issue:`12022`.)
416-
417-
* Added :meth:`object.__getstate__` which provides the default
418-
implementation of the ``__getstate__()`` method. :mod:`Copying <copy>`
419-
and :mod:`pickling <pickle>` instances of subclasses of builtin types
408+
:keyword:`with` statements and :meth:`contextlib.ExitStack.enter_context`
409+
for objects that do not support the :term:`context manager` protocol,
410+
and in :keyword:`async with` statements and
411+
:meth:`contextlib.AsyncExitStack.enter_async_context`
412+
for objects not supporting the :term:`asynchronous context manager` protocol.
413+
(Contributed by Serhiy Storchaka in :issue:`12022` and :issue:`44471`.)
414+
415+
* Added :meth:`object.__getstate__`, which provides the default
416+
implementation of the :meth:`!__getstate__` method. :mod:`copy`\ing
417+
and :mod:`pickle`\ing instances of subclasses of builtin types
420418
:class:`bytearray`, :class:`set`, :class:`frozenset`,
421419
:class:`collections.OrderedDict`, :class:`collections.deque`,
422420
:class:`weakref.WeakSet`, and :class:`datetime.tzinfo` now copies and
423421
pickles instance attributes implemented as :term:`slots <__slots__>`.
424422
(Contributed by Serhiy Storchaka in :issue:`26579`.)
425423

426-
* Add :option:`-P` command line option and :envvar:`PYTHONSAFEPATH` environment
427-
variable to not prepend a potentially unsafe path to :data:`sys.path` such as
428-
the current directory, the script's directory or an empty string.
424+
* Added a :option:`-P` command line option
425+
and a :envvar:`PYTHONSAFEPATH` environment variable,
426+
which disable the automatic prepending to :data:`sys.path`
427+
of the script's directory when running a script,
428+
or the current directory when using :option:`-c` and :option:`-m`.
429+
This ensures only stdlib and installed modules
430+
are picked up by :keyword:`import`,
431+
and avoids unintentionally or maliciously shadowing modules
432+
with those in a local (and typically user-writable) directory.
429433
(Contributed by Victor Stinner in :gh:`57684`.)
430434

431-
* A ``"z"`` option was added to the format specification mini-language that
432-
coerces negative zero to zero after rounding to the format precision. See
433-
:pep:`682` for more details. (Contributed by John Belmonte in :gh:`90153`.)
435+
* A ``"z"`` option was added to the :ref:`formatspec` that
436+
coerces negative to positive zero after rounding to the format precision.
437+
See :pep:`682` for more details.
438+
(Contributed by John Belmonte in :gh:`90153`.)
434439

435-
* Bytes are no longer accepted on :attr:`sys.path`. Support broke sometime
436-
between Python 3.2 and 3.6 with no one noticing until after Python 3.10.0
437-
was released. Bringing back support would also be problematic due to
438-
interactions between :option:`-b` and :attr:`sys.path_importer_cache` when
439-
there is a mixture of strings and bytes keys.
440+
* Bytes are no longer accepted on :data:`sys.path`. Support broke sometime
441+
between Python 3.2 and 3.6, with no one noticing until after Python 3.10.0
442+
was released. In addition, bringing back support would be problematic due to
443+
interactions between :option:`-b` and :data:`sys.path_importer_cache` when
444+
there is a mixture of :class:`str` and :class:`bytes` keys.
440445
(Contributed by Thomas Grainger in :gh:`91181`.)
441446

442447

0 commit comments

Comments
 (0)