code: def _compare_flight_implementations(
      self, producer: Tester, consumer: Tester
  ):
      log("##########################################################")
      log(
          "Flight: {0} serving, {1} requesting".format(
              producer.name, consumer.name
          )
      )
      log("##########################################################")
  
      case_runner = partial(
          self._run_flight_test_case, producer, consumer
      )
      self._run_test_cases(
          case_runner, self.json_files + self.flight_scenarios
      )
  
imports: from collections import namedtuple
  from concurrent.futures import ThreadPoolExecutor
  from functools import partial
  import glob
  import gzip
  import itertools
  import os
  import sys
  import tempfile
  import traceback
  from typing import Callable, List, Optional
  from .None import cdata
  from .scenario import Scenario
  from .tester import Tester, CDataExporter, CDataImporter
  from .tester_cpp import CppTester
  from .tester_go import GoTester
  from .tester_rust import RustTester
  from .tester_java import JavaTester
  from .tester_js import JSTester
  from .tester_csharp import CSharpTester
  from .util import guid, printer
  from .util import SKIP_C_ARRAY, SKIP_C_SCHEMA, SKIP_FLIGHT, SKIP_IPC
  from ..utils.source import ARROW_ROOT_DEFAULT
  from .None import datagen
label_desc: Use image node_id 11 for calling the IntegrationRunner obj's underlying member method code with example usage: obj._compare_flight_implementations(producer, consumer) without return types