docstr: secure aggregation server
  Args:
      ranks: all ranks
      prefix: unique prefix for this aggregator
      is_mock: mock the aggregator, do not perform secure aggregation, for test only
docstr_tok: ["secure","aggregation","server","Args",":","ranks",":","all","ranks","prefix",":","unique","prefix","for","this","aggregator","is_mock",":","mock","the","aggregator",",","do","not","perform","secure","aggregation",",","for","test","only"]
code: def __init__(
      self,
      ranks,
      prefix: typing.Optional[str] = None,
      is_mock: bool = False,
  ):
      """
      secure aggregation server
      Args:
          ranks: all ranks
          prefix: unique prefix for this aggregator
          is_mock: mock the aggregator, do not perform secure aggregation, for test only
      """
      self.prefix = prefix
      self.ranks = ranks
      self._is_mock = is_mock
  
file_path: FATE/python/fate/arch/protocol/secure_aggregation/_secure_aggregation.py
imports: import typing
  import numpy
  from fate.arch import Context
  from fate.arch.protocol.diffie_hellman import DiffieHellman
  from fate_utils.secure_aggregation_helper import MixAggregate, RandomMix
label_desc: Use image node_id 1 to create a new SecureAggregatorServer object from inherited base classes: _SecureAggregatorMeta with example: obj = SecureAggregatorServer(ranks, prefix, is_mock)