docs: 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`:
          >>> certify_something(value, foo=1, bar=2)
  
      Is equivalent to:
          >>> certifier = certify_something(foo=1, bar=2)
          >>> certifier(value)
      """
  
      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