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