X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/73cb96ecbbcaf43f05dc825a1017c2680b79f5a9..04a8a71210033ec8a7b084ecf2e8d0da1dc933ae:/tasklib/backends.py?ds=sidebyside diff --git a/tasklib/backends.py b/tasklib/backends.py index 2a00dee..1eb83b7 100644 --- a/tasklib/backends.py +++ b/tasklib/backends.py @@ -1,10 +1,17 @@ import abc +import datetime import json +import logging import os import re +import six import subprocess -from tasklib.filters import TaskWarriorFilter +from .task import Task, TaskQuerySet +from .filters import TaskWarriorFilter +from .serializing import local_zone + +DATE_FORMAT_CALC = '%Y-%m-%dT%H:%M:%S' VERSION_2_1_0 = six.u('2.1.0') VERSION_2_2_0 = six.u('2.2.0') @@ -16,10 +23,14 @@ VERSION_2_4_3 = six.u('2.4.3') VERSION_2_4_4 = six.u('2.4.4') VERSION_2_4_5 = six.u('2.4.5') +logger = logging.getLogger(__name__) class Backend(object): - filter_class = TaskWarriorFilter + @abc.abstractproperty + def filter_class(self): + """Returns the TaskFilter class used by this backend""" + pass @abc.abstractmethod def filter_tasks(self, filter_obj): @@ -205,6 +216,10 @@ class TaskWarrior(object): "datetime, its type is not supported: {}" .format(type(value))) + @property + def filter_class(self): + return TaskWarriorFilter + # Public interface def get_config(self):