Bug report
Repro:
>>>fromreprlibimportrecursive_repr>>>>>>classMy:
... @recursive_repr()
... def__repr__[T](self, converter: T|None=None): ...
... >>>My().__repr__.__type_params__
()
This happens because recursive_repr does not use @wraps, but reinvents it:
| # Can't use functools.wraps() here because of bootstrap issues |
| wrapper.__module__=getattr(user_function, '__module__') |
| wrapper.__doc__=getattr(user_function, '__doc__') |
| wrapper.__name__=getattr(user_function, '__name__') |
| wrapper.__qualname__=getattr(user_function, '__qualname__') |
| wrapper.__annotations__=getattr(user_function, '__annotations__', {}) |
| wrapper.__wrapped__=user_function |
| returnwrapper |
And __type_params__ was added in #104600
Linked PRs
Bug report
Repro:
This happens because
recursive_reprdoes not use@wraps, but reinvents it:cpython/Lib/reprlib.py
Lines 26 to 33 in f2eaa92
And
__type_params__was added in #104600Linked PRs
reprlib.recursive_reprcopies__type_params__#109819reprlib.recursive_reprcopies__type_params__(… #109999