from typing import Dict, List from brian_dashboard_manager.templating.helpers import get_dashboard_data def get_panel_data(services): result: Dict[str, List[Dict]] = {} for service in services: customers = service.get('customers') name = service.get('name') sid = service.get('sid') scid = service.get('scid') measurement = 'scid_rates' title = f'{name} ({sid})' for customer in customers: result.setdefault(customer, []).append({ 'measurement': measurement, 'title': title, 'scid': scid, 'has_v6': False }) return result def create_service_panels(services, datasource): panel_data = get_panel_data(services) for dash in get_dashboard_data( data=panel_data, datasource=datasource, tag='SERVICE'): yield dash