2018-02-02 22:44:17 -06:00
|
|
|
from functools import singledispatch
|
2020-03-10 04:58:18 -05:00
|
|
|
import inspect
|
|
|
|
|
|
|
|
|
|
|
|
def assign_signature(func):
|
|
|
|
# This is intended to cover more complex signature-rewriting decorators.
|
|
|
|
func.__signature__ = inspect.signature(func)
|
|
|
|
return func
|
2018-02-02 22:44:17 -06:00
|
|
|
|
|
|
|
|
|
|
|
@singledispatch
|
|
|
|
def func(arg, kwarg=None):
|
|
|
|
"""A function for general use."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@func.register(int)
|
|
|
|
def _func_int(arg, kwarg=None):
|
|
|
|
"""A function for int."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@func.register(str)
|
2020-03-10 04:58:18 -05:00
|
|
|
@assign_signature
|
2018-02-02 22:44:17 -06:00
|
|
|
def _func_str(arg, kwarg=None):
|
|
|
|
"""A function for str."""
|
|
|
|
pass
|