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

DRAFT: Streaming Datagrid #498

Draft
wants to merge 15 commits into
base: main
Choose a base branch
from
Draft

Conversation

martinRenou
Copy link
Member

@martinRenou martinRenou commented Apr 8, 2024

Provide a new widget StreamingDatagrid which lazily requests data to the back-end upon scrolling/resizing the grid. It only requests data needed to render the current viewport.

This is a very early draft for discussion, it requires more testing.

Screencast.from.2024-04-08.11-34-30.webm

Wish-list for this PR to be merge-able:

  • Filtering/sorting should be done back-end side by default for StreamingDatagrid, simply because the front-end does not have the whole dataset. We may want to provide the ability to do back-end filtering for the main Datagrid widget too, but front-end filtering should stay the default to not break current applications.
  • Unit testing + Galata testing
  • Fix row headers
  • Provide a tick method to the Python API to allow the back-end to notify the front-end the data has changed
  • Fix nested hierarchy support

@ianthomas23
Copy link
Contributor

I've tried this out on my dev machine and it works really well.

I can help with the backend filtering/sorting if you wish, in this or a separate PR.

@martinRenou
Copy link
Member Author

martinRenou commented Apr 9, 2024

Thanks a lot for the review!

I can help with the backend filtering/sorting if you wish, in this or a separate PR.

💯 Feel free to push on my branch, I'm adding you as a collaborator on my fork

ipydatagrid/datagrid.py Outdated Show resolved Hide resolved
Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: martinRenou <martin.renou@gmail.com>
+ Fix cases for "raw" buffers

Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: martinRenou <martin.renou@gmail.com>
Signed-off-by: Ian Thomas <ianthomas23@gmail.com>
Signed-off-by: Ian Thomas <ianthomas23@gmail.com>
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

Successfully merging this pull request may close these issues.

None yet

2 participants