code: def __init__(
      self, session_id: str, party: PartyMeta, parties: List[PartyMeta]
  ):
      logger.debug(
          f"[federation]initializing({self.__class__.__name__}): {session_id=}, {party=}, {parties=}"
      )
      if session_id is None:
          raise ValueError("session_id is None")
      self._session_id = session_id
      self._local_party = party
      self._parties = parties
      self._push_history = set()
      self._pull_history = set()
  
imports: import logging
  import typing
  from typing import List
  from fate.arch.trace import federation_push_table_trace, federation_pull_table_trace, federation_push_bytes_trace, federation_pull_bytes_trace
  from ._table_meta import TableMeta
  from ._type import PartyMeta
label_desc: Use image node_id 1 to create a new Federation object  with example: obj = Federation(session_id, party, parties)