feat(frontend): add the Python Notebook Migration Tool (frontend only)#4436
Open
zyratlo wants to merge 4 commits intoapache:mainfrom
Open
feat(frontend): add the Python Notebook Migration Tool (frontend only)#4436zyratlo wants to merge 4 commits intoapache:mainfrom
zyratlo wants to merge 4 commits intoapache:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this PR?
This PR introduces the frontend portion of the Python Notebook Migration Tool, a new tool that converts a user-uploaded Python Jupyter notebook into a Texera workflow. New frontend code includes:
jupyter-notebook-panel componentwhich hosts the iframe in the Texera workspace for the Jupyter serverjupyter-panel servicewhich handles the mapping computation and highlighting logic and instantiating the jupyter-notebook-panel componentmigration-llmwhich contains the communication logic between the tool and the LiteLLM proxy servernotebook-migration servicewhich stores the mapping, handles communication with the Jupyter service, migration LLM service, and the backend service.Details about the backend are in a separate PR #4437 .
Demo Videos (these can also be found on the parent issue)
1.upload.mp4
2.show.response.mp4
3.show.mapping.mp4
4.close.notebook.mp4
5.reopen.workflow.mp4
Any related issues, documentation, discussions?
Closes #4428
This PR closes the sub-issue related to the frontend, the parent issue is #4301.
Architecture Diagram (these can also be found on the parent issue)
How was this PR tested?
New frontend tests related to this PR were added:
frontend/src/app/workspace/component/jupyter-notebook-panel/jupyter-notebook-panel.component.spec.tsfrontend/src/app/workspace/service/jupyter-panel/jupyter-panel.service.spec.tsfrontend/src/app/workspace/service/notebook-migration/notebook-migration.service.spec.tsThis project was built locally and manually tested to ensure functionality. Pre-existing tests, builds, and checks were ran and passed.
Was this PR authored or co-authored using generative AI tooling?
Generated-by: ChatGPT (GPT-5.3)