]> git.madduck.net Git - etc/taskwarrior.git/commitdiff

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:

Task: Do not hardcode sys.stdin as input source for hooks
authorTomas Babej <tomasbabej@gmail.com>
Thu, 15 Jan 2015 21:02:17 +0000 (22:02 +0100)
committerTomas Babej <tomasbabej@gmail.com>
Thu, 15 Jan 2015 21:04:25 +0000 (22:04 +0100)
tasklib/task.py

index 0a74f6c9ecaf4b21027943b507a4e5c9db06867e..f21ea43110fab8488a21bcb134f03d603cb993dc 100644 (file)
@@ -207,7 +207,7 @@ class Task(TaskResource):
         pass
 
     @classmethod
-    def from_input(cls, modify=False):
+    def from_input(cls, input_file=sys.stdin, modify=False):
         """
         Creates a Task object, directly from the stdin, by reading one line.
         If modify=True, two lines are used, first line interpreted as the
@@ -218,18 +218,21 @@ class Task(TaskResource):
         Object created by this method should not be saved, deleted
         or refreshed, as t could create a infinite loop. For this
         reason, TaskWarrior instance is set to None.
+
+        Input_file argument can be used to specify the input file,
+        but defaults to sys.stdin.
         """
 
         # TaskWarrior instance is set to None
         task = cls(None)
 
         # Load the data from the input
-        task._load_data(json.loads(sys.stdin.readline().strip()))
+        task._load_data(json.loads(input_file.readline().strip()))
 
         # If this is a on-modify event, we are provided with additional
         # line of input, which provides updated data
         if modify:
-            task._update_data(json.loads(sys.stdin.readline().strip()))
+            task._update_data(json.loads(input_file.readline().strip()))
 
         return task