I stumbled across this while reviewing #294, and it took me ages to figure out what I was doing wrong:
>>> import typing_extensions as t
>>> @t.deprecated
... class Foo: ...
...
>>> class Bar(Foo): pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: function() argument 'code' must be code, not str
The issue, of course, is that you're meant to pass a deprecation message to @deprecated, e.g.:
import typing_extensions as t
@t.deprecated('Foo will go away soon')
class Foo: ...