code: def check_notebook_format(notebook_file):
      # print(notebook_file)
      notebook_file_name = os.path.basename(notebook_file)
  
      # Ignore this notebook
      if notebook_file_name == "ignore_tag.ipynb":
          return True
  
      with open(notebook_file) as f:
          nb = nbformat.read(f, as_version=4)
  
      # Check that the notebook contains at least one cell
      if not nb.cells:
          LOG.error(f"ERROR: Notebook {notebook_file} has no cells")
          sys.exit(1)
  
      # Check that all cells have a valid cell type (code, markdown, or raw)
      for cell in nb.cells:
          if cell.cell_type not in ["code", "markdown", "raw"]:
              LOG.error(
                  f"ERROR: Notebook {notebook_file} contains an invalid cell type: {cell.cell_type}"
              )
              sys.exit(1)
  
      # Check that all code cells have a non-empty source code
      for cell in nb.cells:
          if cell.cell_type == "code" and not cell.source.strip():
              LOG.error(
                  f"ERROR: Notebook {notebook_file} contains an empty code cell"
              )
              sys.exit(1)
  
      # Check for "print(response)"
      # too harsh replaxing it
      # for cell in nb.cells:
      #     if cell.cell_type == 'code' and 'print(response)' in cell.source:
      #         LOG.error(f"ERROR: Notebook {notebook_file} contains an a cell with this content: {cell.source}")
      #         sys.exit(1)
  
      # Check for "Colab link"
      contains_colab_link = False
      for cell in nb.cells:
          if cell.cell_type == "markdown" and "colab" in cell.source:
              # Check if colab link is correct
              # notebook_file_name must match colab link
              if notebook_file_name in cell.source:
                  contains_colab_link = True
                  break
  
      if contains_colab_link is False:
          LOG.error(
              f"ERROR: Notebook {notebook_file} does not contain correct Colab link -- update the link."
          )
          sys.exit(1)
  
      return True
  
      # SKIP SPELL CHECK BY DEFAULT DUE TO PACKAGE DEPENDENCY
      # Need to install enchant-2 and aspell packages
      # apt-get install enchant-2 aspell
  
      import enchant
      from enchant.checker import SpellChecker
  
      chkr = SpellChecker("en_US")
  
      # Check spelling
      for cell in nb.cells:
          if cell.cell_type == "code":
              continue  # Skip code cells
          chkr.set_text(cell.source)
          for err in chkr:
              if err.word not in ignored_words:
                  LOG.warning(
                      f"WARNING: Notebook {notebook_file} contains the misspelled word: {err.word}"
                  )
  
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 5 for calling a global function with example usage: check_notebook_format(notebook_file) and returns: True, True