Resolve Visibility of Aggregator Private Attributes in Experimental Workflow
Background
This PR solves the (Experimental Workflow Interface) Aggregator private attributes visible to Collaborators #1052
Change Description
- Created clones of the FLSpec object before starting flow execution in Aggregator to ensure that FLSpec object does not contain private attribues
- Removed the clone creation functionality from the next method of the
FLSpecclass - Updated Aggregator
do_taskmethod to handle thefilter_exclude_includefunctionality during the aggregator to collaborator transition. - Removed the
filter_exclude_includefunctionality from the next method of theFLSpecclass
Modifications
openfl/experimental/component/aggregator/aggregator.py openfl/experimental/interface/fl_spec.py tests/github/experimental/workspace/testcase_private_attributes/src/aggregator_private_attrs.py tests/github/experimental/workspace/testcase_private_attributes/src/testflow_privateattributes.py tests/github/experimental/workspace/testcase_private_attributes_initialization_with_both_options/src/aggregator_private_attrs.py tests/github/experimental/workspace/testcase_private_attributes_initialization_with_both_options/src/testflow_privateattributes.py tests/github/experimental/workspace/testcase_private_attributes_initialization_without_callable/src/aggregator_private_attrs.py tests/github/experimental/workspace/testcase_private_attributes_initialization_without_callable/src/testflow_privateattributes.py
Verification
Verified all testcases from tests/github/experimental/workspace
-tests/github/experimental/workspace/testcase_datastore_cli
-tests/github/experimental/workspace/testcase_include_exclude
-tests/github/experimental/workspace/testcase_private_attributes
-tests/github/experimental/workspace/testcase_private_attributes_initialization_with_both_options
-tests/github/experimental/workspace/testcase_private_attributes_initialization_without_callable
-tests/github/experimental/workspace/testcase_internalloop
-tests/github/experimental/workspace/testcase_reference
-tests/github/experimental/workspace/testcase_reference_with_include_exclude
-tests/github/experimental/workspace/testcase_subset_of_collaborators
Tutorials
Openfl-workspace/experimental/
-101_torch_cnn_mnist
-301_torch_cnn_mnist_watermarking