Panel VegaFusion
WORK IN PROGRESS. PROOF OF CONCEPT WORKING.
The Panel VegaFusion pane allows you to create interactive big data apps based on the Altair plotting library and the Vega visualization specification.
VegaFusion provides serverside acceleration for the Vega visualization grammar.
Panel makes it easy to create powerful data apps using the tools you know and ❤️. Member of the HoloViz ecosystem.
Install
pip install panel-vegafusion
Example
import altair as alt
import panel as pn
from panel_vegafusion import VegaFusion
from panel_vegafusion.utils import get_plot, ALTAIR_BLUE, get_theme
pn.extension(template="fast")
theme=get_theme()
alt.themes.enable(theme)
plot=get_plot() # Can be replaced any Altair plot or Vega Specification
component = VegaFusion(plot, height=800).servable()
pn.state.template.param.update(
site="Panel VegaFusion", title="Interactive BIG DATA apps with CROSSFILTERING for Altair and Vega",
accent_base_color=ALTAIR_BLUE, header_background=ALTAIR_BLUE,
)
You can serve the application via panel serve 'name_of_file.py or
panel serve 'name_of_notebook.ipynb.
Todo
This needs to be done before alpha release
- Fix all errors in
invoke test.all - Make python package installable (and release it)
- Implement way to get rid of the user having to serve the assets manually via
--static dist=./src-js/dist. - [] Get things working on Binder
License - AGPLv3 - IMPORTANT
This Panel Vegafusion project is AGPLv3 Licensed because VegaFusion is AGPLv3 licensed and requires the author to provide this application's source code upon request.
SO PLEASE INVESTIGATE THE LEGAL ASPECTS ON YOUR OWN. YOU WILL BE USING THIS PROJECT AT YOUR OWN RISK ANYWAYS! 👍
References
- VegaFusion Github | VegaFusion documentation
- Panel Docs | Panel Discourse | Awesome Panel
- DataShader | hvplot | HoloViews
Issues Identified
- vegafusion/vegafusion #64 - Support Vega-Embed Themes
- Bokeh Discourse - Cannot bokeh build extension with wasm dependency
- bokeh/ipywidgets_bokeh #46 - Not working with VegaFusionWidget
- holoviz/param #597 - Add edit_readonly
- holoviz/panel #3149 - Object of type Chart is not JSON serializable
- vegafusion/vegafusion #62 - Please support Panel
- vegafusion/vegafusion #63 - Please provide simple .js build
- vegafusion/vegafusion #68 - Provide VegaFusionRunTime from the vegafusion package
- vegafusion/vegafusion #66 - Please support events
- vegafusion/vegafusion #67 - Uncaught (in promise) out of memory
Develop
Install for development
git clone https://github.com/MarcSkovMadsen/panel-vegafusion.git
conda create -n panel_vegafusion -c conda-forge python=3.9 nodejs
conda activate panel_vegafusion
pip install -e .[all]
cd src-js
npm install --save-dev webpack-cli
npm install
cd ..
Build
Javascript package
invoke build.js
Python package
invoke build.package
Test
invoke test.all
Serve Dev App
For now you can serve an example with hot reload via
panel serve 'tests/apps/test_dev_app.py' --autoreload --show
Serve Example Apps
For now you can serve an example with hot reload via
panel serve 'examples/*.py' --autoreload --show
Reference
You can also find inspiration in the original Jupyter VegaFusion reference example via
jupyter lab tests/reference_example.ipynb
Release Python Package
Before releasing please make sures you have
- updated all version numbers
- build all packages
- run all tests with succes
python -m twine upload dist/*<VERSION>*
to deploy the package 📦.
If you want to upload to testpypi first you can do so by adding --repository testpypi.
Metadata
Release files for panel-vegafusion 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| panel-vegafusion-0.0.3.tar.gz | 1.5 MB | Without provenance | Details for panel-vegafusion-0.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| panel_vegafusion-0.0.3-py3-none-any.whl | Python 3 | none | any | Details for panel_vegafusion-0.0.3-py3-none-any.whl |
Total release size: 2.9 MB
Release files / panel-vegafusion-0.0.3.tar.gz
| Download URL | panel-vegafusion-0.0.3.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef9dfe1d1aff324d82c74cce7c3e9b835be40401f3750060d315e777fc2a3750
|
|
BLAKE2b-256 checksum How to use checksums |
e1bc69ac01d222397884aa1dc253b25e7e60fa3dd35a72b68ad1e43227cf0a2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
|
Release files / panel_vegafusion-0.0.3-py3-none-any.whl
| Download URL | panel_vegafusion-0.0.3-py3-none-any.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8499156e21aaed0eaaa3855e3d96e82687760e550e3733dd074fd86c82dfcdfb
|
|
BLAKE2b-256 checksum How to use checksums |
3748171cb586d3063d19b794fbfedace8c3878dc948738b73d2b34fa6e9c4024
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
|
Security for panel-vegafusion 0.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.