code: def is_tool(name):
      """Check whether `name` is on PATH and marked as executable."""
      # from whichcraft import which
      from shutil import which
  
      req_version = None
      if name is FLAKE_BINARY:
          req_version = FLAKE8_VERSION_REQUIRED
      elif name is BLACK_BINARY:
          req_version = BLACK_VERSION_REQUIRED
      elif name is ISORT_BINARY:
          req_version = ISORT_VERSION_REQUIRED
      if which(name) is None:
          LOG.error(
              f"{name} is not installed. Install the python package with:"
              f"pip install {name}=={req_version}"
          )
          sys.exit(1)
      else:
          try:
              installed_version = pkg_resources.get_distribution(
                  name
              ).version
          except pkg_resources.DistributionNotFound:
              installed_version = "not-found"
          if installed_version != req_version:
              LOG.warning(
                  f"EvaDB uses {name} {req_version}. The installed version is"
                  f" {installed_version} which can result in different results."
              )
  
file_path: evadb/script/formatting/formatter.py
imports: import argparse
  import functools
  import logging
  import os
  import re
  import subprocess
  import sys
  from pathlib import Path
  import asyncio
  import nbformat
  from nbformat.v4 import new_notebook, new_markdown_cell, new_code_cell
  from pathlib import Path
  import pkg_resources
label_desc: Use image node_id 2 for calling a global function with example usage: is_tool(name) without return types