From 10b4fd98142edef6ab7b034e10ae5c9551043999 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Sat, 8 Jun 2019 08:24:10 -0700 Subject: bpo-34886: Fix subprocess.run handling of exclusive arguments (GH-11727) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix an unintended ValueError from :func:`subprocess.run` when checking for conflicting `input` and `stdin` or `capture_output` and `stdout` or `stderr` args when they were explicitly provided but with `None` values within a passed in `**kwargs` dict rather than as passed directly by name. (cherry picked from commit 8cc605acdda5aff250ab4c9b524a7560f90ca9f3) Co-authored-by: Rémi Lapeyre --- Lib/subprocess.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Lib') diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 3c1abb74c2..53a5e72099 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -458,12 +458,12 @@ def run(*popenargs, The other arguments are the same as for the Popen constructor. """ if input is not None: - if 'stdin' in kwargs: + if kwargs.get('stdin') is not None: raise ValueError('stdin and input arguments may not both be used.') kwargs['stdin'] = PIPE if capture_output: - if ('stdout' in kwargs) or ('stderr' in kwargs): + if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: raise ValueError('stdout and stderr arguments may not be used ' 'with capture_output.') kwargs['stdout'] = PIPE -- cgit v1.2.1