summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJelle Zijlstra <jelle.zijlstra@gmail.com>2024-02-16 21:46:48 (GMT)
committerGitHub <noreply@github.com>2024-02-16 21:46:48 (GMT)
commit83c7dd5200bae16d2f2f942fb0a826723d3023cc (patch)
tree9f61aa1b722bd4d42767432f8c523a3314ade947
parentf383ca1a6fa1a2a83c8c1a0e56cf997c77fa2893 (diff)
downloadcpython-83c7dd5200bae16d2f2f942fb0a826723d3023cc.zip
cpython-83c7dd5200bae16d2f2f942fb0a826723d3023cc.tar.gz
cpython-83c7dd5200bae16d2f2f942fb0a826723d3023cc.tar.bz2
[3.12] gh-115570: Fix DeprecationWarnings in test_typing (#115571) (#115574)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
-rw-r--r--Lib/test/test_typing.py11
-rw-r--r--Lib/typing.py4
-rw-r--r--Misc/NEWS.d/next/Library/2024-02-16-10-18-25.gh-issue-115570.bI6uu3.rst3
3 files changed, 16 insertions, 2 deletions
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py
index ab9d8a0..7f9c10d 100644
--- a/Lib/test/test_typing.py
+++ b/Lib/test/test_typing.py
@@ -8123,6 +8123,17 @@ class RETests(BaseTestCase):
self.assertEqual(__name__, 'typing.re')
self.assertEqual(len(w), 1)
+ def test_re_submodule_access_basics(self):
+ with warnings.catch_warnings():
+ warnings.filterwarnings("error", category=DeprecationWarning)
+ from typing import re
+ self.assertIsInstance(re.__doc__, str)
+ self.assertEqual(re.__name__, "typing.re")
+ self.assertIsInstance(re.__dict__, types.MappingProxyType)
+
+ with self.assertWarns(DeprecationWarning):
+ re.Match
+
def test_cannot_subclass(self):
with self.assertRaisesRegex(
TypeError,
diff --git a/Lib/typing.py b/Lib/typing.py
index cbd4ce8..1e4c725 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -3256,11 +3256,11 @@ class TextIO(IO[str]):
class _DeprecatedType(type):
def __getattribute__(cls, name):
- if name not in ("__dict__", "__module__") and name in cls.__dict__:
+ if name not in {"__dict__", "__module__", "__doc__"} and name in cls.__dict__:
warnings.warn(
f"{cls.__name__} is deprecated, import directly "
f"from typing instead. {cls.__name__} will be removed "
- "in Python 3.12.",
+ "in Python 3.13.",
DeprecationWarning,
stacklevel=2,
)
diff --git a/Misc/NEWS.d/next/Library/2024-02-16-10-18-25.gh-issue-115570.bI6uu3.rst b/Misc/NEWS.d/next/Library/2024-02-16-10-18-25.gh-issue-115570.bI6uu3.rst
new file mode 100644
index 0000000..f3c8a11
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-02-16-10-18-25.gh-issue-115570.bI6uu3.rst
@@ -0,0 +1,3 @@
+A :exc:`DeprecationWarning` is no longer omitted on access to the
+``__doc__`` attributes of the deprecated ``typing.io`` and ``typing.re``
+pseudo-modules.