sphinx/tests/roots/test-ext-autodoc/target/singledispatch.py
Takeshi KOMIYA caa6579dbd Fix #8872: autodoc: stacked singledispatches are wrongly rendered
When multiple singledispatch decorators are stacked, the first typehints
are copied to the subsequent definitions unexpectedly.

Now autodoc generates a dummy function not to affect typehints to
subsequent functions.
2021-05-03 21:51:19 +09:00

29 lines
542 B
Python

import inspect
from functools import singledispatch
def assign_signature(func):
# This is intended to cover more complex signature-rewriting decorators.
func.__signature__ = inspect.signature(func)
return func
@singledispatch
def func(arg, kwarg=None):
"""A function for general use."""
pass
@func.register(int)
@func.register(float)
def _func_int(arg, kwarg=None):
"""A function for int."""
pass
@func.register(str)
@assign_signature
def _func_str(arg, kwarg=None):
"""A function for str."""
pass