[New-bugs-announce] [issue4537] webbrowser.UnixBrowser should use builtins.open

Michael Schurter report at bugs.python.org
Thu Dec 4 22:49:10 CET 2008

New submission from Michael Schurter <michael at lofiart.com>:

On the joyous occasion of Python 3000's release my friends & I were
playing with "import antigravity" and it failed for someone with the
following traceback (anonymized):

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/.../lib/python3.0/antigravity.py", line 4, in <module>
  File "/.../lib/python3.0/webbrowser.py", line 61, in open
    if browser.open(url, new, autoraise):
  File "/.../lib/python3.0/webbrowser.py", line 275, in open
    success = self._invoke(args, True, autoraise)
  File "/.../lib/python3.0/webbrowser.py", line 226, in _invoke
    inout = open(os.devnull, "r+")
  File "/.../lib/python3.0/webbrowser.py", line 61, in open
    if browser.open(url, new, autoraise):
  File "/.../lib/python3.0/webbrowser.py", line 271, in open
    "expected 0, 1, or 2, got %s" % new)
webbrowser.Error: Bad 'new' parameter to open(); expected 0, 1, or 2, got r+

I believe the following patch (against branches/release30-maint) fixes
it cleanly:

Index: Lib/webbrowser.py
--- Lib/webbrowser.py	(revision 67538)
+++ Lib/webbrowser.py	(working copy)
@@ -8,6 +8,7 @@
 import stat
 import subprocess
 import time
+import builtins
 __all__ = ["Error", "open", "open_new", "open_new_tab", "get", "register"]
@@ -223,7 +224,7 @@
         cmdline = [self.name] + raise_opt + args
         if remote or self.background:
-            inout = open(os.devnull, "r+")
+            inout = builtins.open(os.devnull, "r+")
             # for TTY browsers, we need stdin/out
             inout = None

components: Library (Lib)
messages: 76931
nosy: schmichael
severity: normal
status: open
title: webbrowser.UnixBrowser should use builtins.open
type: crash
versions: Python 3.0

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list