Signed-off-by: András Schmelczer <andras@schmelczer.dev>
This commit is contained in:
Andras Schmelczer 2022-04-10 14:36:57 +02:00
commit 91554384f2

View file

@ -1,5 +1,5 @@
from functools import wraps
from typing import Any, Callable, Dict, List
from typing import Any, Callable, Dict
from ..exceptions import ArgumentValidationError
from ..helper import get_args
@ -15,15 +15,13 @@ def log_argument(
actual_name = f"arg:{func.__name__}:{argument_name}"
@wraps(func)
def wrapper(*args: List[Any], **kwargs: Dict[str, Any]) -> Any:
def wrapper(*args: Any, **kwargs: Dict[str, Any]) -> Any:
arguments = get_args(func, args, kwargs)
argument = arguments[argument_name]
expected_type = func.__annotations__.get(argument_name)
if (
expected_type is not None and not isinstance(argument, expected_type)
):
if expected_type is not None and not isinstance(argument, expected_type):
raise ArgumentValidationError(
f"Argument {argument_name} in {func.__name__} has the wrong type, expected: {expected_type.__name__}, got: {type(argument).__name__}"
)