Index: subprocess2.py |
diff --git a/subprocess2.py b/subprocess2.py |
index 5678127aff4e96c1f60e114eec6a2012f9e828b9..895f5a5e19d7e89a09ffd1f2f3e6304d2bac0d03 100644 |
--- a/subprocess2.py |
+++ b/subprocess2.py |
@@ -248,7 +248,9 @@ def communicate(args, timeout=None, **kwargs): |
def call(args, **kwargs): |
"""Emulates subprocess.call(). |
- Automatically convert stdout=PIPE or stderr=PIPE to VOID. |
+ Automatically convert stdout=PIPE or stderr=PIPE to VOID since in no case they |
+ can be returned, no exception is thrown in this code path where stdout is not |
+ None. |
Dirk Pranke
2011/09/09 18:10:38
Grammar nit: "Automatically converts stdout=PIPE o
M-A Ruel
2011/09/09 18:59:21
Looks like the docstring was unclear since it's no
|
""" |
if kwargs.get('stdout') == PIPE: |
kwargs['stdout'] = VOID |
@@ -281,16 +283,12 @@ def capture(args, **kwargs): |
Returns stdout. |
- Discards returncode. |
- - Discards stderr. By default sets stderr=STDOUT. |
- - Blocks stdin by default since no output will be visible. |
+ - Blocks stdin by default if not specified since no output will be visible. |
""" |
- if kwargs.get('stdin') is None: |
- kwargs['stdin'] = VOID |
- if kwargs.get('stdout') is None: |
- kwargs['stdout'] = PIPE |
- if kwargs.get('stderr') is None: |
- kwargs['stderr'] = STDOUT |
- return communicate(args, **kwargs)[0][0] |
+ kwargs.setdefault('stdin', VOID) |
+ |
+ # Similar to check_output, deny using stdout arg. |
Dirk Pranke
2011/09/09 18:10:38
Grammar nit: "Like check_output(), we ignore any s
M-A Ruel
2011/09/09 18:59:21
No it's denied. Clarified comment.
|
+ return communicate(args, stdout=PIPE, **kwargs)[0][0] |
def check_output(args, **kwargs): |
@@ -298,15 +296,10 @@ def check_output(args, **kwargs): |
Captures stdout of a process call and returns stdout only. |
- - Discards stderr. By default sets stderr=STDOUT. |
- Throws if return code is not 0. |
- Works even prior to python 2.7. |
- - Blocks stdin by default since no output will be visible. |
+ - Blocks stdin by default if not specified since no output will be visible. |
+ - As per doc, "The stdout argument is not allowed as it is used internally." |
""" |
- if kwargs.get('stdin') is None: |
- kwargs['stdin'] = VOID |
- if kwargs.get('stdout') is None: |
- kwargs['stdout'] = PIPE |
- if kwargs.get('stderr') is None: |
- kwargs['stderr'] = STDOUT |
- return check_call_out(args, **kwargs)[0] |
+ kwargs.setdefault('stdin', VOID) |
+ return check_call_out(args, stdout=PIPE, **kwargs)[0] |