code: def __init__(self, worker_type):
      # type: (str, dict) -> None
      self._worker_type = worker_type
  
      # Sub-process launched and poller used
      self._process = None
      self._poller = None
  
      # Retry counts when needing to send a MUST_SEND message
      self._send_mustsend_remaining_tries = 0
      # Keep track of the `mustsend` across restarts
      self._cached_mustsend = None
      # Tracks if a previous message had an error
      self._prev_message_error = False
  
      self.start()
  
imports: from __future__ import print_function
  import subprocess
  import fcntl
  import select
  import os
  import sys
  import platform
  from fcntl import F_SETFL
  from os import O_NONBLOCK
  from .sidecar_messages import Message, MessageTypes
  from ..debug import debug
  from metaflow.tracing import inject_tracing_vars
label_desc: Use image node_id 1 to create a new SidecarSubProcess object from inherited base classes: object with example: obj = SidecarSubProcess(worker_type)