Skip to content

Modularize Persist #115

@kirangadhave

Description

@kirangadhave

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions