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

Purpose and Use Cases for ipylab #134

Open
jpcaram opened this issue Nov 26, 2023 · 3 comments
Open

Purpose and Use Cases for ipylab #134

jpcaram opened this issue Nov 26, 2023 · 3 comments

Comments

@jpcaram
Copy link

jpcaram commented Nov 26, 2023

It's unclear to me what the purpose of this library is. I'm not sure what would be the right use cases. Is it supposed to be an alternative to writing a Jupyter Frontend plugin? How is it better or worse than writing a plugin? Is it just a proof of concept? The motivation for my question(s) is about making the best use of it.

I believe an answer to this question could be part of the description of the library.

Furthermore, what is the expected or planned future for the library? It seems that is is missing some pieces for it to be appropriate for a production environment, like a Jupyter Server extension that loads a Python kernel, or a way to remove widgets when a kernel is stopped, just to mention a few that come to mind.

Thanks!

@jtpio
Copy link
Owner

jtpio commented Dec 4, 2023

It started as a proof of concept for providing a bridge between notebooks and the JupyterLab UI. To make it possible to control the UI from a notebook using Python.

In a way it's possible to build small apps with it (like the filebrowser example), but it can quickly become limited because not all the JupyterLab frontend API is exposed.

Currently it would still be better to write a proper JupyterLab extension for production use.

@jpcaram
Copy link
Author

jpcaram commented Dec 18, 2023

Hi @jtpio, I think there is a legitimate use case(s). Any time when a UI components is directly tied to what you are doing in your notebook. Such UI element may not make any sense without specific code running in a Python kernel, so a Jupyter plugin wouldn't be the right approach. Too much unnecessary work.

For example, imagine I have an object that is the main thing I'm working around in a notebook. It may be useful to have some sort of dashboard for this object on the left panel. This dashboard could have a visual summary of the object's state and "quick action" buttons.

This specific example requires little more than creating an ipywidget. Just the ability to place it in the left panel. But it's just an example. Having the ability to add menu items, running Jupyter commands, etc. would be nice.

In summary, my hope is that you would continue the work. At least make it look like an important component of the Jupyter ecosystem so others would be interested in contributing.

@psychemedia
Copy link

I wonder if another use for ipylab is as a way of writing scripts whose execution might be controlled by a Playwright test script? Eg a notebook scripts a set of operations in a notebook, and the Playwright script loads the notebook and executes one cell at a time before grabbing a screenshot, testing the state of a UI element, etc?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants