You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wanted to share some general plans for what I'm picturing for VegaFusion 2.0.
Background
To recap, VegaFusion 1.0 marked several important milestones for the project:
Relicensing from AGPL3 to BSD3.
Inclusion of an Altair mime renderer in addition to the Jupyter Widget based renderer.
Support for extracting transformed data from an Altair chart with the vf.transformed_data function.
Version 1.2 introduced a suite of save functions for exporting Altair charts to external file formats after performing VegaFusion's pre-transform process.
Since VegaFusion 1.2, I've been working on integrating these same features into Altair itself. Altair 5.1 includes the initial integration with VegaFusion for:
Accessing transformed data from an Altair chart
Enabling the "vegafusion" data transformer causes the existing Altair renderers to use VegaFusion to pre-transform chart specifications before sending the results to the browser. It also causes the existing Altair chart.save and chart.to_json to use VegaFusion.
Drop Altair features and vegafusion-jupyter package
As of Altair 5.1, the only Altair feature of VegaFusion that's not possible with Altair directly is the VegaFusion widget renderer. Yesterday, I opened a PR (vega/altair#3281) to update Altair's JupyterChart to support the functionality of VegaFusionWidget, where interactive chart transformations are performed in Python.
Once this is merged into Altair and released, there will no longer be any reason for a end-user to import vegafusion as vf, as all of the VegaFusion Altair functionality will be available directly in Altair. There will also be no need to install the vegafusion-jupyter Python package.
This is really exciting! And it makes VegaFusion useful to a much larger user base. For VegaFusion 2.0, I'd like to remove all of the Altair functionality from the vegafusion Python package and to remove the vegafusion-jupyter package from the VegaFusion repo.
Combine vegafusion and vegafusion-python-embed packages
vegafusion-python-embed is the native Python/Rust library and vegafusion is a pure Python package that is intended to be the public interface to VegaFusion's functionality. The reason these are separate package is that I was picturing supporting the scenario where the vegafusion package communicated with VegaFusion server over grpc. I didn't see this all the way through, and I haven't run into any demand for this feature. By combining these packages, we can remove the nascent code for communicating with VegaFusion server, and it would remove the burden of having to make sure the versions of vegafusion and vegafusion-python-embed match.
I also want to fully type the pure Python API so it's easer to use from Altair.
Documentation
The VegaFusion documentation would need a near total overhaul, as it's mostly focused on the Altair functionality. The new documentation should focus on VegaFusion's role as a collection of building blocks for scaling Vega systems.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Wanted to share some general plans for what I'm picturing for VegaFusion 2.0.
Background
To recap, VegaFusion 1.0 marked several important milestones for the project:
vf.transformed_data
function.Version 1.2 introduced a suite of
save
functions for exporting Altair charts to external file formats after performing VegaFusion's pre-transform process.Since VegaFusion 1.2, I've been working on integrating these same features into Altair itself. Altair 5.1 includes the initial integration with VegaFusion for:
"vegafusion"
data transformer causes the existing Altair renderers to use VegaFusion to pre-transform chart specifications before sending the results to the browser. It also causes the existing Altairchart.save
andchart.to_json
to use VegaFusion.Drop Altair features and
vegafusion-jupyter
packageAs of Altair 5.1, the only Altair feature of VegaFusion that's not possible with Altair directly is the VegaFusion widget renderer. Yesterday, I opened a PR (vega/altair#3281) to update Altair's JupyterChart to support the functionality of
VegaFusionWidget
, where interactive chart transformations are performed in Python.Once this is merged into Altair and released, there will no longer be any reason for a end-user to
import vegafusion as vf
, as all of the VegaFusion Altair functionality will be available directly in Altair. There will also be no need to install thevegafusion-jupyter
Python package.This is really exciting! And it makes VegaFusion useful to a much larger user base. For VegaFusion 2.0, I'd like to remove all of the Altair functionality from the
vegafusion
Python package and to remove thevegafusion-jupyter
package from the VegaFusion repo.Combine
vegafusion
andvegafusion-python-embed
packagesvegafusion-python-embed
is the native Python/Rust library andvegafusion
is a pure Python package that is intended to be the public interface to VegaFusion's functionality. The reason these are separate package is that I was picturing supporting the scenario where thevegafusion
package communicated with VegaFusion server over grpc. I didn't see this all the way through, and I haven't run into any demand for this feature. By combining these packages, we can remove the nascent code for communicating with VegaFusion server, and it would remove the burden of having to make sure the versions ofvegafusion
andvegafusion-python-embed
match.I also want to fully type the pure Python API so it's easer to use from Altair.
Documentation
The VegaFusion documentation would need a near total overhaul, as it's mostly focused on the Altair functionality. The new documentation should focus on VegaFusion's role as a collection of building blocks for scaling Vega systems.
Beta Was this translation helpful? Give feedback.
All reactions