Add new features

This commit is contained in:
Andras Schmelczer 2022-05-28 15:15:34 +02:00
commit 2c3f19e67c

View file

@ -0,0 +1,24 @@
import inspect
from typing import Any, Callable, Dict, Mapping, Sequence
def get_arguments(
func: Callable[..., Any], args: Sequence[Any], kwargs: Mapping[str, Any]
) -> Dict[str, Any]:
"""Return mapping from parameter names to actual argument values"""
signature = inspect.signature(func)
defaults = {
p.name: p.default
for p in signature.parameters.values()
if p.default != inspect._empty
}
filter_keys = [
param.name
for param in signature.parameters.values()
if param.kind == param.POSITIONAL_OR_KEYWORD
]
return {**defaults, **dict(zip(filter_keys, args)), **kwargs}