code: def submit(self, trial_run_fn, trials: Iterable, timeout=None):
      from powerlift.run import __main__ as runner
  
      self._store.add_trial_run_fn(
          [x.id for x in trials], trial_run_fn, self._wheel_filepaths
      )
      for trial in trials:
          if self._pool is None:
              try:
                  res = runner.run_trials(
                      [trial.id], self._store.uri, timeout, False
                  )
                  self._trial_id_to_result[trial.id] = res
              except Exception as e:
                  self._trial_id_to_result[trial.id] = e
                  if self._raise_exception:
                      raise e
          else:
              self._trial_id_to_result[
                  trial.id
              ] = self._pool.apply_async(
                  runner.run_trials,
                  (
                      [trial.id],
                      self._store.uri,
                      timeout,
                      self._raise_exception,
                  ),
                  error_callback=handle_err,
              )
  
file_path: interpret/python/powerlift/src/powerlift/executors/localmachine.py
imports: from powerlift.bench.store import Store
  from powerlift.executors.base import Executor
  from multiprocessing import Pool
  from typing import Iterable, List
  from powerlift.executors.base import handle_err
label_desc: Use image node_id 3 for calling the LocalMachine obj's underlying member method code with example usage: obj.submit(trial_run_fn, trials, timeout) without return types