(
        self,
        obj,
        parties: Union[typing.List[Party], Party],
        suffix: Union[typing.Any, typing.Tuple] = tuple(),
    )
remote object to specified parties

        Parameters
        ----------
        obj: object or table
           object or table to remote
        parties: typing.List[Party]
           parties to remote object/table to
        suffix: str or tuple of str
           suffix used to distinguish federation with in variable

        Returns
        -------
        None
remote object to specified parties
remote object to specified parties
def remote_parties(
        self,
        obj,
        parties: Union[typing.List[Party], Party],
        suffix: Union[typing.Any, typing.Tuple] = tuple(),
    ):
        """
        remote object to specified parties

        Parameters
        ----------
        obj: object or table
           object or table to remote
        parties: typing.List[Party]
           parties to remote object/table to
        suffix: str or tuple of str
           suffix used to distinguish federation with in variable

        Returns
        -------
        None
        """
        session = get_session()
        if isinstance(parties, Party):
            parties = [parties]
        if not isinstance(suffix, tuple):
            suffix = (suffix,)
        tag = FederationTagNamespace.generate_tag(*suffix)

        for party in parties:
            if party.role not in self._dst:
                raise RuntimeError(
                    f"not allowed to remote object to {party} using {self._name}"
                )
        local = session.parties.local_party.role
        if local not in self._src:
            raise RuntimeError(
                f"not allowed to remote object from {local} using {self._name}"
            )

        name = self._short_name if self._use_short_name else self._name

        timer = profile.federation_remote_timer(name, self._name, tag, local, parties)
        session.federation.remote(
            v=obj, name=name, tag=tag, parties=parties, gc=self._remote_gc
        )
        timer.done(session.federation)

        self._remote_gc.gc()
def remote_parties ( self , obj , parties : Union [ typing . List [ Party ] , Party ] , suffix : Union [ typing . Any , typing . Tuple ] = tuple ( ) , ) : session = get_session ( ) if isinstance ( parties , Party ) : parties = [ parties ] if not isinstance ( suffix , tuple ) : suffix = ( suffix , ) tag = FederationTagNamespace . generate_tag ( * suffix ) for party in parties : if party . role not in self . _dst : raise RuntimeError ( f"not allowed to remote object to {party} using {self._name}" ) local = session . parties . local_party . role if local not in self . _src : raise RuntimeError ( f"not allowed to remote object from {local} using {self._name}" ) name = self . _short_name if self . _use_short_name else self . _name timer = profile . federation_remote_timer ( name , self . _name , tag , local , parties ) session . federation . remote ( v = obj , name = name , tag = tag , parties = parties , gc = self . _remote_gc ) timer . done ( session . federation ) self . _remote_gc . gc ( )