code: def cluster(request, ipython_dir):
      """Setup IPython parallel cluster"""
      setup()
      try:
          yield
      finally:
          teardown()
  
imports: import inspect
  import logging
  import os
  import sys
  from contextlib import contextmanager
  from pathlib import Path
  from subprocess import check_call, check_output
  from tempfile import NamedTemporaryFile, TemporaryDirectory
  from unittest import mock
  import IPython.paths
  import pytest
  import zmq
  from IPython.core.profiledir import ProfileDir
  from IPython.terminal.interactiveshell import TerminalInteractiveShell
  from traitlets.config import Config
  import ipyparallel
  from .None import setup, teardown
label_desc: Use image node_id 5 for calling a global function with example usage: cluster(request, ipython_dir) without return types