Skip to content
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

Create Python Extension's Notebook Controller #23100

Closed
anthonykim1 opened this issue Mar 19, 2024 · 2 comments
Closed

Create Python Extension's Notebook Controller #23100

anthonykim1 opened this issue Mar 19, 2024 · 2 comments
Assignees
Labels
area-repl feature-request Request for new features or functionality on-testplan Added to test plan
Milestone

Comments

@anthonykim1
Copy link

anthonykim1 commented Mar 19, 2024

Actionable item from: #23029

By creating Notebook Controller from the Python extension, users will be able to use interactive window and use Python without having to install Jupyter or iPython kernel. Python extension will also be able to leverage variable pane if we can also provide variable provider.

Need to figure out how to hook up with custom Python interpreter and execute user's command using the custom Python interpreter as a kernel.

  • Will first need to test in separate extension before embedding into Python extension
@anthonykim1 anthonykim1 added feature-request Request for new features or functionality area-repl labels Mar 19, 2024
@anthonykim1 anthonykim1 self-assigned this Mar 19, 2024
@github-actions github-actions bot added the triage-needed Needs assignment to the proper sub-team label Mar 19, 2024
@anthonykim1
Copy link
Author

anthonykim1 commented Mar 19, 2024

Looking into /Users/anthonykim/Desktop/vscode-jupyter/src/notebooks/controllers/vscodeNotebookController.ts and https://github.com/microsoft/vscode-github-issue-notebooks and https://github.com/microsoft/vscode-jupyter/pull/6300

Potentially useful note for handling communication from/to custom REPL to TypeScript (assuming notebook controller inside the Python extension).

  • WebSockets: protocol that enables bidirectional communication between a client (such as browser) and a server over a single, long-lived connection.
  • Allows client and server to send messages to each other at any time, rather than in response to a request as in traditional HTTP communication.
  • With Jupyter , the frontend act as client when kernel acts as server. They communicate via websocket. This connection is established when you start new kernel, open new notebook. Frontend send request to kernel to start new kernel process, and kernel responds by opening a websocket connection, sending message back to frontend to confirm that connection has been established.

@anthonykim1 anthonykim1 removed the triage-needed Needs assignment to the proper sub-team label Mar 19, 2024
@anthonykim1 anthonykim1 added this to the April 2024 milestone Apr 2, 2024
@karthiknadig karthiknadig modified the milestones: April 2024, May 2024 Apr 17, 2024
@luabud luabud modified the milestones: May 2024, June 2024 May 27, 2024
@anthonykim1 anthonykim1 modified the milestones: June 2024, May 2024 May 28, 2024
@anthonykim1
Copy link
Author

Will be tested inside via #23484

@anthonykim1 anthonykim1 added the on-testplan Added to test plan label May 28, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 28, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-repl feature-request Request for new features or functionality on-testplan Added to test plan
Projects
None yet
Development

No branches or pull requests

4 participants