From: R David Murray Date: Mon, 3 Sep 2012 16:44:29 +0000 (-0400) Subject: #15447: Use subprocess.DEVNULL in webbrowser, instead of opening X-Git-Tag: v3.3.1rc1~818^2^2~146 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=02ca144b92eef8d2b8da10c7b70b4e9d42480b9b;p=python #15447: Use subprocess.DEVNULL in webbrowser, instead of opening This eliminates a ResourceWarning, since before webbrowser was explicitly opening os.devnull and then leaving it open. Tests to follow. Patch by Anton Barkovsky. --- diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py index 861742538e..94d4ad42e6 100644 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -230,7 +230,7 @@ class UnixBrowser(BaseBrowser): cmdline = [self.name] + raise_opt + args if remote or self.background: - inout = io.open(os.devnull, "r+") + inout = subprocess.DEVNULL else: # for TTY browsers, we need stdin/out inout = None @@ -354,7 +354,7 @@ class Konqueror(BaseBrowser): else: action = "openURL" - devnull = io.open(os.devnull, "r+") + devnull = subprocess.DEVNULL # if possible, put browser in separate process group, so # keyboard interrupts don't affect browser as well as Python setsid = getattr(os, 'setsid', None) diff --git a/Misc/NEWS b/Misc/NEWS index 93bc1dba61..0463aa24a3 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -21,6 +21,9 @@ Core and Builtins Library ------- +- Issue #15447: Use subprocess.DEVNULL in webbrowser, instead of opening + os.devnull explicitly and leaving it open. + - Issue #15509: webbrowser.UnixBrowser no longer passes empty arguments to Popen when %action substitutions produce empty strings.