Skip to content

Jupyter Notebook 7 compatibility (discussion) #74

@kiyoon

Description

@kiyoon

Describe the bug
This plugin is not compatible with Jupyter Notebook 7 (as it follows the Jupyter Lab design).

To Reproduce
pip install notebook==7.0.0.a18

Output of jupynium --version

0.2.0

Additional Context
Currently, this plugin doesn't support Jupyter Lab. The reason is that Jupyter Lab doesn't provide a front-end API to interact using Selenium. A possible way may be writing a Jupyter Lab extension, and communicate with the extension, but it will be much more complicated to set up Jupynium that way..

Problems:

  • Writing a Jupynium extension requires one extra version to match. It requires Jupynium plugin version and the Jupyter Lab extension version to exactly match. So whenever you update Jupynium, you'll be required to update all of your server's Jupyter Lab extension.
  • It will be one more configuration required. Instead of communicating with the browser, now you'll need to communicate with the Jupyter Lab extension, then the extension needs to listen to a socket.
  • It will be harder to maintain. The contributors need understanding in all lua, python, typescript and Neovim / Jupyter Lab extension development experiences.

I may be wrong here, but if anyone can find a Jupyter Lab front-end method without using an extension please let me know. You can try with Jupyter Notebook like this:

  1. Press F12 to open a developer console
  2. Write Jupyter.notebook. and see the APIs like setting text on cells etc.

(see https://stackoverflow.com/questions/51411871/where-is-a-docs-for-jupyter-front-end-extensions-javascript-api)

This is simply what I need, and it looks like the new Jupyter Lab and Jupyter Notebook 7 doesn't support this.

Suggested Solution
Luckily, it looks like we can still use nbclassic (pip install nbclassic) and it will still serve the classic notebook UI. We will need to change the default address to localhost:8888/nbclassic, or maybe Jupynium can detect if the server running is not compatible and fallback to the nbclassic URL. This and Notebook 6 are supported for 2 more years.

Metadata

Metadata

Assignees

No one assigned

    Labels

    wontfixThis will not be worked on

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions