old_contents: #
  #  Copyright 2019 The FATE Authors. All Rights Reserved.
  #
  #  Licensed under the Apache License, Version 2.0 (the "License");
  #  you may not use this file except in compliance with the License.
  #  You may obtain a copy of the License at
  #
  #      http://www.apache.org/licenses/LICENSE-2.0
  #
  #  Unless required by applicable law or agreed to in writing, software
  #  distributed under the License is distributed on an "AS IS" BASIS,
  #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  #  See the License for the specific language governing permissions and
  #  limitations under the License.
  #
  
  
  from enum import IntEnum
  
  import typing
  
  
  class WorkMode(IntEnum):
      STANDALONE = 0
      CLUSTER = 1
  
      def is_standalone(self):
          return self.value == self.STANDALONE
  
      def is_cluster(self):
          return self.value == self.CLUSTER
  
  
  class Backend(IntEnum):
      EGGROLL = 0
      SPARK = 1
  
      def is_spark(self):
          return self.value == self.SPARK
  
      def is_eggroll(self):
          return self.value == self.EGGROLL
  
  
  class Party(object):
      """
      Uniquely identify
      """
  
      def __init__(self, role, party_id):
          self.role = role
          self.party_id = party_id
  
      def __hash__(self):
          return (self.role, self.party_id).__hash__()
  
      def __str__(self):
          return f"Party(role={self.role}, party_id={self.party_id})"
  
      def __repr__(self):
          return self.__str__()
  
      def __lt__(self, other):
          return (self.role, self.party_id) < (other.role, other.party_id)
  
      def __eq__(self, other):
          return self.party_id == other.party_id and self.role == other.role
  
      def to_pb(self):
          from arch.api.proto import federation_pb2
          return federation_pb2.Party(partyId=f"{self.party_id}", name=self.role)
  
  
  class _FederationParties(object):
      def __init__(self, party, parties):
          self._party = party
          self._parties = parties
  
      @property
      def local_party(self) -> Party:
          return self._party
  
      @property
      def all_parties(self):
          return [party for parties in self._parties.values for party in parties]
  
      def roles_to_parties(self, roles: typing.Iterable) -> list:
          return [party for role in roles for party in self._parties[role]]
  
      def role_to_party(self, role, idx) -> Party:
          return self._parties[role][idx]
  
new_contents: #
  #  Copyright 2019 The FATE Authors. All Rights Reserved.
  #
  #  Licensed under the Apache License, Version 2.0 (the "License");
  #  you may not use this file except in compliance with the License.
  #  You may obtain a copy of the License at
  #
  #      http://www.apache.org/licenses/LICENSE-2.0
  #
  #  Unless required by applicable law or agreed to in writing, software
  #  distributed under the License is distributed on an "AS IS" BASIS,
  #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  #  See the License for the specific language governing permissions and
  #  limitations under the License.
  #
  
  
  from enum import IntEnum
  
  import typing
  
  
  class WorkMode(IntEnum):
      STANDALONE = 0
      CLUSTER = 1
  
      def is_standalone(self):
          return self.value == self.STANDALONE
  
      def is_cluster(self):
          return self.value == self.CLUSTER
  
  
  class Backend(IntEnum):
      EGGROLL = 0
      SPARK = 1
  
      def is_spark(self):
          return self.value == self.SPARK
  
      def is_eggroll(self):
          return self.value == self.EGGROLL
  
  
  class Party(object):
      """
      Uniquely identify
      """
  
      def __init__(self, role, party_id):
          self.role = role
          self.party_id = party_id
  
      def __hash__(self):
          return (self.role, self.party_id).__hash__()
  
      def __str__(self):
          return f"Party(role={self.role}, party_id={self.party_id})"
  
      def __repr__(self):
          return self.__str__()
  
      def __lt__(self, other):
          return (self.role, self.party_id) < (other.role, other.party_id)
  
      def __eq__(self, other):
          return self.party_id == other.party_id and self.role == other.role
  
  
  class _FederationParties(object):
      def __init__(self, party, parties):
          self._party = party
          self._parties = parties
  
      @property
      def local_party(self) -> Party:
          return self._party
  
      @property
      def all_parties(self):
          return [party for parties in self._parties.values for party in parties]
  
      def roles_to_parties(self, roles: typing.Iterable) -> list:
          return [party for role in roles for party in self._parties[role]]
  
      def role_to_party(self, role, idx) -> Party:
          return self._parties[role][idx]
  
subject: remove to_pb