code: def informative_failure_on_none(func: Callable) -> Any:
      # pyre-fixme[3]: Return annotation cannot be `Any`.
      # pyre-fixme[2]: Parameter must be annotated.
      def function_wrapper(*args, **kwargs) -> Any:
          res = func(*args, **kwargs)
          if res is None:
              raise NotImplementedError(
                  f"{args[0].name} does not specify property "
                  f'"{func.__name__}".'
              )
          return not_none(res)
  
      return function_wrapper
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Callable, List, Optional, Tuple, Union
  import numpy
  import torch
  from ax.utils.common.docutils import copy_doc
  from ax.utils.common.typeutils import checked_cast, not_none
  from botorch.test_functions import synthetic
label_desc: Use image node_id 1 for calling a global function with example usage: informative_failure_on_none(func) and returns: function_wrapper, not_none