README
eigendata jupyterlab extension
Requirements
- JupyterLab >= 2.0
- react-jsonschema-form
- react-select
- bootstrap3
- loadash
- react-awesome-querybuilder (under testing)
- react-querybuildre (under testing)
Install
Not working yet, if use the install method from below in the contributing section
jupyter labextension install eigendata-formula-bar
Contributing
Install
The jlpm command is JupyterLab's pinned version of
yarn that is installed with JupyterLab. You may use
yarn or npm in lieu of jlpm below.
# Clone the repo to your local environment
# Move to eigendata-formula_bar-v2 directory
# Install dependencies
jlpm
# Build Typescript source
jlpm build
# Link your development version of the extension with JupyterLab
jupyter labextension install .
# Rebuild Typescript source after making changes
jlpm build
# Rebuild JupyterLab after making any changes
jupyter lab build
You can watch the source directory and run JupyterLab in watch mode to watch for changes in the extension's source and automatically rebuild the extension and application.
# Watch the source directory in another terminal tab
jlpm watch
# Run jupyterlab in watch mode in one terminal tab
jupyter lab --watch
Now every change will be built locally and bundled into JupyterLab. Be sure to refresh your browser page after saving file changes to reload the extension (note: you'll need to wait for webpack to finish, which can take 10s+ at times).
Uninstall
jupyter labextension uninstall eigendata-formula-bar-v2
Changes to tsconfig from default
- Commented out strict which was set to true
- Changes to make JSON work
- resolveJsonModule -> true
- esModuleInterop -> true
- Composite -> false
Architecture
Arkit installed as a dev-dependency to create overview diagrams. More info here
Main files
- index.ts: file starts the extension and creates an instance of the FormWidget class, which holds all the logic
- formulabar.tsx: Both logic (Backend class) and UI (FormComponent function) are in the file
- datavisualizer.tsx: Skeleton for the datavisualizer (WIP)
Support files
- initscript.ts: holts a string with the script that is run in the kernel when the application starts. It is held sepparately to make it easier to read
- kernelconnector.ts: is taken variable inspector package. It is mainly used to execute python scripts in the kernel
- The core version of jupyterlab has a similar implementation so it may be wiser to use that
- CellUtilities.ts: is based on an open-source project. Using only the insertRunShow function to insert a new cell and run it in a notebook
- transformations.json: Holds the UI definition of data transformation functions in python
querybuilder.tsx: Holds code to test the react-awesome-querybuilder (WIP). (File formerly named demo)