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 thePrivateSetIntersectionprotocol.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 thealgorithmis 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
fields_dict : ClassVar[Dict[str, marshmallow.fields.Field]]
- static
nested_fields : ClassVar[Dict[str, Mapping[str, Any]]]