Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(472)

Unified Diff: subprocess2.py

Issue 6840053: Use a marker instead of a string so it can be distingished when used as stdin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: subprocess2.py
diff --git a/subprocess2.py b/subprocess2.py
index 3cc79aeb899bcfa1650c79db36d459c2c71ff9db..c743b039007e2a96dd505b2b58d1b6fb1a38200a 100644
--- a/subprocess2.py
+++ b/subprocess2.py
@@ -21,7 +21,7 @@ import threading
PIPE = subprocess.PIPE
STDOUT = subprocess.STDOUT
# Sends stdout or stderr to os.devnull.
-VOID = '/dev/null'
+VOID = object()
# Error code when a process was killed because it timed out.
TIMED_OUT = -2001
@@ -203,10 +203,14 @@ def call(args, timeout=None, **kwargs):
"""
stdin = kwargs.pop('stdin', None)
if stdin is not None:
- assert stdin != PIPE
- # When stdin is passed as an argument, use it as the actual input data and
- # set the Popen() parameter accordingly.
- kwargs['stdin'] = PIPE
+ if stdin is VOID:
+ kwargs['stdin'] = open(os.devnull, 'r')
+ stdin = None
+ else:
+ assert isinstance(stdin, str)
+ # When stdin is passed as an argument, use it as the actual input data and
+ # set the Popen() parameter accordingly.
+ kwargs['stdin'] = PIPE
if not timeout:
# Normal workflow.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698