code: def pytest_fixture_setup(
      fixturedef: FixtureDef[object], request: SubRequest
  ) -> Generator[None, None, None]:
      yield
      if request.config.option.setupshow:
          if hasattr(request, "param"):
              # Save the fixture parameter so ._show_fixture_action() can
              # display it now and during the teardown (in .finish()).
              if fixturedef.ids:
                  if callable(fixturedef.ids):
                      param = fixturedef.ids(request.param)
                  else:
                      param = fixturedef.ids[request.param_index]
              else:
                  param = request.param
              fixturedef.cached_param = param  # type: ignore[attr-defined]
          _show_fixture_action(fixturedef, "SETUP")
  
file_path: catboost/contrib/python/pytest/py3/_pytest/setuponly.py
imports: from typing import Generator
  from typing import Optional
  from typing import Union
  import pytest
  from _pytest._io.saferepr import saferepr
  from _pytest.config import Config
  from _pytest.config import ExitCode
  from _pytest.config.argparsing import Parser
  from _pytest.fixtures import FixtureDef
  from _pytest.fixtures import SubRequest
  from _pytest.scope import Scope
label_desc: Use image node_id 2 for calling a global function with example usage: pytest_fixture_setup(fixturedef, request) without return types