mirror of
https://github.com/python/cpython.git
synced 2025-08-08 19:09:46 +00:00
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
parent
f383ca1a6f
commit
83c7dd5200
3 changed files with 16 additions and 2 deletions
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
)
|
||||
|
|
|
@ -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.
|
Loading…
Add table
Add a link
Reference in a new issue