code: def get_empty_parameterset_mark(config, argnames, func):
      from ..nodes import Collector
  
      requested_mark = config.getini(EMPTY_PARAMETERSET_OPTION)
      if requested_mark in ("", None, "skip"):
          mark = MARK_GEN.skip
      elif requested_mark == "xfail":
          mark = MARK_GEN.xfail(run=False)
      elif requested_mark == "fail_at_collect":
          f_name = func.__name__
          _, lineno = getfslineno(func)
          raise Collector.CollectError(
              "Empty parameter set in '%s' at line %d"
              % (f_name, lineno + 1)
          )
      else:
          raise LookupError(requested_mark)
      fs, lineno = getfslineno(func)
      reason = "got empty parameter set %r, function %s at %s:%d" % (
          argnames,
          func.__name__,
          fs,
          lineno,
      )
      return mark(reason=reason)
  
imports: import inspect
  import warnings
  from collections import namedtuple
  from operator import attrgetter
  import attr
  import six
  from ..compat import ascii_escaped
  from ..compat import ATTRS_EQ_FIELD
  from ..compat import getfslineno
  from ..compat import MappingMixin
  from ..compat import NOTSET
  from _pytest.deprecated import PYTEST_PARAM_UNKNOWN_KWARGS
  from _pytest.outcomes import fail
  from _pytest.warning_types import PytestUnknownMarkWarning
label_desc: Use image node_id 3 for calling a global function with example usage: get_empty_parameterset_mark(config, argnames, func) and returns: mark