code: def send(self, msg, retries=3):
      if msg.msg_type == MessageTypes.MUST_SEND:
          # If this is a must-send message, we treat it a bit differently. A must-send
          # message has to be properly sent before any of the other best effort messages.
          self._cached_mustsend = msg.payload
          self._send_mustsend_remaining_tries = MUST_SEND_RETRY_TIMES
          self._send_mustsend(retries)
      else:
          # Ignore return code for send.
          self._send_internal(msg, retries=retries)
  
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 4 for calling the SidecarSubProcess obj's underlying member method code with example usage: obj.send(msg, retries) without return types