protocols
Protocols for inter-machine communication.
Federated protocol plugins can also be imported from this package.
Module
Submodules
- bitfount.federated.protocols.base - Pod communication protocols.
- bitfount.federated.protocols.ehr - Protocols related to EHR interactions.
- bitfount.federated.protocols.model_protocols - Protocols for remote/federated model training on data.
- bitfount.federated.protocols.resilience - Resilience handling for batch execution in federated protocols.
- bitfount.federated.protocols.results_only - Results Only protocol.
- bitfount.federated.protocols.types - Batch execution types and data structures for protocols.
- bitfount.federated.protocols.utils - Utility functions for federated protocols.
Classes
InferenceAndCSVReportWithAggregateReporting
class InferenceAndCSVReportWithAggregateReporting( *, algorithm: Sequence[Union[_InferenceAndCSVReportCompatibleAlgoFactory_, _InferenceAndCSVReportCompatibleModelAlgoFactory, _InferenceAndCSVReportCompatibleHuggingFaceAlgoFactory]], **kwargs: Any,):InferenceAndCSVReport protocol with eligible patient count aggregate reporting.
Use this protocol instead of InferenceAndCSVReport when the flow should report eligible patient counts to Grafana and generate an Excel patient tracker after each task completion.
Ancestors
Variables
algorithms : list[BaseCompatibleAlgoFactoryWorkerStandard | BaseCompatibleAlgoFactoryWorkerHubNeeded]- Returns the algorithms in the protocol.
Methods
dump
def dump(self) ‑> SerializedProtocol:Inherited from:
Returns the JSON-serializable representation of the protocol.
modeller
def modeller( self, *, mailbox: _ModellerMailbox, context: ProtocolContext, **kwargs: Any,) ‑> bitfount.federated.protocols.model_protocols.inference_csv_report._ModellerSide:Inherited from:
InferenceAndCSVReport.modeller :
Returns the Modeller side of the protocol.
run
def run( self, pod_identifiers: Collection[str], session: Optional[BitfountSession] = None, username: Optional[str] = None, hub: Optional[BitfountHub] = None, ms_config: Optional[MessageServiceConfig] = None, message_service: Optional[_MessageService] = None, pod_public_key_paths: Optional[Mapping[str, Path]] = None, identity_verification_method: IdentityVerificationMethod = IdentityVerificationMethod.OIDC_DEVICE_CODE, private_key_or_file: Optional[Union[RSAPrivateKey, Path]] = None, idp_url: Optional[str] = None, require_all_pods: bool = False, run_on_new_data_only: bool = False, project_id: Optional[str] = None, batched_execution: Optional[bool] = None, test_run: bool = False, force_rerun_failed_files: bool = True,) ‑> Optional[Any]:Inherited from:
Sets up a local Modeller instance and runs the protocol.
Arguments
pod_identifiers: The BitfountHub pod identifiers to run against.session: Optional. Session to use for authenticated requests. Created if needed.username: Username to run as. Defaults to logged in user.hub: BitfountHub instance. Default: hub.bitfount.com.ms_config: Message service config. Default: messaging.bitfount.com.message_service: Message service instance, created from ms_config if not provided. Defaults to "messaging.bitfount.com".pod_public_key_paths: Public keys of pods to be checked against.identity_verification_method: The identity verification method to use.private_key_or_file: Private key (to be removed).idp_url: The IDP URL.require_all_pods: If true raise PodResponseError if at least one pod identifier specified rejects or fails to respond to a task request.run_on_new_data_only: Whether to run the task on new datapoints only. Defaults to False.project_id: The project ID to run the task under.batched_execution: Whether to run the task in batched mode. Defaults to False.test_run: If True, runs the task in test mode, on a limited number of datapoints. Defaults to False.force_rerun_failed_files: If True, forces a rerun on files that the task previously failed on. If False, the task will skip files that have previously failed. Note: This option can only be enabled if both enable_batch_resilience and individual_file_retry_enabled are True. Defaults to True.
Returns Results of the protocol.
Raises
PodResponseError: If require_all_pods is true and at least one pod identifier specified rejects or fails to respond to a task request.ValueError: If attempting to train on multiple pods, and theDataStructuretable name is given as a string.
worker
def worker( self, *, mailbox: _WorkerMailbox, hub: BitfountHub, context: ProtocolContext, **kwargs: Any,) ‑> _WorkerSide:Inherited from:
InferenceAndCSVReport.worker :
Returns worker side of the InferenceAndCSVReport protocol.
Arguments
mailbox: Worker mailbox instance to allow communication to the modeller.hub:BitfountHubobject to use for communication with the hub.context: Optional. Run-time protocol context details for running.**kwargs: Additional keyword arguments.