[subprocess2] Replace VOID with DEVNULL
subprocess.DEVNULL was introduced in Python3 to serve same purpose
as subprocess2.VOID, so rename VOID to DEVNULL in subprocess2.
Change-Id: I6dade3306ffc3bc2441ac6083f362b099c2427e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2587758
Reviewed-by: Anthony Polito <apolito@google.com>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/subprocess2.py b/subprocess2.py
index e5ccc93..7df49da 100644
--- a/subprocess2.py
+++ b/subprocess2.py
@@ -21,18 +21,18 @@
if sys.version_info.major == 2:
import Queue
codecs.lookup('string-escape')
+ # Sends stdout or stderr to os.devnull.
+ DEVNULL = open(os.devnull, 'r+')
else:
import queue as Queue
# pylint: disable=redefined-builtin
basestring = (str, bytes)
+ DEVNULL = subprocess.DEVNULL
# Constants forwarded from subprocess.
PIPE = subprocess.PIPE
STDOUT = subprocess.STDOUT
-# Sends stdout or stderr to os.devnull.
-VOID = open(os.devnull, 'w')
-VOID_INPUT = open(os.devnull, 'r')
class CalledProcessError(subprocess.CalledProcessError):
@@ -107,7 +107,7 @@
in English.
- Sets shell=True on windows by default. You can override this by forcing
shell parameter to a value.
- - Adds support for VOID to not buffer when not needed.
+ - Adds support for DEVNULL to not buffer when not needed.
- Adds self.start property.
Note: Popen() can throw OSError when cwd or args[0] doesn't exist. Translate
@@ -197,16 +197,16 @@
def call(args, **kwargs):
"""Emulates subprocess.call().
- Automatically convert stdout=PIPE or stderr=PIPE to VOID.
+ Automatically convert stdout=PIPE or stderr=PIPE to DEVNULL.
In no case they can be returned since no code path raises
subprocess2.CalledProcessError.
Returns exit code.
"""
if kwargs.get('stdout') == PIPE:
- kwargs['stdout'] = VOID
+ kwargs['stdout'] = DEVNULL
if kwargs.get('stderr') == PIPE:
- kwargs['stderr'] = VOID
+ kwargs['stderr'] = DEVNULL
return communicate(args, **kwargs)[1]
@@ -236,7 +236,7 @@
- Discards returncode.
- Blocks stdin by default if not specified since no output will be visible.
"""
- kwargs.setdefault('stdin', VOID_INPUT)
+ kwargs.setdefault('stdin', DEVNULL)
# Like check_output, deny the caller from using stdout arg.
return communicate(args, stdout=PIPE, **kwargs)[0][0]
@@ -252,7 +252,7 @@
- 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."
"""
- kwargs.setdefault('stdin', VOID_INPUT)
+ kwargs.setdefault('stdin', DEVNULL)
if 'stdout' in kwargs:
raise ValueError('stdout argument not allowed, it would be overridden.')
return check_call_out(args, stdout=PIPE, **kwargs)[0]