diff --git a/mplaltair/_data.py b/mplaltair/_data.py index 55dc6bc..ade8a35 100644 --- a/mplaltair/_data.py +++ b/mplaltair/_data.py @@ -34,6 +34,12 @@ def _normalize_data(chart): df = pd.DataFrame(_fetch(spec['data']['url'])) elif spec['data'].get('values'): return + elif spec['data'].get('name'): + datasets = spec.get('datasets', {}) + if spec['data'].get('name') in datasets.keys(): + return + else: + raise ValidationError('Named Data is provided but no corresponding dataset is found') else: raise NotImplementedError('Given data specification is unsupported at the moment.') diff --git a/mplaltair/tests/test_data.py b/mplaltair/tests/test_data.py index 0f4871d..574873b 100644 --- a/mplaltair/tests/test_data.py +++ b/mplaltair/tests/test_data.py @@ -2,6 +2,7 @@ import pandas as pd import matplotlib.dates as mdates import mplaltair._data as _data +from mplaltair._exceptions import ValidationError import pytest from vega_datasets import data @@ -26,6 +27,12 @@ def test_data_url(): _data._normalize_data(chart) assert type(chart.data) == pd.DataFrame + +def test_named_data(): + chart = alt.Chart(alt.NamedData('test-dataset')).mark_point() + with pytest.raises(ValidationError): + _data._normalize_data(chart) + # test date conversion: df_nonstandard = pd.DataFrame({ diff --git a/setup.py b/setup.py index 8b2b53d..5f0dc6d 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ version='0.0.0', description="Convert altair objects to Matplotlib Figures", author="Matplotlib Development Team", - install_requires=['matplotlib>=2.2.0', 'altair>=2'], + install_requires=['matplotlib<3.0', 'altair<3.0','pandas<0.25'], author_email="matplotlib-users@python.org", url="https://github.com/matplotlib/mpl-altair", packages=['mplaltair'],