qgrid
qgrid copied to clipboard
REPO IS NO LONGER MAINTAINED AND DOES NOT SUPPORT JUPYTERLAB>=3.0.0
I just spent quite a while setting up an environment and troubleshooting different issues, when I realized that this repo is no maintained and does not support any recent version of jupyterlab.
I recommend IPYDataGrid (https://github.com/bloomberg/ipydatagrid) as a working alternative to QGrid.
- It lacks documentation, but it does work with current versions of Python, Jupyter Lab, and IPYWidgets as of January 2023.
Nice UX, but much slower to load big dataframes :-(
There is a new QGrid "fork" (the same codebase just not git-cloned) that works with all latest jupyter machinery, minus ipywidgets-8+
:
https://github.com/JohnOmernik/qgrid
It was packaged with all NPM dependencies in wheels, and works out of the box.
Nice UX, but much slower to load big dataframes :-(
Is it just the initial loading that is slow for you? I fixed a bug on this recently that made initialising much faster.
https://github.com/bloomberg/ipydatagrid/pull/395
I believe that QGrid loads dataframe lazily by default, it discovers the shape of rows/columns and when scrolling, it populates cells only when the mouse is at rest. Does ipydatagrid
has lazy loading capabilities?
I assume that by "loads dataframes lazily" you mean that it doesn't add DOM elements for the rows/columns that are out of view?
If yes, ipydatagrid
doesn't actually use the DOM elements to represent its structure but uses a canvas
element on which of course it only draws the rows/columns that are currently in view.
Out of interest, what were the symptoms of slowness that you observed? Might be worth an issue on the ipydatagrid
repo.
I takes ~11sec to load 200k rows dataframe, while QGrid loads instantly (and ipyaggrid takes 7sec).
I've created a new repo QgridNext to continue maintaining Qgrid for future Jupyter versions.
QgridNext is now compatible with recent releases of Jupyter:
QgridNext | JupyterLab | Notebook | Voila |
---|---|---|---|
v2.0.0 | v3 - v4 | v5 - v7 | v0.2 - v0.5 |
Now it works as a prebuilt extension (introduced in JupyterLab 3), hence JupyterLab 1/2 are no longer supported. I've reorganized documents, readme, test environments and demos for a fresh start for the new repo. Your feedback, issues and PRs are welcomed and highly appreciated!