code: def _pull_bytes(
      self, name: str, tag: str, parties: typing.List[PartyMeta]
  ) -> typing.List:
      _parties = [Party(role=p[0], party_id=p[1]) for p in parties]
      rtn = []
      party_topic_infos = self._get_party_topic_infos_by_name(
          _parties, name
      )
      channel_infos = self._get_channels(
          party_topic_infos=party_topic_infos
      )
      for i, info in enumerate(channel_infos):
          obj = self._receive_obj(info, name, tag)
          rtn.append(obj)
  
      return rtn
  
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 8 for calling the MessageQueueBasedFederation obj's underlying member method code with example usage: obj._pull_bytes(name, tag, parties) and returns: rtn