code: def start(self):
      if (
          self._worker_type is not None
          and self._worker_type.startswith(NULL_SIDECAR_PREFIX)
      ) or (
          platform.system() == "Darwin" and sys.version_info < (3, 0)
      ):
          # If on darwin and running python 2 disable sidecars
          # there is a bug with importing poll from select in some cases
          #
          # TODO: Python 2 shipped by Anaconda allows for
          # `from select import poll`. We can consider enabling sidecars
          # for that distribution if needed at a later date.
          self._poller = NullPoller()
          self._process = None
          self._logger("No sidecar started")
      else:
          self._starting = True
          from select import poll
  
          python_version = sys.executable
          cmdline = [
              python_version,
              "-u",
              os.path.dirname(__file__) + "/sidecar_worker.py",
              self._worker_type,
          ]
          self._logger("Starting sidecar")
          debug.sidecar_exec(cmdline)
  
          self._process = self._start_subprocess(cmdline)
  
          if self._process is not None:
              fcntl.fcntl(self._process.stdin, F_SETFL, O_NONBLOCK)
              self._poller = poll()
              self._poller.register(
                  self._process.stdin.fileno(), select.POLLOUT
              )
          else:
              # unable to start subprocess, fallback to Null sidecar
              self._logger("Unable to start subprocess")
              self._poller = NullPoller()
  
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 2 for calling the SidecarSubProcess obj's underlying member method code with example usage: obj.start() without return types