def iresults(runner, sort_times=False): """Generate the rows of the output table.""" results = Results.selectBy(runner=runner) def key(result): if sort_times: return result.race.distance(runner.gender), result.time return result.race.date results = sorted(results, key=key) for result in results: distances = {"M": result.race.mens_distance, "F": result.race.womens_distance}[runner.gender] race = result.race yield [race.date, race.meet.name, result.time, distances]