from cStringIO import StringIO from .._activitybase import Analysis, parse_rows DAY_TEMPLATE_TOP = """

{day}

""" DAY_TEMPLATE_BOTTOM = """\
Project Time Spent
""" ROW_TEMPLATE = '\t{task}{time}\n' class Parser: def __init__(self, raw, request, **kw): self.request = request self.analysis = Analysis(parse_rows(raw)) self.analysis.process() def format(self, formatter, **kw): output = StringIO() for day, rows in self.analysis: output.write(DAY_TEMPLATE_TOP.format(day=day.strftime('%A %B %d, %Y'))) for task, (time, still_active) in rows.items(): output.write(ROW_TEMPLATE.format(task=task, time=time, active='active' if still_active else '')) output.write(DAY_TEMPLATE_BOTTOM) self.request.write(output.getvalue())