code: def __init__(
      self,
      session_id,
      computing_session: KVTableContext,
      party: PartyMeta,
      parties: typing.List[PartyMeta],
      mq,
      max_message_size,
      conf=None,
      default_partition_num=None,
  ):
      self._mq = mq
      self._topic_map = {}
      self._channels_map = {}
      self._message_cache = {}
      self._max_message_size = max_message_size
      if self._max_message_size is None:
          self._max_message_size = self.get_default_max_message_size()
      self._default_partition_num = default_partition_num
      self._conf = conf
      self.computing_session = computing_session
  
      super().__init__(session_id, party, parties)
  
      # TODO: remove this
      self._party = Party(party[0], party[1])
  
imports: import json
  import logging
  import sys
  import typing
  from typing import List
  from fate.arch.computing.api import KVTableContext
  from fate.arch.federation.api import Federation, PartyMeta, TableMeta
  from ._datastream import Datastream
  from ._parties import Party
label_desc: Use image node_id 1 to create a new MessageQueueBasedFederation object from inherited base classes: Federation with example: obj = MessageQueueBasedFederation(session_id, computing_session, party, parties, mq, max_message_size, conf, default_partition_num)