From c3faae5cf22f343f74d7f2e269d0e7ef0ea55b52 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 21 Jan 2023 10:02:18 -0500 Subject: [PATCH] Add forward compatibility with Altair 5 (#230) --- python/vegafusion/vegafusion/__init__.py | 8 +++++++- python/vegafusion/vegafusion/evaluation.py | 10 ++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/python/vegafusion/vegafusion/__init__.py b/python/vegafusion/vegafusion/__init__.py index 0032fb8fd..f898af1b5 100644 --- a/python/vegafusion/vegafusion/__init__.py +++ b/python/vegafusion/vegafusion/__init__.py @@ -36,7 +36,13 @@ def altair_vl_version(vl_convert=False): (e.g. v4_17 rather than 4.17.0) :return: str with Vega-Lite version """ - from altair.vegalite.v4 import SCHEMA_VERSION + try: + # Altair 5 + from altair.vegalite.v5 import SCHEMA_VERSION + except ImportError: + # Altair 4 + from altair.vegalite.v4 import SCHEMA_VERSION + if vl_convert: # Compute VlConvert's vl_version string (of the form 'v5_2') # from SCHEMA_VERSION (of the form 'v5.2.0') diff --git a/python/vegafusion/vegafusion/evaluation.py b/python/vegafusion/vegafusion/evaluation.py index bfd3e4de9..d218f8419 100644 --- a/python/vegafusion/vegafusion/evaluation.py +++ b/python/vegafusion/vegafusion/evaluation.py @@ -1,9 +1,15 @@ import json from altair import data_transformers -from altair.vegalite.v4.api import Chart, FacetChart from altair.utils.schemapi import Undefined +try: + # Altair 5 imports + from altair.vegalite.v5.api import Chart, FacetChart +except ImportError: + # Altair 4 imports + from altair.vegalite.v4.api import Chart, FacetChart + MAGIC_MARK_NAME = "_vf_mark" @@ -12,7 +18,7 @@ def transformed_data(chart: Chart, row_limit=None): Evaluate the transform associated with a Chart and return the transformed data as a DataFrame - :param chart: altair.vegalite.v4.api.Chart object + :param chart: altair Chart object :param row_limit: Maximum number of rows to return. None (default) for unlimited :return: pandas DataFrame of transformed data """