gh-133601: Remove deprecated typing.no_type_check_decorator (#133602)

This commit is contained in:
sobolevn 2025-10-21 00:10:44 +03:00 committed by GitHub
parent a752f58d6b
commit e09837fcbf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 8 additions and 66 deletions

View file

@ -92,7 +92,7 @@ Pending removal in Python 3.15
Use ``class TD(TypedDict): pass`` or ``TD = TypedDict("TD", {})`` Use ``class TD(TypedDict): pass`` or ``TD = TypedDict("TD", {})``
to create a TypedDict with zero field. to create a TypedDict with zero field.
* The :func:`typing.no_type_check_decorator` decorator function * The :func:`!typing.no_type_check_decorator` decorator function
has been deprecated since Python 3.13. has been deprecated since Python 3.13.
After eight years in the :mod:`typing` module, After eight years in the :mod:`typing` module,
it has yet to be supported by any major type checker. it has yet to be supported by any major type checker.

View file

@ -3258,17 +3258,6 @@ Functions and decorators
``@no_type_check`` mutates the decorated object in place. ``@no_type_check`` mutates the decorated object in place.
.. decorator:: no_type_check_decorator
Decorator to give another decorator the :func:`no_type_check` effect.
This wraps the decorator with something that wraps the decorated
function in :func:`no_type_check`.
.. deprecated-removed:: 3.13 3.15
No type checker ever added support for ``@no_type_check_decorator``. It
is therefore deprecated, and will be removed in Python 3.15.
.. decorator:: override .. decorator:: override
Decorator to indicate that a method in a subclass is intended to override a Decorator to indicate that a method in a subclass is intended to override a
@ -4114,10 +4103,6 @@ convenience. This is subject to change, and not all deprecations are listed.
- 3.12 - 3.12
- Undecided - Undecided
- :pep:`695` - :pep:`695`
* - :func:`@typing.no_type_check_decorator <no_type_check_decorator>`
- 3.13
- 3.15
- :gh:`106309`
* - :data:`typing.AnyStr` * - :data:`typing.AnyStr`
- 3.13 - 3.13
- 3.18 - 3.18

View file

@ -1993,7 +1993,7 @@ New Deprecations
use ``class TD(TypedDict): pass`` or ``TD = TypedDict("TD", {})``. use ``class TD(TypedDict): pass`` or ``TD = TypedDict("TD", {})``.
(Contributed by Alex Waygood in :gh:`105566` and :gh:`105570`.) (Contributed by Alex Waygood in :gh:`105566` and :gh:`105570`.)
* Deprecate the :func:`typing.no_type_check_decorator` decorator function, * Deprecate the :func:`!typing.no_type_check_decorator` decorator function,
to be removed in Python 3.15. to be removed in Python 3.15.
After eight years in the :mod:`typing` module, After eight years in the :mod:`typing` module,
it has yet to be supported by any major type checker. it has yet to be supported by any major type checker.

View file

@ -764,6 +764,9 @@ typing
:func:`issubclass`, but warnings were not previously emitted if it was merely :func:`issubclass`, but warnings were not previously emitted if it was merely
imported or accessed from the :mod:`!typing` module. imported or accessed from the :mod:`!typing` module.
* Deprecated :func:`!typing.no_type_check_decorator` has been removed.
(Contributed by Nikita Sobolev in :gh:`133601`.)
unicodedata unicodedata
----------- -----------

View file

@ -33,7 +33,7 @@
from typing import is_typeddict, is_protocol from typing import is_typeddict, is_protocol
from typing import reveal_type from typing import reveal_type
from typing import dataclass_transform from typing import dataclass_transform
from typing import no_type_check, no_type_check_decorator from typing import no_type_check
from typing import Type from typing import Type
from typing import NamedTuple, NotRequired, Required, ReadOnly, TypedDict, NoExtraItems from typing import NamedTuple, NotRequired, Required, ReadOnly, TypedDict, NoExtraItems
from typing import IO, TextIO, BinaryIO from typing import IO, TextIO, BinaryIO
@ -6376,35 +6376,6 @@ class F:
for clazz in [C, D, E, F]: for clazz in [C, D, E, F]:
self.assertEqual(get_type_hints(clazz), expected_result) self.assertEqual(get_type_hints(clazz), expected_result)
def test_meta_no_type_check(self):
depr_msg = (
"'typing.no_type_check_decorator' is deprecated "
"and slated for removal in Python 3.15"
)
with self.assertWarnsRegex(DeprecationWarning, depr_msg):
@no_type_check_decorator
def magic_decorator(func):
return func
self.assertEqual(magic_decorator.__name__, 'magic_decorator')
@magic_decorator
def foo(a: 'whatevers') -> {}:
pass
@magic_decorator
class C:
def foo(a: 'whatevers') -> {}:
pass
self.assertEqual(foo.__name__, 'foo')
th = get_type_hints(foo)
self.assertEqual(th, {})
cth = get_type_hints(C.foo)
self.assertEqual(cth, {})
ith = get_type_hints(C().foo)
self.assertEqual(ith, {})
class InternalsTests(BaseTestCase): class InternalsTests(BaseTestCase):
def test_collect_parameters(self): def test_collect_parameters(self):

View file

@ -139,7 +139,6 @@
'Never', 'Never',
'NewType', 'NewType',
'no_type_check', 'no_type_check',
'no_type_check_decorator',
'NoDefault', 'NoDefault',
'NoExtraItems', 'NoExtraItems',
'NoReturn', 'NoReturn',
@ -2623,23 +2622,6 @@ def no_type_check(arg):
return arg return arg
def no_type_check_decorator(decorator):
"""Decorator to give another decorator the @no_type_check effect.
This wraps the decorator with something that wraps the decorated
function in @no_type_check.
"""
import warnings
warnings._deprecated("typing.no_type_check_decorator", remove=(3, 15))
@functools.wraps(decorator)
def wrapped_decorator(*args, **kwds):
func = decorator(*args, **kwds)
func = no_type_check(func)
return func
return wrapped_decorator
def _overload_dummy(*args, **kwds): def _overload_dummy(*args, **kwds):
"""Helper for @overload to raise when called.""" """Helper for @overload to raise when called."""
raise NotImplementedError( raise NotImplementedError(

View file

@ -3426,7 +3426,7 @@ This bug was introduced in Python 3.12.0 beta 1.
.. nonce: hSlB17 .. nonce: hSlB17
.. section: Library .. section: Library
Deprecate :func:`typing.no_type_check_decorator`. No major type checker ever Deprecate :func:`!typing.no_type_check_decorator`. No major type checker ever
added support for this decorator. Patch by Alex Waygood. added support for this decorator. Patch by Alex Waygood.
.. ..

View file

@ -0,0 +1 @@
Remove deprecated :func:`!typing.no_type_check_decorator`.