Skip to main content

psi

Results Only protocol.

Classes

PrivateSetIntersection

class PrivateSetIntersection(    *,    algorithm: _PSICompatibleAlgoFactory_,    datasource: Optional[BaseSource] = None,    datasource_columns: Optional[List[str]] = None,    datasource_table: Optional[str] = None,    pod_columns: Optional[List[str]] = None,    pod_table: Optional[str] = None,    **kwargs: Any,):

Performs a private set intersection with the provided algorithm.

For more details, look at the algorithm description to understand how the intersection is computed.

Arguments

  • algorithm: The algorithm to run.
  • datasource: The modeller's datasource.
  • datasource_columns: The modeller's columns from their datasource on which the private set intersection will be computed as a list of strings. Defaults to None.
  • datasource_table: The modeller's table from their datasource, if the datasource is multitable, on which the private set intersection will be computed as a string. Defaults to None.
  • pod_columns: The pod's columns from their datasource on which the private set intersection will be computed as a list of strings. Defaults to None.
  • pod_table: The pod's table from their datasource, if the datasource is multitable, on which the private set intersection will be computed as a string. Defaults to None.

Attributes

  • name: The name of the protocol.
  • algorithm: The algorithm to run. This must be compatible with the PrivateSetIntersection protocol.
  • pod_columns: The pod's columns from their datasource on which the private set intersection will be computed as a list of strings. Defaults to None.
  • pod_table: The pod's table from their datasource, if the datasource is multitable, on which the private set intersection will be computed as a string. Defaults to None.

Raises

  • TypeError: If the algorithm is not compatible with the protocol.
  • PSINoDataSourceError: If you are trying to run the protocol without a datasource.

Ancestors

  • bitfount.federated.protocols.base._BaseProtocolFactory
  • abc.ABC
  • bitfount.federated.roles._RolesMixIn
  • bitfount.types._BaseSerializableObjectMixIn

Methods


def dump(self)> SerializedProtocol:

Returns the JSON-serializable representation of the protocol.

def modeller(    self, mailbox: _ModellerMailbox, **kwargs: Any,)> bitfount.federated.protocols.psi._ModellerSide:

Returns the modeller side of the PrivateSetIntersection protocol.

def worker(self, mailbox: _WorkerMailbox, hub: BitfountHub, **kwargs: Any)> _WorkerSide:

Returns the worker side of the PrivateSetIntersection protocol.

Variables

  • static algorithm : bitfount.federated.protocols.psi.PSICompatibleAlgoFactory
  • static nested_fields : ClassVar[Dict[str, Mapping[str, Any]]]