import typing
import functools


def build_simple_validator(func: typing.Callable, *args, **kwargs) -> typing.Callable[[typing.Any], typing.Any]:
    """Build a ready-to-use simple validator out of a function.

    Args:
        - func: callable, the function to be called to validate an input
        - args: list, args to partially apply to func
        - kwargs: dict, kwargs to partially apply to func

    Returns:
        validator: functools.partial, a partial function based on ``func``, with ``args`` and ``kwargs`` partially
                   applied and run through functools.update_wrapper
    """
    validator = functools.partial(func, *args, **kwargs)
    return functools.update_wrapper(validator, func)