(fn)
| 66 | |
| 67 | |
| 68 | def function_spec(fn): |
| 69 | fn = inspect.unwrap(fn) |
| 70 | fullspec = inspect.getfullargspec(fn) |
| 71 | defaults = {} |
| 72 | if fullspec.defaults is not None: |
| 73 | for index, default in enumerate(reversed(fullspec.defaults)): |
| 74 | defaults[fullspec.args[-index - 1]] = default |
| 75 | arg_names = fn.__code__.co_varnames[: fn.__code__.co_argcount] |
| 76 | return FunctionSpec(fn, arg_names, defaults) |
| 77 | |
| 78 | |
| 79 | def fn_arg_tuple(fn_spec: FunctionSpec, args, kwargs): |
no outgoing calls
no test coverage detected