blob: 3dd5aaf388a717c74015f5af8a78aecfe4054c62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
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
@func.register
def _func_dict(arg: dict, kwarg=None):
"""A function for dict."""
# This function tests for specifying type through annotations
pass
|