GothenburgBitFactory / tasklib

A Python library for interacting with taskwarrior databases.
http://tasklib.readthedocs.org/en/latest/
BSD 3-Clause "New" or "Revised" License
146 stars 27 forks source link

Support lte, gte filtering on attributes #111

Open onlyphantom opened 2 years ago

onlyphantom commented 2 years ago

First of all, thank you for the work you've done on this!

For a task with a custom UDA such as project duration (duration) in man-days, or number of resources (resources), I think it would be helpful to filter those tasks in a Django ORM-like manner.

Example of the API:

from tasklib import TaskWarrior
tw = TaskWarrior(data_location="~/vaults/tasks")
tw.tasks.pending().get(duration__gte=7)

This will query any pending tasks with a duration value of 7 or more.

This is very consistent to the current behavior as documented officially:

tw.tasks.pending().get(tags__contain='work')

Currently, the work-around is to read all tasks in a for-loop and then do a conditional check, but I thought this would be a much appreciated feature. What do you guys think?