def build_charts(sample_properties, chart_dicts, sample_data, module=None):
modules = [module, globals()] if module else [globals()]
filters = make_chart_filters(sample_properties, sample_data.analysis)
charts = []
for chart_dict in chart_dicts:
chart_dict = copy.deepcopy(chart_dict)
function = chart_dict.pop('function')
for module in modules:
f = module.get(function)
if f is not None:
break
kwargs = chart_dict.pop('kwargs', {})
new_chart_obj = f(chart_dict, sample_properties, sample_data, **kwargs)
if new_chart_obj is None:
continue
new_charts = new_chart_obj if isinstance(new_chart_obj, list) else [new_chart_obj]
charts.extend(new_charts)
return charts, filters
评论列表
文章目录