code: def pytest_runtest_setup(item):
      # Check if skip or skipif are specified as pytest marks
      item._skipped_by_mark = False
      eval_skipif = MarkEvaluator(item, "skipif")
      if eval_skipif.istrue():
          item._skipped_by_mark = True
          skip(eval_skipif.getexplanation())
  
      for skip_info in item.iter_markers(name="skip"):
          item._skipped_by_mark = True
          if "reason" in skip_info.kwargs:
              skip(skip_info.kwargs["reason"])
          elif skip_info.args:
              skip(skip_info.args[0])
          else:
              skip("unconditional skip")
  
      item._evalxfail = MarkEvaluator(item, "xfail")
      check_xfail_no_run(item)
  
file_path: catboost/contrib/python/pytest/py2/_pytest/skipping.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from _pytest.config import hookimpl
  from _pytest.mark.evaluate import MarkEvaluator
  from _pytest.outcomes import fail
  from _pytest.outcomes import skip
  from _pytest.outcomes import xfail
label_desc: Use image node_id 3 for calling a global function with example usage: pytest_runtest_setup(item) without return types