code: def pytest_runtest_setup(item: Item) -> None:
      if not isinstance(item, Function):
          return
      # Don't do nose style setup/teardown on direct unittest style classes.
      if isinstance(item, TestCaseFunction):
          return
  
      # Capture the narrowed type of item for the teardown closure,
      # see https://github.com/python/mypy/issues/2608
      func = item
  
      call_optional(func.obj, "setup", func.nodeid)
      func.addfinalizer(
          lambda: call_optional(func.obj, "teardown", func.nodeid)
      )
  
file_path: catboost/contrib/python/pytest/py3/_pytest/nose.py
imports: import warnings
  from _pytest.config import hookimpl
  from _pytest.deprecated import NOSE_SUPPORT
  from _pytest.fixtures import getfixturemarker
  from _pytest.nodes import Item
  from _pytest.python import Function
  from _pytest.unittest import TestCaseFunction
label_desc: Use image node_id 1 for calling a global function with example usage: pytest_runtest_setup(item) without return types