code: def _check_signature(
      fn: Callable, fn_description: str, *args: Any, **kwargs: Any
  ) -> None:
      # if handler with filter, check the handler rather than the decorator
      if hasattr(fn, "_parent"):
          signature = inspect.signature(fn._parent())
      else:
          signature = inspect.signature(fn)
      try:  # try without engine
          signature.bind(*args, **kwargs)
      except TypeError as exc:
          fn_params = list(signature.parameters)
          exception_msg = str(exc)
          passed_params = list(args) + list(kwargs)
          raise ValueError(
              f"Error adding {fn} '{fn_description}': "
              f"takes parameters {fn_params} but will be called with {passed_params}"
              f"({exception_msg})."
          )
  
label_desc: Use image node_id 1 for calling a global function with example usage: _check_signature(fn, fn_description) without return types