code: def _broadcast(self, ctx, data, suffix, party_idx=-1):
      self._check_party_id(party_idx)
      if party_idx == -1:
          ctx.guest.put(suffix, data)
          ctx.hosts.put(suffix, data)
      elif party_idx == 0:
          ctx.guest.put(suffix, data)
      else:
          ctx.hosts[party_idx - 1].put(suffix, data)
  
imports: import logging
  from typing import Optional
  import numpy
  import torch
  from fate.arch import Context
  from fate.arch.protocol.secure_aggregation._secure_aggregation import SecureAggregatorClient
  from fate.arch.protocol.secure_aggregation._secure_aggregation import SecureAggregatorServer
label_desc: Use image node_id 4 for calling the BaseAggregatorServer obj's underlying member method code with example usage: obj._broadcast(ctx, data, suffix, party_idx) without return types