From d6732e2b96e9f646510985b780d86c667b5eb879 Mon Sep 17 00:00:00 2001 From: Tomas Babej Date: Tue, 17 Mar 2015 23:19:05 +0100 Subject: [PATCH] TaskWarrior: Use default .taskrc Currently, to make UDAs (adding/modifying tasks with UDA, filtering by UDAs) one needs to update the TaskWarrior's config, as described in docs: http://tasklib.readthedocs.org/en/latest/#working-with-udas This is a little bit tedious, since every application that uses tasklib, and wants to support UDAs, needs to either parse the .taskrc file itself, or have user specify the UDA configuration redundantly by some other mechanism. Also, by using rc:/ we are using default values for other config settings, which may take users by surprise (i.e. if user sets a custom value for recurrence.limit, and then any tasklib call will generate more/less recurrence tasks than he wants to see). This commit changes the approach and makes .taskrc the default config file location. --- tasklib/task.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tasklib/task.py b/tasklib/task.py index 8a2ea7a..23f9277 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -842,8 +842,15 @@ class TaskQuerySet(object): class TaskWarrior(object): - def __init__(self, data_location='~/.task', create=True): + def __init__(self, data_location='~/.task', create=True, taskrc_location='~/.taskrc'): data_location = os.path.expanduser(data_location) + self.taskrc_location = os.path.expanduser(taskrc_location) + + # If taskrc does not exist, pass / to use defaults and avoid creating + # dummy .taskrc file by TaskWarrior + if not os.path.exists(self.taskrc_location): + self.taskrc_location = '/' + if create and not os.path.exists(data_location): os.makedirs(data_location) self.config = { @@ -856,7 +863,7 @@ class TaskWarrior(object): self.version = self._get_version() def _get_command_args(self, args, config_override={}): - command_args = ['task', 'rc:/'] + command_args = ['task', 'rc:{0}'.format(self.taskrc_location)] config = self.config.copy() config.update(config_override) for item in config.items(): -- 2.39.5