-
Notifications
You must be signed in to change notification settings - Fork 215
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
[WIP] [Workflow Interface] Rename and Refactor WorkspaceExport into NotebookTools #1364
base: develop
Are you sure you want to change the base?
[WIP] [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]>
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
Modified:
openfl/experimental/workflow/notebooktools/notebook_tools.py
openfl/experimental/workflow/notebooktools/code_analyzer.py
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