X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/8ab10fb242dc70b4e5e94f0f1b1e29f4e9d1a9a3..faa9531194cd3657ce1e2f40e6e8067ac546958c:/tasklib/task.py diff --git a/tasklib/task.py b/tasklib/task.py index b884462..3a58e50 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -132,6 +132,11 @@ class Task(TaskResource): def __init__(self, warrior, **kwargs): self.warrior = warrior + # Check that user is not able to set read-only value in __init__ + for key in kwargs.keys(): + if key in self.read_only_fields: + raise RuntimeError('Field \'%s\' is read-only' % key) + # We serialize the data in kwargs so that users of the library # do not have to pass different data formats via __setitem__ and # __init__ methods, that would be confusing @@ -249,7 +254,7 @@ class Task(TaskResource): if self.warrior.version < VERSION_2_4_0: return self._data['description'] else: - return "description:{0}".format(self._data['description'] or '') + return "description:'{0}'".format(self._data['description'] or '') def delete(self): if not self.saved: @@ -261,9 +266,7 @@ class Task(TaskResource): if self.deleted: raise Task.DeletedTask("Task was already deleted") - self.warrior.execute_command([self['uuid'], 'delete'], config_override={ - 'confirmation': 'no', - }) + self.warrior.execute_command([self['uuid'], 'delete']) # Refresh the status again, so that we have updated info stored self.refresh(only_fields=['status']) @@ -330,7 +333,7 @@ class Task(TaskResource): def add_field(field): # Add the output of format_field method to args list (defaults to # field:value) - format_default = lambda k: '{0}:{1}'.format(k, self._data[k] or '') + format_default = lambda k: "{0}:'{1}'".format(k, self._data[k] or '') format_func = getattr(self, 'format_{0}'.format(field), lambda: format_default(field)) args.append(format_func()) @@ -517,6 +520,7 @@ class TaskWarrior(object): os.makedirs(data_location) self.config = { 'data.location': os.path.expanduser(data_location), + 'confirmation': 'no', } self.tasks = TaskQuerySet(self) self.version = self._get_version() @@ -574,6 +578,4 @@ class TaskWarrior(object): }) def undo(self): - self.execute_command(['undo'], config_override={ - 'confirmation': 'no', - }) + self.execute_command(['undo'])