code: def __init__(
      self,
      settings: SettingsStatic,
      record_q: "Queue[pb.Record]",
      result_q: "Queue[pb.Result]",
      sender_q: "Queue[pb.Record]",
      interface: InterfaceQueue,
      context_keeper: context.ContextKeeper,
  ):
      self._settings = settings
      self._record_q = record_q
      self._result_q = result_q
      self._sender_q = sender_q
      self._interface = interface
      self._context_keeper = context_keeper
  
      # TODO(cancel_paused): implement me
      # self._sender_cancel_set = set()
  
      self._ds = None
      self._flow_control = None
      self._status_report = None
      self._record_num = 0
      self._telemetry_obj = tpb.TelemetryRecord()
      self._telemetry_overflow = False
      self._use_flow_control = not (
          self._settings._flow_control_disabled
          or self._settings._offline
      )
  
imports: import logging
  from typing import TYPE_CHECKING, Callable, Optional
  from wandb.proto import wandb_internal_pb2
  from wandb.proto import wandb_telemetry_pb2
  from ..interface.interface_queue import InterfaceQueue
  from ..lib import proto_util, telemetry, tracelog
  from .None import context, datastore, flow_control
  from .settings_static import SettingsStatic
label_desc: Use image node_id 1 to create a new WriteManager object  with example: obj = WriteManager(settings, record_q, result_q, sender_q, interface, context_keeper)