def lapspercar_svg(self, curr_url=None): if not config.config.HTTP_CONFIG.enable_svg_generation: return "" stats = self.lastStat pie_chart = Pie(pygalConfig) pie_chart.title = 'Car usage (% laps driven)' tl = stats['numLaps'] lapsPerTrack = sorted(stats['lapsPerCar'].items(), key=lambda x: x[1], reverse=True) valueToItem = {} for t, nl in lapsPerTrack: v = nl * 100 / tl while v in valueToItem: v -= 1e-9 valueToItem[v] = t pie_chart.add(t, v) pie_chart.value_formatter = lambda x, valueToItem=valueToItem: "%s: %.1f%%" % ( valueToItem.get(x, '?'), x) return pie_chart.render()
def lapspercombo_svg(self, curr_url=None): if not config.config.HTTP_CONFIG.enable_svg_generation: return "" stats = self.lastStat pie_chart = Pie(pygalConfig) pie_chart.title = 'Combo usage (% laps driven)' tl = stats['numLaps'] lapsPerCombo = sorted(stats['lapsPerCombo'].items(), key=lambda x: x[1]['lapCount'], reverse=True) valueToItem = {} for t, info in lapsPerCombo: nl = info['lapCount'] name = "+".join(info['cars']) + '@' + info['track'] v = nl * 100 / tl while v in valueToItem: v -= 1e-9 valueToItem[v] = name pie_chart.add(name, v) pie_chart.value_formatter = lambda x, valueToItem=valueToItem: "%s: %.1f%%" % ( valueToItem.get(x, '?'), x) return pie_chart.render()