<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_certifier():
 """ Decorator that can wrap raw functions to create a certifier function. Certifier functions support partial application. If a function wrapped by `make_certifier` is called with a value as its first argument it will be certified immediately. If no value is passed, then it will return a function that can be called at a later time. Assuming that `certify_something` has been decorated by `make_certifier`: Is equivalent to: """


    def decorator(func):
        @six.wraps(func)
        def wrapper(value=_undefined, **kwargs):
            def certify(val):
                if is_enabled():
                    exec_func(func, val, **kwargs)
                    return val

            if value is not _undefined:
                return certify(value)
            else:
                return certify

        return wrapper

    return decorator