This is a python API for the taskwarrior command line tool.
It contains two implementations: taskw.TaskWarriorShellout
and taskw.TaskWarriorDirect
. The first implementation is the supported one recommended by the upstream taskwarrior core project. It uses the task export
and task import
commands to manipulate the task database. The second implementation opens the task db file itself and directly manipulates it. It exists for backwards compatibility, but should only be used when necessary.
Branch | Status |
---|---|
master | |
develop |
Using taskw
requires that you first install taskwarrior.
Installing it from http://pypi.python.org/pypi/taskw is easy with pip
:
$ pip install taskw
You can find the source on github at http://github.com/ralphbean/taskw
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> tasks = w.load_tasks() >>> tasks.keys() ['completed', 'pending'] >>> type(tasks['pending']) <type 'list'> >>> type(tasks['pending'][0]) <type 'dict'>
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> w.task_add("Eat food") >>> w.task_add("Take a nap", priority="H", project="life", due="1359090000")
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> w.get_task(id=5)
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> id, task = w.get_task(id=14) >>> task['project'] = 'Updated project name' >>> w.task_update(task)
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> w.task_delete(id=3)
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> w.task_done(id=46)
You can point taskw
at different taskwarrior databases.
>>> from taskw import TaskWarrior >>> w = TaskWarrior(config_filename="~/some_project/.taskrc") >>> w.task_add("Use 'taskw'.")
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> config = w.load_config() >>> config['data']['location'] '/home/threebean/.task' >>> config['_forcecolor'] 'yes'
>>> from taskw import TaskWarrior >>> w = TaskWarrior(marshal=True) >>> w.get_task(id=10) (10, { 'description': 'Hello there!', 'entry': datetime.datetime(2014, 3, 14, 14, 18, 40, tzinfo=tzutc()) 'id': 10, 'project': 'Saying Hello', 'status': 'pending', 'uuid': UUID('4882751a-3966-4439-9675-948b1152895c') } )