Decorator/Wrapper to verify the input is an acceptable state
    prior to calling a function on it

    :param f: <function>  to call
    :param args: <tuple> positional args
    :param kwargs: <dict> keyword args
    :return: wrapped function return

def wrap_good_state(func_, *args, **kwargs):
    """
    Decorator/Wrapper to verify the input is an acceptable state
    prior to calling a function on it

    :param f: <function>  to call
    :param args: <tuple> positional args
    :param kwargs: <dict> keyword args
    :return: wrapped function return
    """
    if not verify_state(args[0]):
        raise InvalidState("{} is not a valid state".format(args[0]))
    return func_(*args, **kwargs)