Skip to content

Commit da74595

Browse files
committed
Add local var for chart.to_dict
1 parent 2cdd619 commit da74595

File tree

3 files changed

+16
-24
lines changed

3 files changed

+16
-24
lines changed

mplaltair/parse_chart.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ class ChannelMetadata(object):
88
Attributes
99
----------
1010
name : str
11+
The name of the encoding channel
1112
data : np.array
13+
The data linked to the channel (temporal data is converted)
1214
axis : dict
1315
bin : boolean, None
1416
field : str
@@ -20,16 +22,17 @@ class ChannelMetadata(object):
2022
type : str
2123
"""
2224
def __init__(self, channel, alt_chart):
23-
self.name = channel # Not from Altair
24-
self.data = self._locate_channel_data(alt_chart) # Not from Altair
25-
self.axis = alt_chart.to_dict()['encoding'][self.name].get('axis', {})
26-
self.bin = alt_chart.to_dict()['encoding'][self.name].get('bin', None)
27-
self.field = alt_chart.to_dict()['encoding'][self.name].get('field', None)
28-
self.scale = alt_chart.to_dict()['encoding'][self.name].get('scale', {})
29-
self.sort = alt_chart.to_dict()['encoding'][self.name].get('sort', None)
30-
self.stack = alt_chart.to_dict()['encoding'][self.name].get('stack', None)
31-
self.timeUnit = alt_chart.to_dict()['encoding'][self.name].get('aggregate', None)
32-
self.title = alt_chart.to_dict()['encoding'][self.name].get('title', None)
25+
chart_dict = alt_chart.to_dict()
26+
self.name = channel
27+
self.data = self._locate_channel_data(alt_chart)
28+
self.axis = chart_dict['encoding'][self.name].get('axis', {})
29+
self.bin = chart_dict['encoding'][self.name].get('bin', None)
30+
self.field = chart_dict['encoding'][self.name].get('field', None)
31+
self.scale = chart_dict['encoding'][self.name].get('scale', {})
32+
self.sort = chart_dict['encoding'][self.name].get('sort', None)
33+
self.stack = chart_dict['encoding'][self.name].get('stack', None)
34+
self.timeUnit = chart_dict['encoding'][self.name].get('aggregate', None)
35+
self.title = chart_dict['encoding'][self.name].get('title', None)
3336
self.type = self._locate_channel_dtype(alt_chart)
3437

3538
if self.type == 'temporal':
@@ -67,6 +70,7 @@ def _locate_channel_data(self, alt_chart):
6770

6871
def _locate_channel_dtype(self, alt_chart):
6972
"""Locates dtype used for each channel
73+
7074
Parameters
7175
----------
7276
alt_chart : altair.Chart

mplaltair/tests/test_data.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import pytest
66
from vega_datasets import data
77

8-
from mplaltair._data import _normalize_data
9-
from mplaltair._exceptions import ValidationError
108

119
df = pd.DataFrame({
1210
"a": [1, 2, 3, 4, 5], "b": [1.1, 2.2, 3.3, 4.4, 5.5], "c": [1, 2.2, 3, 4.4, 5],
@@ -20,12 +18,12 @@
2018

2119
def test_data_list():
2220
chart = alt.Chart(pd.DataFrame({'a': [1], 'b': [2], 'c': [3]})).mark_point()
23-
_normalize_data(chart)
21+
_data._normalize_data(chart)
2422
assert type(chart.data) == pd.DataFrame
2523

2624
def test_data_url():
2725
chart = alt.Chart(data.cars.url).mark_point()
28-
_normalize_data(chart)
26+
_data._normalize_data(chart)
2927
assert type(chart.data) == pd.DataFrame
3028

3129
# test date conversion:

mplaltair/tests/test_parse_chart.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,6 @@ def test_data_shorthand_quantitative(column):
4141
else:
4242
assert list(data) == list(df[column].values)
4343

44-
# TODO: figure out how to test
45-
# def test_data_value_quantitative():
46-
# chart = alt.Chart(df).mark_point().encode(opacity=alt.value(0.5))
47-
# try:
48-
# chart = parse_chart.ChartMetadata(chart)
49-
# except NotImplementedError:
50-
# for channel in chart.encoding:
51-
# data = chart.encoding[channel].data
52-
# assert list(data) == 0.5
53-
5444

5545
@pytest.mark.parametrize("column", ['a', 'b', 'c'])
5646
def test_data_aggregate_quantitative_fail(column):

0 commit comments

Comments
 (0)