https://github.com/danielfrg/illusionist
Interactive client-only reports based on Jupyter Notebooks and Jupyter widgets.
https://github.com/danielfrg/illusionist
client-side dashboard jupyter-notebook jupyter-widgets reports
Last synced: about 1 year ago
JSON representation
Interactive client-only reports based on Jupyter Notebooks and Jupyter widgets.
- Host: GitHub
- URL: https://github.com/danielfrg/illusionist
- Owner: danielfrg
- License: apache-2.0
- Created: 2020-05-12T18:24:27.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-04-12T19:03:20.000Z (about 2 years ago)
- Last Synced: 2024-04-14T13:10:04.553Z (about 2 years ago)
- Topics: client-side, dashboard, jupyter-notebook, jupyter-widgets, reports
- Language: Python
- Homepage: https://illusionist.danielfrg.com
- Size: 11.6 MB
- Stars: 11
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# illusionist
[](https://pypi.org/project/illusionist/)
[](https://github.com/danielfrg/illusionist/actions/workflows/test.yml)
[](https://github.com/danielfrg/illusionist/actions/workflows/docs.yml)
[](https://codecov.io/gh/danielfrg/illusionist?branch=master)
[](https://github.com/danielfrg/illusionist/blob/master/LICENSE.txt)
Illusionist takes a Jupyter Notebook with a kernel and widgets and exports a
static HTML report that maintains the interactivity of the widgets without a
live Jupyter kernel.
It does this by pre-calculating and serializing all the possible outputs
and it generates a self-contained asset that has no runtime requirements.
A good analogy is the [static HTML export](https://nextjs.org/docs/advanced-features/static-html-export)
of a dynamic web server like [Next.JS](https://nextjs.org/).
A Jupyter Notebook connected to a live kernel is equivalent to a web server and
an illusionist report would be the static HTML version of the content.
An static site generator pre-renders the content and illusionist pre-calculates
the outputs of the widgets.
The main idea of Jupyter Notebooks and Jupyter widgets is to make data closer
to the code and data scientists while maintaining interactivity, they do a great job at that.
Illusionist maintains the same development workflow Jupyter users are used to by using
standard Jupyter tooling such as `ipywidgets` and `nbconvert`.
No need to import anything in your notebook to generate an interactive report using illusionist,
just run one `nbconvert` command.
The generated assets are easy to deploy, scale and have a big longevity by
removing a lot of deployment requirements and dependencies.
Like a regular [static web page](https://en.wikipedia.org/wiki/Static_web_page).
Learn more and see examples at [illusionist.danielfrg.com](https://illusionist.danielfrg.com).