code: def knownfailureif(fail_condition, msg=None):
      """
      Make function raise KnownFailureTest exception if given condition is true.
  
      If the condition is a callable, it is used at runtime to dynamically
      make the decision. This is useful for tests that may require costly
      imports, to delay the cost until the test suite is actually executed.
  
      Parameters
      ----------
      fail_condition : bool or callable
          Flag to determine whether to mark the decorated test as a known
          failure (if True) or not (if False).
      msg : str, optional
          Message to give on raising a KnownFailureTest exception.
          Default is None.
  
      Returns
      -------
      decorator : function
          Decorator, which, when applied to a function, causes SkipTest
          to be raised when `skip_condition` is True, and the function
          to be called normally otherwise.
  
      Notes
      -----
      The decorator itself is decorated with the ``nose.tools.make_decorator``
      function in order to transmit function name, and various other metadata.
  
      """
      if msg is None:
          msg = "Test skipped due to known failure"
  
      # Allow for both boolean or callable known failure conditions.
      if callable(fail_condition):
          fail_val = lambda: fail_condition()
      else:
          fail_val = lambda: fail_condition
  
      def knownfail_decorator(f):
          # Local import to avoid a hard nose dependency and only incur the
          # import time overhead at actual test-time.
          import nose
  
          def knownfailer(*args, **kwargs):
              if fail_val():
                  raise KnownFailureTest(msg)
              else:
                  return f(*args, **kwargs)
  
          return nose.tools.make_decorator(f)(knownfailer)
  
      return knownfail_decorator
  
imports: import warnings
  from ._numpy_testing_utils import WarningManager
label_desc: Use image node_id 4 for calling a global function with example usage: knownfailureif(fail_condition, msg) and returns: knownfail_decorator, nose, f