Skip to content

Commit 07a555d

Browse files
authored
gh-133879: Copyedit "What's new in Python 3.15" (#146345)
1 parent 95340ef commit 07a555d

File tree

1 file changed

+80
-71
lines changed

1 file changed

+80
-71
lines changed

Doc/whatsnew/3.15.rst

Lines changed: 80 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -690,26 +690,6 @@ collections
690690
(Contributed by Raymond Hettinger in :gh:`138682`.)
691691

692692

693-
collections.abc
694-
---------------
695-
696-
* :class:`collections.abc.ByteString` has been removed from
697-
``collections.abc.__all__``. :class:`!collections.abc.ByteString` has been
698-
deprecated since Python 3.12, and is scheduled for removal in Python 3.17.
699-
700-
* The following statements now cause ``DeprecationWarning``\ s to be emitted at
701-
runtime:
702-
703-
* ``from collections.abc import ByteString``
704-
* ``import collections.abc; collections.abc.ByteString``.
705-
706-
``DeprecationWarning``\ s were already emitted if
707-
:class:`collections.abc.ByteString` was subclassed or used as the second
708-
argument to :func:`isinstance` or :func:`issubclass`, but warnings were not
709-
previously emitted if it was merely imported or accessed from the
710-
:mod:`!collections.abc` module.
711-
712-
713693
concurrent.futures
714694
------------------
715695

@@ -836,13 +816,12 @@ mimetypes
836816

837817
* Add ``application/dicom`` MIME type for ``.dcm`` extension.
838818
(Contributed by Benedikt Johannes in :gh:`144217`.)
819+
* Add ``application/efi``. (Contributed by Charlie Lin in :gh:`145720`.)
839820
* Add ``application/node`` MIME type for ``.cjs`` extension.
840821
(Contributed by John Franey in :gh:`140937`.)
841822
* Add ``application/toml``. (Contributed by Gil Forcada in :gh:`139959`.)
842823
* Add ``application/sql`` and ``application/vnd.sqlite3``.
843824
(Contributed by Charlie Lin in :gh:`145698`.)
844-
* Add ``image/jxl``. (Contributed by Foolbar in :gh:`144213`.)
845-
* Add ``application/efi``. (Contributed by Charlie Lin in :gh:`145720`.)
846825
* Add the following MIME types:
847826

848827
- ``application/vnd.ms-cab-compressed`` for ``.cab`` extension
@@ -851,6 +830,7 @@ mimetypes
851830

852831
(Contributed by Charlie Lin in :gh:`145718`.)
853832

833+
* Add ``image/jxl``. (Contributed by Foolbar in :gh:`144213`.)
854834
* Rename ``application/x-texinfo`` to ``application/texinfo``.
855835
(Contributed by Charlie Lin in :gh:`140165`.)
856836
* Changed the MIME type for ``.ai`` files to ``application/pdf``.
@@ -960,7 +940,7 @@ ssl
960940
---
961941

962942
* Indicate through :data:`ssl.HAS_PSK_TLS13` whether the :mod:`ssl` module
963-
supports "External PSKs" in TLSv1.3, as described in RFC 9258.
943+
supports "External PSKs" in TLSv1.3, as described in :rfc:`9258`.
964944
(Contributed by Will Childs-Klein in :gh:`133624`.)
965945

966946
* Added new methods for managing groups used for SSL key agreement
@@ -1146,14 +1126,48 @@ tomllib
11461126

11471127

11481128
types
1149-
------
1129+
-----
11501130

11511131
* Expose the write-through :func:`locals` proxy type
11521132
as :data:`types.FrameLocalsProxyType`.
11531133
This represents the type of the :attr:`frame.f_locals` attribute,
11541134
as described in :pep:`667`.
11551135

11561136

1137+
typing
1138+
------
1139+
1140+
.. _whatsnew315-typeform:
1141+
1142+
* :pep:`747`: Add :data:`~typing.TypeForm`, a new special form for annotating
1143+
values that are themselves type expressions.
1144+
``TypeForm[T]`` means "a type form object describing ``T`` (or a type
1145+
assignable to ``T``)". At runtime, ``TypeForm(x)`` simply returns ``x``,
1146+
which allows explicit annotation of type-form values without changing
1147+
behavior.
1148+
1149+
This helps libraries that accept user-provided type expressions
1150+
(for example ``int``, ``str | None``, :class:`~typing.TypedDict`
1151+
classes, or ``list[int]``) expose precise signatures:
1152+
1153+
.. code-block:: python
1154+
1155+
from typing import Any, TypeForm
1156+
1157+
def cast[T](typ: TypeForm[T], value: Any) -> T: ...
1158+
1159+
(Contributed by Jelle Zijlstra in :gh:`145033`.)
1160+
1161+
* Code like ``class ExtraTypeVars(P1[S], Protocol[T, T2]): ...`` now raises
1162+
a :exc:`TypeError`, because ``S`` is not listed in ``Protocol`` parameters.
1163+
(Contributed by Nikita Sobolev in :gh:`137191`.)
1164+
1165+
* Code like ``class B2(A[T2], Protocol[T1, T2]): ...`` now correctly handles
1166+
type parameters order: it is ``(T1, T2)``, not ``(T2, T1)``
1167+
as it was incorrectly inferred in runtime before.
1168+
(Contributed by Nikita Sobolev in :gh:`137191`.)
1169+
1170+
11571171
unicodedata
11581172
-----------
11591173

@@ -1390,6 +1404,14 @@ Diego Russo in :gh:`140683` and :gh:`142305`.)
13901404
Removed
13911405
========
13921406

