]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-105578: Document that `AnyStr` is deprecated in py313 (#107116)
authorMichael The <michael-the1@users.noreply.github.com>
Mon, 31 Jul 2023 15:43:53 +0000 (17:43 +0200)
committerGitHub <noreply@github.com>
Mon, 31 Jul 2023 15:43:53 +0000 (15:43 +0000)
It will not be removed until Python 3.18.

Doc/library/typing.rst
Doc/whatsnew/3.13.rst
Misc/NEWS.d/next/Library/2023-07-23-13-05-32.gh-issue-105578.XAQtyR.rst [new file with mode: 0644]

index 539203f1d713605ca1d9c992d350a792bdeaf0a6..f96a805cef7b2df7db52e19a6f52643cc695bd80 100644 (file)
@@ -864,6 +864,16 @@ using ``[]``.
       def greet_proper(cond: bool) -> str | bytes:
           return "hi there!" if cond else b"greetings!"
 
+   .. deprecated-removed:: 3.13 3.18
+      Deprecated in favor of the new :ref:`type parameter syntax <type-params>`.
+      Use ``class A[T: (str, bytes)]: ...`` instead of importing ``AnyStr``. See
+      :pep:`695` for more details.
+
+      In Python 3.16, ``AnyStr`` will be removed from ``typing.__all__``, and
+      deprecation warnings will be emitted at runtime when it is accessed or
+      imported from ``typing``. ``AnyStr`` will be removed from ``typing``
+      in Python 3.18.
+
 .. data:: LiteralString
 
    Special type that includes only literal strings.
@@ -3700,3 +3710,7 @@ convenience. This is subject to change, and not all deprecations are listed.
      - 3.13
      - 3.15
      - :gh:`106309`
+   * - :data:`typing.AnyStr`
+     - 3.13
+     - 3.18
+     - :gh:`105578`
index e20832a3a4c3097c62a2e91a6466a5f49e79e9c1..8fb4e6cfdf14c7fb1ef24c709460ccd95788c4ad 100644 (file)
@@ -196,6 +196,12 @@ Deprecated
     has yet to be supported by any major type checkers.
     (Contributed by Alex Waygood in :gh:`106309`.)
 
+  * :data:`typing.AnyStr` is deprecated. In Python 3.16, it will be removed from
+    ``typing.__all__``, and a :exc:`DeprecationWarning` will be emitted when it
+    is imported or accessed. It will be removed entirely in Python 3.18. Use
+    the new :ref:`type parameter syntax <type-params>` instead.
+    (Contributed by Michael The in :gh:`107116`.)
+
 * :mod:`wave`: Deprecate the ``getmark()``, ``setmark()`` and ``getmarkers()``
   methods of the :class:`wave.Wave_read` and :class:`wave.Wave_write` classes.
   They will be removed in Python 3.15.
diff --git a/Misc/NEWS.d/next/Library/2023-07-23-13-05-32.gh-issue-105578.XAQtyR.rst b/Misc/NEWS.d/next/Library/2023-07-23-13-05-32.gh-issue-105578.XAQtyR.rst
new file mode 100644 (file)
index 0000000..4a03f5c
--- /dev/null
@@ -0,0 +1,2 @@
+Deprecate :class:`typing.AnyStr` in favor of the new Type Parameter syntax.
+See PEP 695.