Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
gh-106309: Deprecate typing.no_type_check_decorator
  • Loading branch information
AlexWaygood committed Jul 1, 2023
commit 6c494a4335d326d94ab512ebb192c702faeaa567
3 changes: 3 additions & 0 deletions Doc/library/typing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2844,6 +2844,9 @@ Functions and decorators
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

Expand Down
4 changes: 4 additions & 0 deletions Doc/whatsnew/3.13.rst
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,10 @@ Deprecated
``NT = NamedTuple("NT", [])``. To create a TypedDict class with 0 fields, use
``class TD(TypedDict): pass`` or ``TD = TypedDict("TD", {})``.
(Contributed by Alex Waygood in :gh:`105566` and :gh:`105570`.)
* :func:`typing.no_type_check_decorator` is deprecated, and scheduled for
removal in Python 3.15. After eight years in the :mod:`typing` module, it
has yet to be supported by any major type checkers.
(Contributed by Alex Waygood in :gh:`106309`.)

* :mod:`array`'s ``'u'`` format code, deprecated in docs since Python 3.3,
emits :exc:`DeprecationWarning` since 3.13
Expand Down
13 changes: 10 additions & 3 deletions Lib/test/test_typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -5795,9 +5795,16 @@ class F:

def test_meta_no_type_check(self):

@no_type_check_decorator
def magic_decorator(func):
return func
with self.assertWarnsRegex(
DeprecationWarning,
(
"'typing.no_type_check_decorator' is deprecated "
"and slated for removal in Python 3.15"
)
):
@no_type_check_decorator
def magic_decorator(func):
return func

self.assertEqual(magic_decorator.__name__, 'magic_decorator')

Expand Down
2 changes: 2 additions & 0 deletions Lib/typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -2395,6 +2395,8 @@ def no_type_check_decorator(decorator):
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)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Deprecate :func:`typing.no_type_check_decorator`. No major type checker ever
added support for this decorator. Patch by Alex Waygood.