code: def _show_fixture_action(
      fixturedef: FixtureDef[object], msg: str
  ) -> None:
      config = fixturedef._fixturemanager.config
      capman = config.pluginmanager.getplugin("capturemanager")
      if capman:
          capman.suspend_global_capture()
  
      tw = config.get_terminal_writer()
      tw.line()
      # Use smaller indentation the higher the scope: Session = 0, Package = 1, etc.
      scope_indent = list(reversed(Scope)).index(fixturedef._scope)
      tw.write(" " * 2 * scope_indent)
      tw.write(
          "{step} {scope} {fixture}".format(
              step=msg.ljust(8),  # align the output to TEARDOWN
              scope=fixturedef.scope[0].upper(),
              fixture=fixturedef.argname,
          )
      )
  
      if msg == "SETUP":
          deps = sorted(
              arg for arg in fixturedef.argnames if arg != "request"
          )
          if deps:
              tw.write(" (fixtures used: {})".format(", ".join(deps)))
  
      if hasattr(fixturedef, "cached_param"):
          tw.write(f"[{saferepr(fixturedef.cached_param, maxsize=42)}]")  # type: ignore[attr-defined]
  
      tw.flush()
  
      if capman:
          capman.resume_global_capture()
  
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 4 for calling a global function with example usage: _show_fixture_action(fixturedef, msg) without return types