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.assertRaises(TypeError) as ex:
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 "