code: def __init__(
      self, fail_cmds=None, cmd_to_callback=None, print_out=False
  ):
      self.calls = []
      self.cmd_to_callback = (
          cmd_to_callback or {}
      )  # type: Dict[str, Callable]
      self.print_out = print_out
      self.fail_cmds = fail_cmds or []
      self.call_response = {}
      self.ready_to_run = threading.Event()
      self.ready_to_run.set()
  
      self.lock = threading.RLock()
  
imports: import re
  import threading
  from subprocess import CalledProcessError
  from typing import Callable, Dict, List, Optional
  from ray.autoscaler.node_provider import NodeProvider
label_desc: Use image node_id 1 to create a new MockProcessRunner object  with example: obj = MockProcessRunner(fail_cmds, cmd_to_callback, print_out)