code: def from_conf(
      federation_session_id: str,
      computing_session,
      party: PartyMeta,
      parties: List[PartyMeta],
      route_table: dict,
      host: str,
      port: int,
      mng_port: int,
      base_user: str,
      base_password: str,
      mode: str,
      max_message_size: Optional[int],
      rabbitmq_run: dict = {},
      connection: dict = {},
  ):
      LOGGER.debug(
          f"federation_session_id={federation_session_id}, party={party}, parties={parties},  route_table={route_table}, rabbitmq_run={rabbitmq_run}",
      )
      union_name = federation_session_id
      policy_id = federation_session_id
      rabbit_manager = RabbitManager(
          base_user, base_password, f"{host}:{mng_port}", rabbitmq_run
      )
      rabbit_manager.create_user(union_name, policy_id)
      mq = MQ(host, port, union_name, policy_id, route_table)
  
      return RabbitmqFederation(
          federation_session_id,
          computing_session,
          party,
          parties,
          mq,
          rabbit_manager,
          max_message_size,
          connection,
          mode,
      )
  
imports: import json
  from logging import getLogger
  from typing import List, Optional
  from fate.arch.federation.api import PartyMeta
  from fate.arch.federation.message_queue import MessageQueueBasedFederation, Party
  from ._mq_channel import MQChannel
  from ._rabbit_manager import RabbitManager
label_desc: Use image node_id 1 for calling the RabbitmqFederation obj's underlying member method code with example usage: obj.from_conf(federation_session_id, computing_session, party, parties, route_table, host, port, mng_port, base_user, base_password, mode, max_message_size, rabbitmq_run, connection) and returns: RabbitmqFederation