public
Description: command line based task management
Homepage: http://brianreily.com/projects/zen
Clone URL: git://github.com/breily/zen.git
zen / zen_utilities.py
100755 27 lines (24 sloc) 1.01 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def get_project(proj_name, proj_list):
    """ Looks for a given project name.
Returns that project or None if not found."""
    names = [p for p in proj_list if p.name[:len(proj_name)] == proj_name]
    if len(names) != 1:
        try: names = [ proj_list[ int(proj_name) ] ]
        except: return None
    return names[0]
 
def get_task(task_name, project):
    """ Looks for a given task name from a given project.
Returns that task if found, None if not."""
    names = [t for t in project.tasks if t.desc[:len(task_name)] == task_name]
    if len(names) != 1:
        try: names = [ proj_list[ int(task_name) ] ]
        except: return None
    return names[0]
 
def format_task(task):
    """ Returns a string of the task name plus
the number of fields it contains. Formatted
according to the number."""
    n = len(task.fields)
    if n == 0: return '\tTask: %s' %task.desc
    if n == 1: return '\tTask: %s [1 field]' %task.desc
    return '\tTask: %s [%s fields]' %(task.desc, n)