From: Tomas Babej Date: Sun, 9 Aug 2015 12:59:02 +0000 (+0200) Subject: Merge branch 'fixes' of github.com:/tshirtman/tasklib into develop X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/commitdiff_plain/ff666e5453d71418ca45ee0542a82e2c58ef8442?hp=-c Merge branch 'fixes' of github.com:/tshirtman/tasklib into develop --- ff666e5453d71418ca45ee0542a82e2c58ef8442 diff --combined tasklib/backends.py index 12144f5,00b2210..32a8018 --- a/tasklib/backends.py +++ b/tasklib/backends.py @@@ -1,5 -1,4 +1,5 @@@ import abc +import copy import datetime import json import logging @@@ -7,6 -6,7 +7,7 @@@ import o import re import six import subprocess + import copy from .task import Task, TaskQuerySet from .filters import TaskWarriorFilter @@@ -16,6 -16,7 +17,7 @@@ DATE_FORMAT_CALC = '%Y-%m-%dT%H:%M:%S logger = logging.getLogger(__name__) + class Backend(object): @abc.abstractproperty @@@ -135,9 -136,9 +137,9 @@@ class TaskWarrior(Backend) def _get_version(self): p = subprocess.Popen( - ['task', '--version'], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + ['task', '--version'], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) stdout, stderr = [x.decode('utf-8') for x in p.communicate()] return stdout.strip('\n') @@@ -154,10 -155,11 +156,11 @@@ if serialized_value is '': escaped_serialized_value = '' else: - escaped_serialized_value = six.u("'{0}'").format(serialized_value) + escaped_serialized_value = six.u("'{0}'").format( + serialized_value) - format_default = lambda task: six.u("{0}:{1}").format(field, - escaped_serialized_value) + format_default = lambda task: six.u("{0}:{1}").format( + field, escaped_serialized_value) format_func = getattr(self, 'format_{0}'.format(field), format_default) @@@ -192,9 -194,9 +195,9 @@@ # Removed dependencies need to be prefixed with '-' return 'depends:' + ','.join( - [t['uuid'] for t in added] + - ['-' + t['uuid'] for t in removed] - ) + [t['uuid'] for t in added] + + ['-' + t['uuid'] for t in removed] + ) def format_description(self, task): # Task version older than 2.4.0 ignores first word of the @@@ -228,9 -230,9 +231,9 @@@ def get_config(self): raw_output = self.execute_command( - ['show'], - config_override={'verbose': 'nothing'} - ) + ['show'], + config_override={'verbose': 'nothing'} + ) config = dict() config_regex = re.compile(r'^(?P[^\s]+)\s+(?P[^\s].+$)') @@@ -381,14 -383,14 +384,14 @@@ taskfilter.add_filter_param(key, value) output = self.execute_command(['export', '--'] + - taskfilter.get_filter_params()) + taskfilter.get_filter_params()) # If more than 1 task has been matched still, raise an exception if not valid(output): raise TaskWarriorException( "Unique identifiers {0} with description: {1} matches " "multiple tasks: {2}".format( - task['uuid'] or task['id'], task['description'], output) + task['uuid'] or task['id'], task['description'], output) ) return json.loads(output[0]) diff --combined tasklib/task.py index 8145e2e,c40a3c7..f30cc61 --- a/tasklib/task.py +++ b/tasklib/task.py @@@ -1,6 -1,5 +1,5 @@@ from __future__ import print_function import copy - import datetime import importlib import json import logging @@@ -76,7 -75,6 +75,6 @@@ class TaskResource(SerializingObject) if update_original: self._original_data = copy.deepcopy(self._data) - def __getitem__(self, key): # This is a workaround to make TaskResource non-iterable # over simple index-based iteration @@@ -121,7 -119,7 +119,7 @@@ # to pass that to TaskWarrior. data_tuples = filter(lambda t: t[1] is not '', data_tuples) data = dict(data_tuples) - return json.dumps(data, separators=(',',':')) + return json.dumps(data, separators=(',', ':')) @property def _modified_fields(self): @@@ -225,7 -223,7 +223,7 @@@ class Task(TaskResource) # Create the TaskWarrior instance if none passed if backend is None: - backends = importlib.import_module('.backends') + backends = importlib.import_module('tasklib.backends') hook_parent_dir = os.path.dirname(os.path.dirname(sys.argv[0])) backend = backends.TaskWarrior(data_location=hook_parent_dir) @@@ -274,7 -272,6 +272,6 @@@ # If the tasks are not saved, compare the actual instances return id(self) == id(other) - def __hash__(self): if self['uuid']: # For saved Tasks, just define equality by equality of uuids @@@ -420,6 -417,7 +417,7 @@@ else: self._load_data(new_data) + class TaskQuerySet(object): """ Represents a lazy lookup for a task objects.