letsdo.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:letsdo 作者: clobrano 项目源码 文件源码
def report_task(tasks, cfilter=None, title=None,
                detailed=False, todos=False, ascii=False):
    '''Visual task report'''
    tot_work_time = timedelta()

    if detailed:
        table_data = [['ID', 'Date', 'Interval', 'Tracked', 'Description']]
    elif todos:
        table_data = [['ID', 'Tracked', 'Description']]
    else:
        table_data = [['ID', 'Last time', 'Tracked', 'Description']]

    for task in tasks:
        tot_work_time += task.work_time

        if task.last_end_date:
            last_time = task.last_end_date
        else:
            last_time = ''

        time = strfdelta(task.work_time, fmt='{H:2}h {M:02}m')

        if detailed:
            interval = '{begin} -> {end}'.\
                       format(begin=task.start_time.strftime('%H:%M'),
                              end=task.end_time.strftime('%H:%M'))
            row = [paint(task.tid),
                   paint(last_time),
                   paint(interval),
                   paint(time),
                   paint(task.name)]
        elif todos:
            row = [paint(task.tid),
                   paint(time),
                   paint(task.name)]
        else:
            row = [paint(task.tid),
                   paint(last_time),
                   paint(time),
                   paint(task.name)]

        table_data.append(row)

    if ascii:
        table = AsciiTable(table_data)
    else:
        table = SingleTable(table_data)

    info('')
    print(table.table)
    info('')
    if cfilter:
        info('{filter}: Tracked time {time}'.format(
            filter=cfilter, time=strfdelta(tot_work_time)))
    else:
        info('Tracked time {time}'.format(time=strfdelta(tot_work_time)))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号