-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Workflow Interface] Rename and Refactor WorkspaceExport into NotebookTools #1364
base: develop
Are you sure you want to change the base?
[Workflow Interface] Rename and Refactor WorkspaceExport into NotebookTools #1364
Conversation
Signed-off-by: refai06 <[email protected]>
Signed-off-by: refai06 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could having an overloaded NotebookTools.export
function contribute to a more streamlined user interface? With the introduction of SecureFederatedRuntime (and other runtime environments in the future), users could leverage a single export call (with varying parameters), allowing the system to internally determine the appropriate export flow for each runtime.
Signed-off-by: refai06 <[email protected]>
Signed-off-by: refai06 <[email protected]>
Signed-off-by: refai06 <[email protected]>
Signed-off-by: refai06 <[email protected]>
Signed-off-by: refai06 <[email protected]>
openfl-tutorials/experimental/workflow/1001_Workspace_Creation_from_JupyterNotebook.ipynb
Outdated
Show resolved
Hide resolved
""" | ||
cols_file = self.output_workspace_path.joinpath("plan", "cols.yaml") | ||
data_file = self.output_workspace_path.joinpath("plan", "data.yaml") | ||
_, flow_class_name = self.__get_class_name_and_sourcecode_from_parent_class(parent_class) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know its not part of your PR, can you please shorten the name of function __get_class_name_and_sourcecode_from_parent_class
Signed-off-by: refai06 <[email protected]>
@@ -0,0 +1,5 @@ | |||
# Copyright (C) 2020-2021 Intel Corporation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix: 2020-2025
@@ -0,0 +1,2 @@ | |||
# Copyright (C) 2020-2023 Intel Corporation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix: 2020-2025
Signed-off-by: refai06 <[email protected]>
Signed-off-by: refai06 <[email protected]>
Description:
This PR refactors
WorkspaceExport
functionality into distinct classes:NotebookTools
andCodeAnalyzer
. This change is intended to improve code organization, maintainability, and readability to user.Change Description:
NotebookTools
:The main interface for workspace export and management operations.
Handles two export interfaces:
export()
: Aggregator-based workflow export.export_federated()
: FederatedRuntime-specific export.Responsible for generating configuration and requirements files.
CodeAnalyzer
:A dedicated helper class for code analysis and transformation.
Provides utilities for converting notebooks to Python scripts, analysing and extracting key information, including flow details, configurations, runtime details.
Note:
NotebookTools
provides the user interface (for Aggregator based workflow) and internally utilizes theCodeAnalyzer
class.NotebookTools
replaces theWorkspaceExport
module.Deleted:
openfl/experimental/workflow/workspace_export/export.py
Files Added:
openfl/experimental/workflow/notebooktools/notebook_tools.py
openfl/experimental/workflow/notebooktools/code_analyzer.py
Files Modified:
openfl-tutorials/experimental/workflow/1001_Workspace_Creation_from_JupyterNotebook.ipynb
openfl-tutorials/experimental/workflow/Vertical_FL/TwoPartyWorkspaceCreation.ipynb
openfl/experimental/workflow/interface/cli/workspace.py
openfl/experimental/workflow/runtime/federated_runtime.py
Verification:
Following tutorials are validated to ensure the refactoring is working fine
openfl-tutorials/experimental/workflow/FederatedRuntime/301_MNIST_Watermaking
openfl-tutorials/experimental/workflow/1001_Workspace_Creation_from_JupyterNotebook.ipynb
Test Case:
Following test cases are added which validates the NotebookTools
export()
andexport_federated()
functionalitytests/openfl/experimental/workflow/NotebookTools/tescase_export
tests/openfl/experimental/workflow/NotebookTools/testcase_export_federated