1407+
collections.abc
1408+
---------------
1409+
1410+
* :class:`collections.abc.ByteString` has been removed from
1411+
``collections.abc.__all__``. :class:`!collections.abc.ByteString` has been
1412+
deprecated since Python 3.12, and is scheduled for removal in Python 3.17.
1413+
1414+
13931415
ctypes
13941416
------
13951417

@@ -1466,26 +1488,9 @@ threading
14661488
typing
14671489
------
14681490

1469-
.. _whatsnew315-typeform:
1470-
1471-
* :pep:`747`: Add :data:`~typing.TypeForm`, a new special form for annotating
1472-
values that are themselves type expressions.
1473-
``TypeForm[T]`` means "a type form object describing ``T`` (or a type
1474-
assignable to ``T``)". At runtime, ``TypeForm(x)`` simply returns ``x``,
1475-
which allows explicit annotation of type-form values without changing
1476-
behavior.
1477-
1478-
This helps libraries that accept user-provided type expressions
1479-
(for example ``int``, ``str | None``, :class:`~typing.TypedDict`
1480-
classes, or ``list[int]``) expose precise signatures:
1481-
1482-
.. code-block:: python
1483-
1484-
from typing import Any, TypeForm
1485-
1486-
def cast[T](typ: TypeForm[T], value: Any) -> T: ...
1487-
1488-
(Contributed by Jelle Zijlstra in :gh:`145033`.)
1491+
* :class:`typing.ByteString` has been removed from ``typing.__all__``.
1492+
:class:`!typing.ByteString` has been deprecated since Python 3.9, and is
1493+
scheduled for removal in Python 3.17.
14891494

14901495
* The undocumented keyword argument syntax for creating
14911496
:class:`~typing.NamedTuple` classes (for example,
@@ -1499,33 +1504,6 @@ typing
14991504
or ``TD = TypedDict("TD", {})`` instead.
15001505
(Contributed by Bénédikt Tran in :gh:`133823`.)
15011506

1502-
* Code like ``class ExtraTypeVars(P1[S], Protocol[T, T2]): ...`` now raises
1503-
a :exc:`TypeError`, because ``S`` is not listed in ``Protocol`` parameters.
1504-
(Contributed by Nikita Sobolev in :gh:`137191`.)
1505-
1506-
* Code like ``class B2(A[T2], Protocol[T1, T2]): ...`` now correctly handles
1507-
type parameters order: it is ``(T1, T2)``, not ``(T2, T1)``
1508-
as it was incorrectly inferred in runtime before.
1509-
(Contributed by Nikita Sobolev in :gh:`137191`.)
1510-
1511-
* :class:`typing.ByteString` has been removed from ``typing.__all__``.
1512-
:class:`!typing.ByteString` has been deprecated since Python 3.9, and is
1513-
scheduled for removal in Python 3.17.
1514-
1515-
* The following statements now cause ``DeprecationWarning``\ s to be emitted at
1516-
runtime:
1517-
1518-
* ``from typing import ByteString``
1519-
* ``import typing; typing.ByteString``.
1520-
1521-
``DeprecationWarning``\ s were already emitted if :class:`typing.ByteString`
1522-
was subclassed or used as the second argument to :func:`isinstance` or
1523-
:func:`issubclass`, but warnings were not previously emitted if it was merely
1524-
imported or accessed from the :mod:`!typing` module.
1525-
1526-
* Deprecated :func:`!typing.no_type_check_decorator` has been removed.
1527-
(Contributed by Nikita Sobolev in :gh:`133601`.)
1528-
15291507

15301508
wave
15311509
----
@@ -1584,6 +1562,21 @@ New deprecations
15841562

15851563
(Contributed by Nikita Sobolev in :gh:`136355`.)
15861564

1565+
* :mod:`collections.abc`
1566+
1567+
* The following statements now cause ``DeprecationWarning``\ s to be emitted
1568+
at runtime:
1569+
1570+
* ``from collections.abc import ByteString``
1571+
* ``import collections.abc; collections.abc.ByteString``.
1572+
1573+
``DeprecationWarning``\ s were already emitted if
1574+
:class:`collections.abc.ByteString` was subclassed or used as the second
1575+
argument to :func:`isinstance` or :func:`issubclass`, but warnings were not
1576+
previously emitted if it was merely imported or accessed from the
1577+
:mod:`!collections.abc` module.
1578+
1579+
15871580
* :mod:`hashlib`:
15881581

15891582
* In hash function constructors such as :func:`~hashlib.new` or the
@@ -1607,6 +1600,22 @@ New deprecations
16071600

16081601
(Contributed by Sergey B Kirpichev and Serhiy Storchaka in :gh:`143715`.)
16091602

1603+
* :mod:`typing`:
1604+
1605+
* The following statements now cause ``DeprecationWarning``\ s to be emitted
1606+
at runtime:
1607+
1608+
* ``from typing import ByteString``
1609+
* ``import typing; typing.ByteString``.
1610+
1611+
``DeprecationWarning``\ s were already emitted if :class:`typing.ByteString`
1612+
was subclassed or used as the second argument to :func:`isinstance` or
1613+
:func:`issubclass`, but warnings were not previously emitted if it was
1614+
merely imported or accessed from the :mod:`!typing` module.
1615+
1616+
* Deprecated :func:`!typing.no_type_check_decorator` has been removed.
1617+
(Contributed by Nikita Sobolev in :gh:`133601`.)
1618+
16101619
* ``__version__``
16111620

16121621
* The ``__version__``, ``version`` and ``VERSION`` attributes have been

0 commit comments

Comments
 (0)