code: def inspect(files, inspect_file, sqlite_extensions):
      """
      Generate JSON summary of provided database files
  
      This can then be passed to "datasette --inspect-file" to speed up count
      operations against immutable database files.
      """
      app = Datasette(
          [], immutables=files, sqlite_extensions=sqlite_extensions
      )
      loop = asyncio.get_event_loop()
      inspect_data = loop.run_until_complete(
          inspect_(files, sqlite_extensions)
      )
      if inspect_file == "-":
          sys.stdout.write(json.dumps(inspect_data, indent=2))
      else:
          with open(inspect_file, "w") as fp:
              fp.write(json.dumps(inspect_data, indent=2))
  
imports: import asyncio
  import uvicorn
  import click
  from click import formatting
  from click.types import CompositeParamType
  from click_default_group import DefaultGroup
  import functools
  import json
  import os
  import pathlib
  from runpy import run_module
  import shutil
  from subprocess import call
  import sys
  import textwrap
  import webbrowser
  from .app import OBSOLETE_SETTINGS, Datasette, DEFAULT_SETTINGS, SETTINGS, SQLITE_LIMIT_ATTACHED, pm
  from .utils import LoadExtension, StartupError, check_connection, find_spatialite, parse_metadata, ConnectionProblem, SpatialiteConnectionProblem, initial_path_for_datasette, pairs_to_nested_config, temporary_docker_directory, fail_if_plugins_in_metadata, value_as_boolean, SpatialiteNotFound, StaticMount, ValueAsBooleanError
  from .utils.sqlite import sqlite3
  from .utils.testing import TestClient
  from .version import __version__
label_desc: Use image node_id 3 for calling a global function with example usage: inspect(files, inspect_file, sqlite_extensions) without return types