]> git.madduck.net Git - etc/taskwarrior.git/blobdiff - tasklib/task.py

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

TaskWarrior: Do not expand data_location twice
[etc/taskwarrior.git] / tasklib / task.py
index 0283f6f372157b457c8dba729e45eb259767c3e2..e448b04f64569cd0e131861abbdc4d63c60c2c44 100644 (file)
@@ -704,7 +704,7 @@ class TaskFilter(SerializingObject):
         attribute_key = key.split('.')[0]
 
         # Since this is user input, we need to normalize before we serialize
-        value = self._normalize(key, value)
+        value = self._normalize(attribute_key, value)
         value = self._serialize(attribute_key, value)
 
         # If we are filtering by uuid:, do not use uuid keyword
@@ -842,12 +842,20 @@ 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 = {
-            'data.location': os.path.expanduser(data_location),
+            'data.location': data_location,
             'confirmation': 'no',
             'dependency.confirmation': 'no',  # See TW-1483 or taskrc man page
             'recurrence.confirmation': 'no',  # Necessary for modifying R tasks
@@ -856,7 +864,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():