code: def _bootstrap():
      """Parse arguments and dispatch to main()."""
  
      # This hackery is necessary to add the forwarded IWYU args to the
      # usage and help strings.
      def customize_usage(parser):
          """Rewrite the parser's format_usage."""
          original_format_usage = parser.format_usage
          parser.format_usage = (
              lambda: original_format_usage().rstrip()
              + " -- [<IWYU args>]"
              + os.linesep
          )
  
      def customize_help(parser):
          """Rewrite the parser's format_help."""
          original_format_help = parser.format_help
  
          def custom_help():
              """Customized help string, calls the adjusted format_usage."""
              helpmsg = original_format_help()
              helplines = helpmsg.splitlines()
              helplines[0] = parser.format_usage().rstrip()
              return os.linesep.join(helplines) + os.linesep
  
          parser.format_help = custom_help
  
      # Parse arguments
      parser = argparse.ArgumentParser(
          description="Include-what-you-use compilation database driver.",
          epilog="Assumes include-what-you-use is available on the PATH.",
      )
      customize_usage(parser)
      customize_help(parser)
  
      parser.add_argument(
          "-v",
          "--verbose",
          action="store_true",
          help="Print IWYU commands",
      )
      parser.add_argument(
          "-o",
          "--output-format",
          type=str,
          choices=FORMATTERS.keys(),
          default=DEFAULT_FORMAT,
          help="Output format (default: %s)" % DEFAULT_FORMAT,
      )
      parser.add_argument(
          "-p",
          metavar="<build-path>",
          required=True,
          help="Compilation database path",
          dest="dbpath",
      )
      parser.add_argument(
          "source",
          nargs="*",
          help="Zero or more source files to run IWYU on. "
          "Defaults to all in compilation database.",
      )
  
      def partition_args(argv):
          """Split around '--' into driver args and IWYU args."""
          try:
              double_dash = argv.index("--")
              return argv[:double_dash], argv[double_dash + 1 :]
          except ValueError:
              return argv, []
  
      argv, iwyu_args = partition_args(sys.argv[1:])
      args = parser.parse_args(argv)
  
      sys.exit(
          main(
              args.dbpath,
              args.source,
              args.verbose,
              FORMATTERS[args.output_format],
              iwyu_args,
          )
      )
  
file_path: arrow/cpp/build-support/iwyu/iwyu_tool.py
imports: import os
  import sys
  import json
  import argparse
  import subprocess
  import re
  import logging
label_desc: Use image node_id 6 for calling a global function with example usage: _bootstrap() and returns: unknown, argv,  argv, argv,  list