code: def code_cells_have_changed(notebook, nb_files):
      """The source for the code cells has not changed"""
      for nb_file in nb_files:
          if not os.path.exists(nb_file):
              return True
  
          nb_ref = read(nb_file)
  
          # Are the new code cells equals to those in the file?
          ref = [
              cell.source
              for cell in nb_ref.cells
              if cell.cell_type == "code"
          ]
          new = [
              cell.source
              for cell in notebook.cells
              if cell.cell_type == "code"
          ]
  
          if ref != new:
              return True
  
      return False
  
imports: import argparse
  import glob
  import json
  import os
  import re
  import shlex
  import subprocess
  import sys
  import warnings
  from copy import copy
  from tempfile import NamedTemporaryFile
  from .combine import combine_inputs_with_outputs
  from .compare import NotebookDifference, compare, test_round_trip_conversion
  from .config import load_jupytext_config, notebook_formats
  from .formats import _BINARY_FORMAT_OPTIONS, _VALID_FORMAT_OPTIONS, JUPYTEXT_FORMATS, check_auto_ext, check_file_version, long_form_multiple_formats, long_form_one_format, short_form_one_format
  from .header import recursive_update
  from .jupytext import create_prefix_dir, read, reads, write, writes
  from .kernels import find_kernel_specs, get_kernel_spec, kernelspec_from_language
  from .languages import _SCRIPT_EXTENSIONS
  from .paired_paths import InconsistentPath, base_path, find_base_path_and_format, full_path, paired_paths
  from .pairs import latest_inputs_and_outputs, read_pair, write_pair
  from .version import __version__
label_desc: Use image node_id 19 for calling a global function with example usage: code_cells_have_changed(notebook, nb_files) and returns: False, True, True