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

Modularize Persist #115

Open
kirangadhave opened this issue Apr 11, 2024 · 0 comments
Open

Modularize Persist #115

kirangadhave opened this issue Apr 11, 2024 · 0 comments
Assignees

Comments

@kirangadhave
Copy link
Member

kirangadhave commented Apr 11, 2024

Persist has separation for core and output modules. However, the API is not defined, and the separation is not completely clean.

We should do this first so individual modules can be created independently and new features can be added.

The basic idea is:

  • Output adapter converts interaction to JSON.
  • Core module saves/loads provenance graph with the JSON
  • Core module updates dataframe with provenance graph
    The output adapter uses a dataframe to update output.

Image

Core

The core is a widget with four components:
- Toolbar
- Trrack Graph
- Dataframe manager
- <slot>

Define a set of standard data operations we want to support

  • selections
  • filters
  • columns
  • etc.

execute() - will apply operations and update df
update() - notify the updated df to output adapter
save() - will save the latest graph
load() - will load the latest graph

Output Adapter

Output adapter is a widget that renders in the <slot>.

  • Should output one of the defined operations in JSON format to respond to interactions. Can compose multiple in one for complex interactions.
  • Take the updated dataframe (any other info?) and update the view if needed.
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

1 participant