Python bindings for your taskwarrior database
Project description
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.
Build Status
Branch |
Status |
---|---|
master |
|
develop |
Getting taskw
Installing
Using taskw requires that you first install taskwarrior.
Installing it from http://pypi.python.org/pypi/taskw is easy with pip:
$ pip install taskw
The Source
You can find the source on github at http://github.com/ralphbean/taskw
Examples
Looking at tasks
>>> 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'>
Adding tasks
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> w.task_add("Eat food") >>> w.task_add("Take a nap", priority="H", project="life", due="1359090000")
Retrieving tasks
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> w.get_task(id=5)
Updating tasks
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> id, task = w.get_task(id=14) >>> task['project'] = 'Updated project name' >>> w.task_update(task)
Deleting tasks
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> w.task_delete(id=3)
Completing tasks
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> w.task_done(id=46)
Being Flexible
You can point taskw at different taskwarrior databases.
>>> from taskw import TaskWarrior >>> w = TaskWarrior(config_filename="~/some_project/.taskrc") >>> w.task_add("Use 'taskw'.")
Looking at the config
>>> from taskw import TaskWarrior >>> w = TaskWarrior() >>> config = w.load_config() >>> config['data']['location'] '/home/threebean/.task' >>> config['_forcecolor'] 'yes'
Using Python-appropriate Types (Dates, UUIDs, etc)
>>> 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') } )
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file taskw-1.0.3.tar.gz
.
File metadata
- Download URL: taskw-1.0.3.tar.gz
- Upload date:
- Size: 39.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b640ec70fc0bbb4862589953488751b99509a9bd5480edf372f79a94ca5e47b9 |
|
MD5 | 09010ce19e0be86422516a3e784cb5d3 |
|
BLAKE2b-256 | 797e847ea63c3f108e7d1e1c9e6a2e5bbcd04c3b415579fe2fdae924ec5db304 |