tasklib
=======
-A Python library for interacting with taskwarrior_ databases.
+.. image:: https://travis-ci.org/robgolding63/tasklib.png?branch=develop
+ :target: http://travis-ci.org/robgolding63/tasklib
+
+.. image:: https://coveralls.io/repos/robgolding63/tasklib/badge.png?branch=develop
+ :target: https://coveralls.io/r/robgolding63/tasklib?branch=develop
+
+tasklib is a Python library for interacting with taskwarrior_ databases, using
+a queryset API similar to that of Django's ORM.
+
+Supports Python 2.6, 2.7, 3.2, 3.3 and 3.4 with taskwarrior 2.1.x and above.
+Older versions of taskwarrior are untested and may not work.
Requirements
------------
-Before installing ``tasklib``, you'll need to install taskwarrior_.
+* taskwarrior_ v2.1.x or above.
Installation
------------
Usage
-----
-.. source-code:
+tasklib has a similar API to that of Django's ORM::
- >>> from tasklib.task import TaskWarrior
+ >>> from tasklib import TaskWarrior
>>> tw = TaskWarrior('/home/rob/.task')
>>> tasks = tw.tasks.pending()
['Tidy the house']
>>> type(tasks[0])
<class 'tasklib.task.Task'>
- >>> task[0].done()
-
-Filtering Tasks
----------------
-
-Tasks can be filtered using the ``TaskQuerySet`` API which emulates the
-Django ORM::
-
- >>> tw.tasks.filter(status='pending', tags__contain='work')
- ['Upgrade Ubuntu Server']
-
-Filter arguments are passed to the ``task`` command (``__`` is replaced by
-a period); so the above example is equivalent to the following command::
+ >>> tasks[0].done()
+ >>> tasks = tw.tasks.pending()
+ >>> tasks
+ ['Learn German']
+ >>> tasks[0]['tags'] = ['languages']
+ >>> tasks[0].save()
- $ task status:pending tags.contain=work
+For more advanced usage, see the documentation_.
.. _taskwarrior: http://taskwarrior.org
+.. _documentation: http://tasklib.readthedocs.org/en/latest/