]> granicus.if.org Git - python/commitdiff
SF patch 1631942 by Collin Winter:
authorGuido van Rossum <guido@python.org>
Wed, 10 Jan 2007 16:19:56 +0000 (16:19 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 10 Jan 2007 16:19:56 +0000 (16:19 +0000)
(a) "except E, V" -> "except E as V"
(b) V is now limited to a simple name (local variable)
(c) V is now deleted at the end of the except block

295 files changed:
Demo/cgi/wiki.py
Demo/comparisons/regextest.py
Demo/comparisons/systemtest.py
Demo/parser/test_parser.py
Demo/parser/unparse.py
Demo/pdist/FSProxy.py
Demo/pdist/cmdfw.py
Demo/pdist/cmptree.py
Demo/pdist/cvslock.py
Demo/pdist/rrcs.py
Demo/pysvr/pysvr.py
Demo/rpc/nfsclient.py
Demo/rpc/rpc.py
Demo/scripts/eqfix.py
Demo/scripts/ftpstats.py
Demo/scripts/mboxconvert.py
Demo/scripts/newslist.py
Demo/scripts/pp.py
Demo/scripts/update.py
Demo/sockets/gopher.py
Demo/sockets/telnet.py
Demo/threads/find.py
Demo/threads/telnet.py
Demo/tkinter/guido/AttrDialog.py
Demo/tkinter/guido/ManPage.py
Demo/tkinter/guido/mbox.py
Demo/tkinter/guido/tkman.py
Demo/tkinter/guido/wish.py
Doc/howto/urllib2.rst
Doc/lib/email-unpack.py
Doc/lib/libcsv.tex
Doc/lib/libgetopt.tex
Doc/lib/libshutil.tex
Doc/lib/libsocket.tex
Doc/lib/libsubprocess.tex
Doc/lib/libxdrlib.tex
Doc/lib/libxmlrpclib.tex
Doc/lib/sqlite3/complete_statement.py
Doc/tools/findcsyms
Doc/tools/listmodules
Doc/tools/mkhowto
Doc/tools/mksourcepkg
Doc/tools/prechm.py
Doc/tools/sgmlconv/docfixer.py
Doc/tools/sgmlconv/esis2sgml.py
Doc/tools/sgmlconv/esistools.py
Doc/tools/sgmlconv/latex2esis.py
Doc/tut/tut.tex
Grammar/Grammar
Lib/CGIHTTPServer.py
Lib/ConfigParser.py
Lib/SimpleXMLRPCServer.py
Lib/_strptime.py
Lib/asynchat.py
Lib/asyncore.py
Lib/base64.py
Lib/bsddb/dbtables.py
Lib/bsddb/test/test_basics.py
Lib/bsddb/test/test_compare.py
Lib/bsddb/test/test_pickle.py
Lib/bsddb/test/test_recno.py
Lib/bsddb/test/test_thread.py
Lib/cgi.py
Lib/codecs.py
Lib/codeop.py
Lib/compileall.py
Lib/compiler/pycodegen.py
Lib/contextlib.py
Lib/csv.py
Lib/ctypes/macholib/dyld.py
Lib/ctypes/test/__init__.py
Lib/ctypes/test/test_bitfields.py
Lib/ctypes/test/test_structures.py
Lib/ctypes/util.py
Lib/dis.py
Lib/distutils/bcppcompiler.py
Lib/distutils/command/register.py
Lib/distutils/command/sdist.py
Lib/distutils/command/upload.py
Lib/distutils/core.py
Lib/distutils/cygwinccompiler.py
Lib/distutils/dir_util.py
Lib/distutils/dist.py
Lib/distutils/emxccompiler.py
Lib/distutils/fancy_getopt.py
Lib/distutils/file_util.py
Lib/distutils/msvccompiler.py
Lib/distutils/spawn.py
Lib/distutils/sysconfig.py
Lib/distutils/unixccompiler.py
Lib/distutils/util.py
Lib/doctest.py
Lib/encodings/uu_codec.py
Lib/filecmp.py
Lib/ftplib.py
Lib/hotshot/stones.py
Lib/htmllib.py
Lib/httplib.py
Lib/idlelib/ClassBrowser.py
Lib/idlelib/EditorWindow.py
Lib/idlelib/GrepDialog.py
Lib/idlelib/IOBinding.py
Lib/idlelib/PyShell.py
Lib/idlelib/ScriptBinding.py
Lib/idlelib/SearchEngine.py
Lib/idlelib/run.py
Lib/imaplib.py
Lib/lib-tk/Tkinter.py
Lib/linecache.py
Lib/logging/config.py
Lib/mailbox.py
Lib/mhlib.py
Lib/mimetypes.py
Lib/modulefinder.py
Lib/msilib/__init__.py
Lib/nntplib.py
Lib/optparse.py
Lib/os.py
Lib/pdb.py
Lib/pickle.py
Lib/pkgutil.py
Lib/plat-irix5/torgb.py
Lib/plat-irix6/torgb.py
Lib/plat-mac/EasyDialogs.py
Lib/plat-mac/MiniAEFrame.py
Lib/plat-mac/aetools.py
Lib/plat-mac/applesingle.py
Lib/plat-mac/argvemulator.py
Lib/plat-mac/buildtools.py
Lib/plat-mac/bundlebuilder.py
Lib/plat-mac/gensuitemodule.py
Lib/plat-mac/macresource.py
Lib/plat-mac/pimp.py
Lib/plat-mac/terminalcommand.py
Lib/platform.py
Lib/poplib.py
Lib/pstats.py
Lib/pty.py
Lib/py_compile.py
Lib/pydoc.py
Lib/quopri.py
Lib/re.py
Lib/rexec.py
Lib/sgmllib.py
Lib/shutil.py
Lib/site.py
Lib/smtpd.py
Lib/smtplib.py
Lib/sqlite3/test/dbapi.py
Lib/sqlite3/test/hooks.py
Lib/sqlite3/test/userfunctions.py
Lib/subprocess.py
Lib/tabnanny.py
Lib/tarfile.py
Lib/telnetlib.py
Lib/tempfile.py
Lib/test/pickletester.py
Lib/test/regrtest.py
Lib/test/sortperf.py
Lib/test/string_tests.py
Lib/test/test_bool.py
Lib/test/test_cfgparser.py
Lib/test/test_cgi.py
Lib/test/test_class.py
Lib/test/test_codecs.py
Lib/test/test_compiler.py
Lib/test/test_contextlib.py
Lib/test/test_cookielib.py
Lib/test/test_dbm.py
Lib/test/test_decimal.py
Lib/test/test_defaultdict.py
Lib/test/test_descr.py
Lib/test/test_dict.py
Lib/test/test_dl.py
Lib/test/test_eof.py
Lib/test/test_exceptions.py
Lib/test/test_extcall.py
Lib/test/test_file.py
Lib/test/test_format.py
Lib/test/test_frozen.py
Lib/test/test_future.py
Lib/test/test_generators.py
Lib/test/test_grammar.py
Lib/test/test_import.py
Lib/test/test_linuxaudiodev.py
Lib/test/test_nis.py
Lib/test/test_opcodes.py
Lib/test/test_optparse.py
Lib/test/test_os.py
Lib/test/test_ossaudiodev.py
Lib/test/test_parser.py
Lib/test/test_pep277.py
Lib/test/test_pyexpat.py
Lib/test/test_re.py
Lib/test/test_runpy.py
Lib/test/test_sax.py
Lib/test/test_set.py
Lib/test/test_socket.py
Lib/test/test_socket_ssl.py
Lib/test/test_socketserver.py
Lib/test/test_strftime.py
Lib/test/test_string.py
Lib/test/test_strptime.py
Lib/test/test_subprocess.py
Lib/test/test_sunaudiodev.py
Lib/test/test_support.py
Lib/test/test_syntax.py
Lib/test/test_sys.py
Lib/test/test_tarfile.py
Lib/test/test_tcl.py
Lib/test/test_trace.py
Lib/test/test_traceback.py
Lib/test/test_urllib2net.py
Lib/test/test_userdict.py
Lib/test/test_uu.py
Lib/test/test_winreg.py
Lib/timeit.py
Lib/toaiff.py
Lib/token.py
Lib/trace.py
Lib/unittest.py
Lib/urllib.py
Lib/urllib2.py
Lib/uu.py
Lib/warnings.py
Lib/webbrowser.py
Lib/xdrlib.py
Lib/xml/sax/__init__.py
Lib/xml/sax/expatreader.py
Lib/xmllib.py
Lib/xmlrpclib.py
Lib/zipfile.py
Mac/BuildScript/build-installer.py
Mac/Demo/applescript/makedisk.py
Mac/Demo/imgbrowse/imgbrowse.py
Mac/Demo/mlte/mlted.py
Mac/Demo/resources/copyres.py
Mac/Demo/textedit/ped.py
Mac/scripts/BuildApplet.py
Mac/scripts/buildpkg.py
Misc/BeOS-setup.py
Modules/parsermodule.c
Python/compile.c
Python/graminit.c
Tools/audiopy/audiopy
Tools/bgen/bgen/scantools.py
Tools/compiler/compile.py
Tools/compiler/regrtest.py
Tools/faqwiz/faqw.py
Tools/faqwiz/faqwiz.py
Tools/freeze/checkextensions_win32.py
Tools/freeze/freeze.py
Tools/i18n/msgfmt.py
Tools/i18n/pygettext.py
Tools/pybench/CommandLine.py
Tools/pybench/pybench.py
Tools/pynche/Main.py
Tools/scripts/byext.py
Tools/scripts/byteyears.py
Tools/scripts/checkappend.py
Tools/scripts/classfix.py
Tools/scripts/cleanfuture.py
Tools/scripts/cvsfiles.py
Tools/scripts/dutree.py
Tools/scripts/finddiv.py
Tools/scripts/findlinksto.py
Tools/scripts/findnocoding.py
Tools/scripts/fixcid.py
Tools/scripts/fixdiv.py
Tools/scripts/fixheader.py
Tools/scripts/fixnotice.py
Tools/scripts/fixps.py
Tools/scripts/ftpmirror.py
Tools/scripts/linktree.py
Tools/scripts/logmerge.py
Tools/scripts/md5sum.py
Tools/scripts/methfix.py
Tools/scripts/ndiff.py
Tools/scripts/pathfix.py
Tools/scripts/pindent.py
Tools/scripts/pysource.py
Tools/scripts/redemo.py
Tools/scripts/reindent.py
Tools/scripts/rgrep.py
Tools/scripts/texi2html.py
Tools/scripts/treesync.py
Tools/scripts/untabify.py
Tools/unicode/comparecodecs.py
Tools/unicode/gencodec.py
Tools/unicode/listcodecs.py
Tools/versioncheck/pyversioncheck.py
Tools/webchecker/wcgui.py
Tools/webchecker/webchecker.py
Tools/webchecker/websucker.py
setup.py

index ee094a8ef8968993c4c73991891f814f89c11ebf..2f944d6a973bd8ee7b655624805265e4e6b86008 100644 (file)
@@ -119,5 +119,5 @@ class WikiPage:
                 f.write('\n')
             f.close()
             return ""
-        except IOError, err:
+        except IOError as err:
             return "IOError: %s" % str(err)
index b27d741d7e0a344928a157fbb47c7101aa07f48c..1fab052e9d3d6bb0b708f0a520be871670c5237f 100755 (executable)
@@ -28,7 +28,7 @@ def main():
     for file in sys.argv[1:]:
         try:
             fp = open(file, 'r')
-        except IOError, msg:
+        except IOError as msg:
             print "%s: %s" % (file, msg)
             continue
         lineno = 0
index bbc313ba14545c8b82ec559a46cea9272f164a2b..d3fc72bccceafc8c14c5ae97a974363bfe4afb98 100755 (executable)
@@ -41,7 +41,7 @@ def main():
 def reportboguslinks(prefix):
     try:
         names = os.listdir('.')
-    except os.error, msg:
+    except os.error as msg:
         print "%s%s: can't list: %s" % (prefix, '.', msg)
         return
     names.sort()
@@ -62,7 +62,7 @@ def reportboguslinks(prefix):
         elif S_ISDIR(mode):
             try:
                 os.chdir(name)
-            except os.error, msg:
+            except os.error as msg:
                 print "%s%s: can't chdir: %s" % \
                       (prefix, name, msg)
                 continue
index be39bca7f0353f38e632f574665d7b97b5768fcb..1589f3b8a5c19516cb363b06db285a26daec30e1 100755 (executable)
@@ -17,7 +17,7 @@ def testChunk(t, fileName):
         # against a large source file like Tkinter.py.
         ast = None
         new = parser.tuple2ast(tup)
-    except parser.ParserError, err:
+    except parser.ParserError as err:
         print
         print 'parser module raised exception on input file', fileName + ':'
         traceback.print_exc()
index 32acbed9c98aed16e36a9c9c5f8af03e657c9418..1c6e9330d4dbb6d27ce15afe7ed18c1d0d5c6cb3 100644 (file)
@@ -492,7 +492,7 @@ def testdir(a):
                 print 'Testing %s' % fullname
                 try:
                     roundtrip(fullname, output)
-                except Exception, e:
+                except Exception as e:
                     print '  Failed to compile, exception is %s' % repr(e)
             elif os.path.isdir(fullname):
                 testdir(fullname)
index a1ab635c08bafd4b5c051ab912a974b06c27beaa..dad4015ccc1fb8b3d2786c75cd9c99f2c849c309 100755 (executable)
@@ -87,7 +87,7 @@ class FSProxyLocal:
                     fs = macfs.FSSpec(name)
                     c, t = fs.GetCreatorType()
                     if t != 'TEXT': return 0
-                except macfs.error, msg:
+                except macfs.error as msg:
                     print "***", name, msg
                     return 0
         else:
index e2edd0a86e66e33763e89ac10946238db415f8c0..47d13bc5da3b8b210622bda7c4b1221bd84a1551 100755 (executable)
@@ -42,7 +42,7 @@ class CommandFrameWork:
         if args is None: args = sys.argv[1:]
         try:
             opts, args = getopt.getopt(args, self.GlobalFlags)
-        except getopt.error, msg:
+        except getopt.error as msg:
             return self.usage(msg)
         self.options(opts)
         if not args:
@@ -62,7 +62,7 @@ class CommandFrameWork:
                 flags = ''
             try:
                 opts, args = getopt.getopt(args[1:], flags)
-            except getopt.error, msg:
+            except getopt.error as msg:
                 return self.usage(
                         "subcommand %s: " % cmd + str(msg))
             self.ready()
index fa06f5f4674dd6fd0771912aa0a9a624e88588d5..5031869123b09982a9edae2ae64d0b4dca16b52f 100755 (executable)
@@ -135,7 +135,7 @@ def compare(local, remote, mode):
 def sendfile(local, remote, name):
     try:
         remote.create(name)
-    except (IOError, os.error), msg:
+    except (IOError, os.error) as msg:
         print "cannot create:", msg
         return
 
@@ -171,7 +171,7 @@ def recvfile(local, remote, name):
 def recvfile_real(local, remote, name):
     try:
         local.create(name)
-    except (IOError, os.error), msg:
+    except (IOError, os.error) as msg:
         print "cannot create:", msg
         return
 
index 8f6d008cbf44ea62c4acca1603c55a1980394bd9..6484e716a2901f0ed4ce2daf715113c0f7eebe91 100755 (executable)
@@ -129,7 +129,7 @@ class Lock:
                 self.lockdir = self.cvslck
                 os.mkdir(self.cvslck, 0777)
                 return
-            except os.error, msg:
+            except os.error as msg:
                 self.lockdir = None
                 if msg[0] == EEXIST:
                     try:
@@ -234,7 +234,7 @@ def MultipleWriteLock(repositories, delay = DELAY):
         for r in repositories:
             try:
                 locks.append(WriteLock(r, 0))
-            except Locked, instance:
+            except Locked as instance:
                 del locks
                 break
         else:
index 4d23e6c1ee885f1262c1aa47db3668abdda6cfd9..540d29608983a34e1f24e54362400d32b5b4fbb2 100755 (executable)
@@ -22,7 +22,7 @@ def main():
             raise getopt.error, "unknown command"
         coptset, func = commands[cmd]
         copts, files = getopt.getopt(rest, coptset)
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         print "usage: rrcs [options] command [options] [file] ..."
         print "where command can be:"
@@ -41,7 +41,7 @@ def main():
     for fn in files:
         try:
             func(x, copts, fn)
-        except (IOError, os.error), msg:
+        except (IOError, os.error) as msg:
             print "%s: %s" % (fn, msg)
 
 def checkin(x, copts, fn):
index 3b692b3d2fef70e43930a184d43ba5871eba566e..b1b7565ba3b5c61d57a8cdb7d93833baddc652fb 100755 (executable)
@@ -21,14 +21,14 @@ def main():
         opts, args = getopt.getopt(sys.argv[1:], "")
         if len(args) > 1:
             raise getopt.error, "Too many arguments."
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(msg)
     for o, a in opts:
         pass
     if args:
         try:
             port = string.atoi(args[0])
-        except ValueError, msg:
+        except ValueError as msg:
             usage(msg)
     else:
         port = PORT
@@ -83,7 +83,7 @@ def run_interpreter(stdin, stdout):
         source = source + line
         try:
             code = compile_command(source)
-        except SyntaxError, err:
+        except SyntaxError as err:
             source = ""
             traceback.print_exception(SyntaxError, err, None, file=stdout)
             continue
@@ -92,7 +92,7 @@ def run_interpreter(stdin, stdout):
         source = ""
         try:
             run_command(code, stdin, stdout, globals)
-        except SystemExit, how:
+        except SystemExit as how:
             if how:
                 try:
                     how = str(how)
@@ -109,7 +109,7 @@ def run_command(code, stdin, stdout, globals):
         sys.stdin = stdin
         try:
             exec(code, globals)
-        except SystemExit, how:
+        except SystemExit as how:
             raise SystemExit, how, sys.exc_info()[2]
         except:
             type, value, tb = sys.exc_info()
index 8e5a199c6d2a838ac745f65661029d2f61e77779..3890aff953a7de157c599b1f02bb08103204dad0 100644 (file)
@@ -194,8 +194,7 @@ def test():
     fh = sf[1]
     if fh:
         ncl = NFSClient(host)
-        as = ncl.Getattr(fh)
-        print as
+        print ncl.Getattr(fh)
         list = ncl.Listdir(fh)
         for item in list: print item
         mcl.Umnt(filesys)
index 141fe09a5c0937fe670ae8565322e484c071c949..f7231c1b547bf41c8ecfcf1ac7a3336223849a30 100644 (file)
@@ -330,7 +330,8 @@ def bindresvport(sock, host):
         try:
             sock.bind((host, i))
             return last_resv_port_tried
-        except socket.error, (errno, msg):
+        except socket.error as e:
+            (errno, msg) = e
             if errno != 114:
                 raise socket.error, (errno, msg)
     raise RuntimeError, 'can\'t assign reserved port'
@@ -765,7 +766,7 @@ class TCPServer(Server):
                 call = recvrecord(sock)
             except EOFError:
                 break
-            except socket.error, msg:
+            except socket.error as msg:
                 print 'socket error:', msg
                 break
             reply = self.handle(call)
@@ -866,7 +867,7 @@ def testsvr():
     s = S('', 0x20000000, 1, 0)
     try:
         s.unregister()
-    except RuntimeError, msg:
+    except RuntimeError as msg:
         print 'RuntimeError:', msg, '(ignored)'
     s.register()
     print 'Service started...'
index 35c43aa04dfb7e0b92af6787ea536d466004027e..497ab205bb7eb8dc831fff4dbc529d5ee45e243f 100755 (executable)
@@ -62,7 +62,7 @@ def recursedown(dirname):
     bad = 0
     try:
         names = os.listdir(dirname)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: cannot list directory: %r\n' % (dirname, msg))
         return 1
     names.sort()
@@ -83,7 +83,7 @@ def fix(filename):
 ##      dbg('fix(%r)\n' % (dirname,))
     try:
         f = open(filename, 'r')
-    except IOError, msg:
+    except IOError as msg:
         err('%s: cannot open: %r\n' % (filename, msg))
         return 1
     head, tail = os.path.split(filename)
@@ -120,7 +120,7 @@ def fix(filename):
             if g is None:
                 try:
                     g = open(tempname, 'w')
-                except IOError, msg:
+                except IOError as msg:
                     f.close()
                     err('%s: cannot create: %r\n' % (tempname, msg))
                     return 1
@@ -144,17 +144,17 @@ def fix(filename):
     try:
         statbuf = os.stat(filename)
         os.chmod(tempname, statbuf[ST_MODE] & 07777)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: warning: chmod failed (%r)\n' % (tempname, msg))
     # Then make a backup of the original file as filename~
     try:
         os.rename(filename, filename + '~')
-    except os.error, msg:
+    except os.error as msg:
         err('%s: warning: backup failed (%r)\n' % (filename, msg))
     # Now move the temp file to the original file
     try:
         os.rename(tempname, filename)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: rename failed (%r)\n' % (filename, msg))
         return 1
     # Return succes
index 5c1599e6639fa11bb9bbdfd70623587da5acdc4a..c7c074909cfcff2198bd484c78e3f496a15c5e00 100755 (executable)
@@ -25,7 +25,7 @@ def main():
     search = None
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'm:s:')
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         print 'usage: ftpstats [-m maxitems] [file]'
         sys.exit(2)
@@ -41,7 +41,7 @@ def main():
     else:
         try:
             f = open(file, 'r')
-        except IOError, msg:
+        except IOError as msg:
             print file, ':', msg
             sys.exit(1)
     bydate = {}
index 8c462f3b122917acb5a09ff19ea2c6b491275387..8da37bff749f5c6fb2fcfb7a4f164157a7e16c1d 100755 (executable)
@@ -16,7 +16,7 @@ def main():
     dofile = mmdf
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'f')
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stderr.write('%s\n' % msg)
         sys.exit(2)
     for o, a in opts:
@@ -33,7 +33,7 @@ def main():
         elif os.path.isfile(arg):
             try:
                 f = open(arg)
-            except IOError, msg:
+            except IOError as msg:
                 sys.stderr.write('%s: %s\n' % (arg, msg))
                 sts = 1
                 continue
@@ -56,7 +56,7 @@ def mh(dir):
         fn = os.path.join(dir, msg)
         try:
             f = open(fn)
-        except IOError, msg:
+        except IOError as msg:
             sys.stderr.write('%s: %s\n' % (fn, msg))
             sts = 1
             continue
index a63121498048c2268ce51967960500ffed7036a9..0111acec27309135c26bd09b84bdc9fb2340e924 100755 (executable)
@@ -330,7 +330,7 @@ def main():
         else:
             s = NNTP(newshost)
         connected = 1
-    except (nntplib.error_temp, nntplib.error_perm), x:
+    except (nntplib.error_temp, nntplib.error_perm) as x:
         print 'Error connecting to host:', x
         print 'I\'ll try to use just the local list.'
         connected = 0
index 0491fa9bf8bc8e3e6755e9c10354243c7801d86b..2530ea34a848134d4f7ac000f13f762f35637de1 100755 (executable)
@@ -35,7 +35,7 @@ PFLAG = 0
 
 try:
     optlist, ARGS = getopt.getopt(sys.argv[1:], 'acde:F:np')
-except getopt.error, msg:
+except getopt.error as msg:
     sys.stderr.write(sys.argv[0] + ': ' + msg + '\n')
     sys.exit(2)
 
index eac1a2280e896c706a738577e077101de2f1bea5..a965e4a833912c54184db611454542707abce58c 100755 (executable)
@@ -19,7 +19,7 @@ class FileObj:
         self.changed = 0
         try:
             self.lines = open(filename, 'r').readlines()
-        except IOError, msg:
+        except IOError as msg:
             print '*** Can\'t open "%s":' % filename, msg
             self.lines = None
             return
@@ -32,7 +32,7 @@ class FileObj:
         try:
             os.rename(self.filename, self.filename + '~')
             fp = open(self.filename, 'w')
-        except (os.error, IOError), msg:
+        except (os.error, IOError) as msg:
             print '*** Can\'t rewrite "%s":' % self.filename, msg
             return
         print 'writing', self.filename
@@ -67,7 +67,7 @@ def main():
     if sys.argv[1:]:
         try:
             fp = open(sys.argv[1], 'r')
-        except IOError, msg:
+        except IOError as msg:
             print 'Can\'t open "%s":' % sys.argv[1], msg
             sys.exit(1)
     else:
index 2c46da621b6197e92a74ca512757c63d4bb5281b..0635ac17c3a5943ecef200eb07da0dc2996d2e7d 100755 (executable)
@@ -142,7 +142,7 @@ def browser(*args):
         raise RuntimeError, 'too many args'
     try:
         browse_menu(selector, host, port)
-    except socket.error, msg:
+    except socket.error as msg:
         print 'Socket error:', msg
         sys.exit(1)
     except KeyboardInterrupt:
@@ -202,7 +202,7 @@ def browse_textfile(selector, host, port):
         p = os.popen('${PAGER-more}', 'w')
         x = SaveLines(p)
         get_alt_textfile(selector, host, port, x.writeln)
-    except IOError, msg:
+    except IOError as msg:
         print 'IOError:', msg
     if x:
         x.close()
@@ -213,7 +213,7 @@ def browse_textfile(selector, host, port):
     try:
         get_alt_textfile(selector, host, port, x.writeln)
         print 'Done.'
-    except IOError, msg:
+    except IOError as msg:
         print 'IOError:', msg
     x.close()
 
@@ -311,7 +311,7 @@ def open_savefile():
         cmd = savefile[1:].strip()
         try:
             p = os.popen(cmd, 'w')
-        except IOError, msg:
+        except IOError as msg:
             print repr(cmd), ':', msg
             return None
         print 'Piping through', repr(cmd), '...'
@@ -320,7 +320,7 @@ def open_savefile():
         savefile = os.path.expanduser(savefile)
     try:
         f = open(savefile, 'w')
-    except IOError, msg:
+    except IOError as msg:
         print repr(savefile), ':', msg
         return None
     print 'Saving to', repr(savefile), '...'
index d50c37f2cf0f36818429fe68d4f7107e4dca2db0..6bc9bcce86bd5efe95000aaf18e1c4c076e73b6d 100755 (executable)
@@ -52,7 +52,7 @@ def main():
     #
     try:
         s.connect((host, port))
-    except error, msg:
+    except error as msg:
         sys.stderr.write('connect failed: ' + repr(msg) + '\n')
         sys.exit(1)
     #
index 14148b8bb96cd307a35f94da066ad2ad02661d37..68ca155fe3a746cab4993e266605786c5a1ea1e7 100644 (file)
@@ -131,7 +131,7 @@ def selector(dir, name, fullname, stat):
 def find(dir, pred, wq):
     try:
         names = os.listdir(dir)
-    except os.error, msg:
+    except os.error as msg:
         print repr(dir), ':', msg
         return
     for name in names:
@@ -139,7 +139,7 @@ def find(dir, pred, wq):
             fullname = os.path.join(dir, name)
             try:
                 stat = os.lstat(fullname)
-            except os.error, msg:
+            except os.error as msg:
                 print repr(fullname), ':', msg
                 continue
             if pred(dir, name, fullname, stat):
index 707a35386feb5d49e8e760cb4fc10893bfc97669..09f3bd9b188f676cf44f1c33c78640085be820cc 100644 (file)
@@ -56,7 +56,7 @@ def main():
     #
     try:
         s.connect((host, port))
-    except error, msg:
+    except error as msg:
         sys.stderr.write('connect failed: %r\n' % (msg,))
         sys.exit(1)
     #
index 9fa699e2878be8c67ffb8ec01ee42fe89998334e..d8b257168ccba114bdc9d7474f2ff2bb09d9540c 100755 (executable)
@@ -156,7 +156,7 @@ class PackDialog(Dialog):
             self.current = self.var.get()
             try:
                 self.dialog.widget.pack(**{self.option: self.current})
-            except TclError, msg:
+            except TclError as msg:
                 print msg
                 self.refresh()
 
@@ -212,7 +212,7 @@ class RemotePackDialog(PackDialog):
                                      'pack',
                                      'info',
                                      self.widget))
-        except TclError, msg:
+        except TclError as msg:
             print msg
             return
         dict = {}
@@ -239,7 +239,7 @@ class RemotePackDialog(PackDialog):
                         '-'+self.option,
                         self.dialog.master.tk.merge(
                                 self.current))
-            except TclError, msg:
+            except TclError as msg:
                 print msg
                 self.refresh()
 
@@ -285,7 +285,7 @@ class WidgetDialog(Dialog):
             self.current = self.var.get()
             try:
                 self.dialog.widget[self.option] = self.current
-            except TclError, msg:
+            except TclError as msg:
                 print msg
                 self.refresh()
 
@@ -374,7 +374,7 @@ class RemoteWidgetDialog(WidgetDialog):
                     self.master.send(self.app,
                                      self.widget,
                                      'config'))
-        except TclError, msg:
+        except TclError as msg:
             print msg
             return
         dict = {}
@@ -398,7 +398,7 @@ class RemoteWidgetDialog(WidgetDialog):
                         'config',
                         '-'+self.option,
                         self.current)
-            except TclError, msg:
+            except TclError as msg:
                 print msg
                 self.refresh()
 
@@ -445,7 +445,7 @@ def opendialogs(e):
         if widget == '.': continue
         try:
             RemotePackDialog(list, list.app, widget)
-        except TclError, msg:
+        except TclError as msg:
             print msg
 
 test()
index 221af887cd587fd129bfaa06ad5ce749663255ea..b189b6428c700b0569f4d16773f4d821e7e43122 100755 (executable)
@@ -95,7 +95,7 @@ class EditableManPage(ScrolledText):
             self._parseline('')
         try:
             self.tk.deletefilehandler(self.fp)
-        except TclError, msg:
+        except TclError as msg:
             pass
         self.fp.close()
         self.fp = None
index 3c36d88991202820fafb35ff6466e7d5dfc152f4..47c38b960a49010af950d55c2ea2a91f7be74486 100755 (executable)
@@ -27,7 +27,7 @@ def main():
     seq = 'all'
     try:
         opts, args = getopt.getopt(sys.argv[1:], '')
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         sys.exit(2)
     for arg in args:
index 6b0b64118f3c966a9f785d994786c65f7c172935..810bdf8c3b48b0aaefb41a86ec1173ca9ef674bb 100755 (executable)
@@ -216,7 +216,7 @@ class SelectionBox:
                 prog = re.compile(search, map)
             else:
                 prog = re.compile(search)
-        except re.error, msg:
+        except re.error as msg:
             self.frame.bell()
             print 'Regex error:', msg
             return
index 35e012c7dffc6fc038af35f8511d1bdb91225664..2367e251572fa04596d0969bbc82f6a1bb173a73 100755 (executable)
@@ -23,7 +23,7 @@ while 1:
         tk.record(line)
         try:
             result = tk.call('eval', cmd)
-        except _tkinter.TclError, msg:
+        except _tkinter.TclError as msg:
             print 'TclError:', msg
         else:
             if result: print result
index 69ce5082e4935589e9aa72973cab98071f50756a..858c9b1074acd81d1a5222f65ff33011ede2c174 100644 (file)
@@ -214,7 +214,7 @@ e.g. ::
 
     >>> req = urllib2.Request('http://www.pretend_server.org')
     >>> try: urllib2.urlopen(req)
-    >>> except URLError, e:
+    >>> except URLError as e:
     >>>    print e.reason
     >>>
     (4, 'getaddrinfo failed')
@@ -326,7 +326,7 @@ attribute, it also has read, geturl, and info, methods. ::
     >>> req = urllib2.Request('http://www.python.org/fish.html')
     >>> try: 
     >>>     urllib2.urlopen(req)
-    >>> except URLError, e:
+    >>> except URLError as e:
     >>>     print e.code
     >>>     print e.read()
     >>> 
@@ -354,10 +354,10 @@ Number 1
     req = Request(someurl)
     try:
         response = urlopen(req)
-    except HTTPError, e:
+    except HTTPError as e:
         print 'The server couldn\'t fulfill the request.'
         print 'Error code: ', e.code
-    except URLError, e:
+    except URLError as e:
         print 'We failed to reach a server.'
         print 'Reason: ', e.reason
     else:
@@ -378,7 +378,7 @@ Number 2
     req = Request(someurl)
     try:
         response = urlopen(req)
-    except URLError, e:
+    except URLError as e:
         if hasattr(e, 'reason'):
             print 'We failed to reach a server.'
             print 'Reason: ', e.reason
index fb03e58e9eeb273df0de9994e2d87806baa96d4a..e596b981761f0210eba1692da5df73322d078735 100644 (file)
@@ -35,7 +35,7 @@ Usage: %prog [options] msgfile
 
     try:
         os.mkdir(opts.directory)
-    except OSError, e:
+    except OSError as e:
         # Ignore directory exists error
         if e.errno != errno.EEXIST:
             raise
index e965e316f37663bd3ca2a5da7cb72cb67462bea6..b87bc9d2588aa84a11e7da746819e944dabdb4fb 100644 (file)
@@ -426,7 +426,7 @@ reader = csv.reader(open(filename, "rb"))
 try:
     for row in reader:
         print row
-except csv.Error, e:
+except csv.Error as e:
     sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))
 \end{verbatim}
 
index b38fcd8dff97f598b10051f9dc48e8e16913b670..7930acd078db58a2107c5b26f7bf6b70abb3b16d 100644 (file)
@@ -126,7 +126,7 @@ import getopt, sys
 def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
-    except getopt.GetoptError, err:
+    except getopt.GetoptError as err:
         # print help information and exit:
         print str(err) # will print something like "option -a not recognized"
         usage()
index 449d7414f38b248d524c3e493cec04ef247f5567..3037e0b9d96e15e79de45b1c7b09f37eb091a832 100644 (file)
@@ -144,6 +144,6 @@ def copytree(src, dst, symlinks=0):
                 copytree(srcname, dstname, symlinks)
             else:
                 copy2(srcname, dstname)
-        except (IOError, os.error), why:
+        except (IOError, os.error) as why:
             print "Can't copy %s to %s: %s" % (`srcname`, `dstname`, str(why))
 \end{verbatim}
index f20c56c5a3c0b2444f123282b21f729365159a88..69877d3424fa7a262fbfd0909b5ad117f92e0219 100644 (file)
@@ -813,13 +813,13 @@ for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket.SOCK_STREAM,
     af, socktype, proto, canonname, sa = res
     try:
        s = socket.socket(af, socktype, proto)
-    except socket.error, msg:
+    except socket.error as msg:
        s = None
        continue
     try:
        s.bind(sa)
        s.listen(1)
-    except socket.error, msg:
+    except socket.error as msg:
        s.close()
        s = None
        continue
@@ -848,12 +848,12 @@ for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket.SOCK_STREAM):
     af, socktype, proto, canonname, sa = res
     try:
        s = socket.socket(af, socktype, proto)
-    except socket.error, msg:
+    except socket.error as msg:
        s = None
        continue
     try:
        s.connect(sa)
-    except socket.error, msg:
+    except socket.error as msg:
        s.close()
        s = None
        continue
index f6397105acb9a82b653162814782b961e2b38f67..cb309748250c3b52b7f14ab3b1b0e05fcb84309a 100644 (file)
@@ -284,7 +284,7 @@ try:
         print >>sys.stderr, "Child was terminated by signal", -retcode
     else:
         print >>sys.stderr, "Child returned", retcode
-except OSError, e:
+except OSError as e:
     print >>sys.stderr, "Execution failed:", e
 \end{verbatim}
 
index d0863d93277d12cf82f45290f63a7903ae36aad0..56474b7333a79ec09a5c8a0a0b4d7b45e938cd91 100644 (file)
@@ -246,6 +246,6 @@ import xdrlib
 p = xdrlib.Packer()
 try:
     p.pack_double(8.01)
-except xdrlib.ConversionError, instance:
+except xdrlib.ConversionError as instance:
     print 'packing the double failed:', instance.msg
 \end{verbatim}
index c870d262c62b17fdad3a12c3f4a47fad1abe4554..7af9e760b974e84f1f2eb6c20b431d91f106e339 100644 (file)
@@ -358,7 +358,7 @@ print server
 
 try:
     print server.examples.getStateName(41)
-except Error, v:
+except Error as v:
     print "ERROR", v
 \end{verbatim}
 
index 22525e310df659b008af0cd96d5a3e17af33586a..76ea7f6a66abc82c20a4c09217059f1971832fe8 100644 (file)
@@ -23,7 +23,7 @@ while True:
 
             if buffer.lstrip().upper().startswith("SELECT"):
                 print cur.fetchall()
-        except sqlite3.Error, e:
+        except sqlite3.Error as e:
             print "An error occurred:", e.args[0]
         buffer = ""
 
index ac9b754259f008fbc9508dc1393ef014081a0728..d68c3ce3c7a08053bc1d14855b8b7cbf9aee66a9 100755 (executable)
@@ -127,7 +127,7 @@ def main():
                 print_list(undocumented, "Undocumented symbols")
         else:
             print_list(L)
-    except IOError, e:
+    except IOError as e:
         if e.errno != errno.EPIPE:
             raise
 
index 03e7b5dc0843b96c5fd14b06294da519e74efd12..846997265b08dad9f9f52c1f3211236fb1a4dd6a 100755 (executable)
@@ -53,7 +53,7 @@ def main():
         opts, args = getopt.getopt(
             args, "abchi:",
             ["annotate", "built-in", "categorize", "help", "ignore-from="])
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stdout = sys.stderr
         print msg
         print
index 21cd6fb276c89a8b91f6e775f49ad4df5aac8a72..02a215d04b0b4a21b619f2c20ae7cc769d0a38bc 100755 (executable)
@@ -599,7 +599,7 @@ def main():
     options = Options()
     try:
         args = options.parse(sys.argv[1:])
-    except getopt.error, msg:
+    except getopt.error as msg:
         error(options, msg)
     if not args:
         # attempt to locate single .tex file in current directory:
index 4b21f7747f36835efc4bca0cd3f9e676d4e49c68..7d5bd73a7fa54db55f37bd647b17757795a453d5 100755 (executable)
@@ -45,7 +45,7 @@ def main():
           opts, args = getopt.getopt(sys.argv[1:], "Aabgtzq",
                                      ["all", "bzip2", "gzip", "tools", "zip",
                                       "quiet", "anonymous"])
-     except getopt.error, e:
+     except getopt.error as e:
           usage(warning=str(e))
           sys.exit(2)
      if len(args) not in (1, 2):
index 57a43fd6fe03ccbfdda56389f108befe9c863063..db1f965532286c55e612d319156bb9016df7d36e 100644 (file)
@@ -448,7 +448,7 @@ def do_project(library, output, arch, version):
 def openfile(file):
     try:
         p = open(file, "w")
-    except IOError, msg:
+    except IOError as msg:
         print file, ":", msg
         sys.exit(1)
     return p
@@ -466,7 +466,7 @@ def do_it(args = None):
 
     try:
         optlist, args = getopt.getopt(args, 'ckpv:')
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         usage()
 
index 81519ee58c1dec42200141d1af879e5dffff301e..961e3b8f6813603fb9d161f6c26e34c7fdf39cac 100755 (executable)
@@ -1039,7 +1039,8 @@ def convert(ifp, ofp):
     #
     try:
         write_esis(fragment, ofp, knownempty)
-    except IOError, (err, msg):
+    except IOError as e:
+        (err, msg) = e
         # Ignore EPIPE; it just means that whoever we're writing to stopped
         # reading.  The rest of the output would be ignored.  All other errors
         # should still be reported,
index b6f9a447537cb2a81d492bafc057a256490e0b36..81294d1d083eacf5d7a74632ea093b10d2420c9a 100755 (executable)
@@ -255,7 +255,8 @@ def main():
         if xml and xmldecl:
             opf.write('<?xml version="1.0" encoding="iso8859-1"?>\n')
         convert(ifp, ofp, xml=xml, autoclose=autoclose, verbatims=verbatims)
-    except IOError, (err, msg):
+    except IOError as e:
+        (err, msg) = e
         if err != errno.EPIPE:
             raise
 
index 833fea171c430870d1f385d2805449887016cf74..6dc5eaa8a193fa9355f8c9fdbc82121ae55f4fa6 100644 (file)
@@ -139,7 +139,7 @@ class ESISReader(xml.sax.xmlreader.XMLReader):
     def _get_token(self, fp):
         try:
             line = fp.readline()
-        except IOError, e:
+        except IOError as e:
             e = SAXException("I/O error reading input stream", e)
             self.getErrorHandler().fatalError(e)
             return
index 643ef2ca302e4c1825b55816d5c4d51fb9fadd02..cbc982822822e315e948aea4a7324129586f3221 100755 (executable)
@@ -397,7 +397,8 @@ def convert(ifp, ofp, table):
     c = Conversion(ifp, ofp, table)
     try:
         c.convert()
-    except IOError, (err, msg):
+    except IOError as e:
+        (err, msg) = e
         if err != errno.EPIPE:
             raise
 
index 4b6b93fb2f5ac74f3a6226341601b4458cee3dd3..3ecc57f55624561a534bf134d3daf4817030268c 100644 (file)
@@ -3480,8 +3480,9 @@ try:
     f = open('myfile.txt')
     s = f.readline()
     i = int(s.strip())
-except IOError, (errno, strerror):
-    print "I/O error(%s): %s" % (errno, strerror)
+except IOError as e:
+    (errno, strerror) = e
+    print "I/O error(%s): %s" % (e.errno, e.strerror)
 except ValueError:
     print "Could not convert data to an integer."
 except:
@@ -3530,7 +3531,7 @@ as desired.
 \begin{verbatim}
 >>> try:
 ...    raise Exception('spam', 'eggs')
-... except Exception, inst:
+... except Exception as inst:
 ...    print type(inst)     # the exception instance
 ...    print inst.args      # arguments stored in .args
 ...    print inst           # __str__ allows args to printed directly
@@ -3559,7 +3560,7 @@ For example:
 ... 
 >>> try:
 ...     this_fails()
-... except ZeroDivisionError, detail:
+... except ZeroDivisionError as detail:
 ...     print 'Handling run-time error:', detail
 ... 
 Handling run-time error: integer division or modulo by zero
@@ -3619,7 +3620,7 @@ example:
 ... 
 >>> try:
 ...     raise MyError(2*2)
-... except MyError, e:
+... except MyError as e:
 ...     print 'My exception occurred, value:', e.value
 ... 
 My exception occurred, value: 4
index 04ed68fe67b02abc6596de05ebd18e24eec5bc32..701a1ff05a0f310658962abafd77f2c373a41f54 100644 (file)
@@ -79,7 +79,7 @@ try_stmt: ('try' ':' suite
 with_stmt: 'with' test [ with_var ] ':' suite
 with_var: 'as' expr
 # NB compile.c makes sure that the default except clause is last
-except_clause: 'except' [test [',' test]]
+except_clause: 'except' [test ['as' test]]
 suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
 
 # Backward compatibility cruft to support:
index c119c9a6930d23af7310cc3af38eda4382aa2889..ce942efa4a94f86c53a09a4d34404f7eb7df9036 100644 (file)
@@ -320,7 +320,7 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
                     sys.stdout = save_stdout
                     sys.stderr = save_stderr
                     os.chdir(save_cwd)
-            except SystemExit, sts:
+            except SystemExit as sts:
                 self.log_error("CGI script exit status %s", str(sts))
             else:
                 self.log_message("CGI script exited OK")
index 65c8ce557db21df6db8111f1ea0afe1dd1e2840d..bdc88cf25c82489f51cb7a11235c48c8aaaaac07 100644 (file)
@@ -567,7 +567,7 @@ class ConfigParser(RawConfigParser):
                 value = self._KEYCRE.sub(self._interpolation_replace, value)
                 try:
                     value = value % vars
-                except KeyError, e:
+                except KeyError as e:
                     raise InterpolationMissingOptionError(
                         option, section, rawval, e[0])
             else:
index c6f6958d5e235f3290db3f00f3967911c14ad4c8..0a62b47fe505f368560b0d3de3f9261ad4eb1a55 100644 (file)
@@ -259,7 +259,7 @@ class SimpleXMLRPCDispatcher:
             response = (response,)
             response = xmlrpclib.dumps(response, methodresponse=1,
                                        allow_none=self.allow_none, encoding=self.encoding)
-        except Fault, fault:
+        except Fault as fault:
             response = xmlrpclib.dumps(fault, allow_none=self.allow_none,
                                        encoding=self.encoding)
         except:
@@ -359,7 +359,7 @@ class SimpleXMLRPCDispatcher:
                 # XXX A marshalling error in any response will fail the entire
                 # multicall. If someone cares they should fix this.
                 results.append([self._dispatch(method_name, params)])
-            except Fault, fault:
+            except Fault as fault:
                 results.append(
                     {'faultCode' : fault.faultCode,
                      'faultString' : fault.faultString}
index 3fb56020e29fb1e0a8ce81a2971935df8d282f90..2d9be368f6871b65a8a8cec331f4fc84c865e680 100644 (file)
@@ -291,7 +291,7 @@ def strptime(data_string, format="%a %b %d %H:%M:%S %Y"):
                 format_regex = time_re.compile(format)
             # KeyError raised when a bad format is found; can be specified as
             # \\, in which case it was a stray % but with a space after it
-            except KeyError, err:
+            except KeyError as err:
                 bad_directive = err.args[0]
                 if bad_directive == "\\":
                     bad_directive = "%"
index 6f99ba1063c85e48dae1c7f9a15965edcec4db61..1ad3161ffe05c03aa38e218d7b9cf4aad2d0eac6 100644 (file)
@@ -87,7 +87,7 @@ class async_chat (asyncore.dispatcher):
 
         try:
             data = self.recv (self.ac_in_buffer_size)
-        except socket.error, why:
+        except socket.error as why:
             self.handle_error()
             return
 
@@ -220,7 +220,7 @@ class async_chat (asyncore.dispatcher):
                 if num_sent:
                     self.ac_out_buffer = self.ac_out_buffer[num_sent:]
 
-            except socket.error, why:
+            except socket.error as why:
                 self.handle_error()
                 return
 
index 7b2f301340f2c9f2bac336be79d5f37e3b13890f..9eb6d7f2e24affb41d51565fc01251cffbf65234 100644 (file)
@@ -119,7 +119,7 @@ def poll(timeout=0.0, map=None):
         else:
             try:
                 r, w, e = select.select(r, w, e, timeout)
-            except select.error, err:
+            except select.error as err:
                 if err[0] != EINTR:
                     raise
                 else:
@@ -165,7 +165,7 @@ def poll2(timeout=0.0, map=None):
                 pollster.register(fd, flags)
         try:
             r = pollster.poll(timeout)
-        except select.error, err:
+        except select.error as err:
             if err[0] != EINTR:
                 raise
             r = []
@@ -320,7 +320,7 @@ class dispatcher:
         try:
             conn, addr = self.socket.accept()
             return conn, addr
-        except socket.error, why:
+        except socket.error as why:
             if why[0] == EWOULDBLOCK:
                 pass
             else:
@@ -330,7 +330,7 @@ class dispatcher:
         try:
             result = self.socket.send(data)
             return result
-        except socket.error, why:
+        except socket.error as why:
             if why[0] == EWOULDBLOCK:
                 return 0
             else:
@@ -347,7 +347,7 @@ class dispatcher:
                 return ''
             else:
                 return data
-        except socket.error, why:
+        except socket.error as why:
             # winsock sometimes throws ENOTCONN
             if why[0] in [ECONNRESET, ENOTCONN, ESHUTDOWN]:
                 self.handle_close()
index 41a5e1470c141dd91acae96f35c4e74390200058..009f9f6291061c156ea23ab155c4584685aca472 100755 (executable)
@@ -71,7 +71,7 @@ def b64decode(s, altchars=None):
         s = _translate(s, {altchars[0]: '+', altchars[1]: '/'})
     try:
         return binascii.a2b_base64(s)
-    except binascii.Error, msg:
+    except binascii.Error as msg:
         # Transform this exception for consistency
         raise TypeError(msg)
 
@@ -328,7 +328,7 @@ def test():
     import sys, getopt
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'deut')
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stdout = sys.stderr
         print msg
         print """usage: %s [-d|-e|-u|-t] [file|-]
index 7f862d75097a8de89bdd76474876364351aea79e..704c4d205722b81dfb2d1af0d7ab271ce744d950 100644 (file)
@@ -260,7 +260,7 @@ class bsdTableDB :
 
             txn.commit()
             txn = None
-        except DBError, dberror:
+        except DBError as dberror:
             if txn:
                 txn.abort()
             raise TableDBError, dberror[1]
@@ -338,7 +338,7 @@ class bsdTableDB :
                 txn = None
 
                 self.__load_column_info(table)
-            except DBError, dberror:
+            except DBError as dberror:
                 if txn:
                     txn.abort()
                 raise TableDBError, dberror[1]
@@ -407,7 +407,7 @@ class bsdTableDB :
             txn.commit()
             txn = None
 
-        except DBError, dberror:
+        except DBError as dberror:
             # WIBNI we could just abort the txn and re-raise the exception?
             # But no, because TableDBError is not related to DBError via
             # inheritance, so it would be backwards incompatible.  Do the next
@@ -466,7 +466,7 @@ class bsdTableDB :
                         txn.abort()
                     raise
 
-        except DBError, dberror:
+        except DBError as dberror:
             raise TableDBError, dberror[1]
 
     def Delete(self, table, conditions={}):
@@ -502,11 +502,11 @@ class bsdTableDB :
                         pass
                     txn.commit()
                     txn = None
-                except DBError, dberror:
+                except DBError as dberror:
                     if txn:
                         txn.abort()
                     raise
-        except DBError, dberror:
+        except DBError as dberror:
             raise TableDBError, dberror[1]
 
 
@@ -526,7 +526,7 @@ class bsdTableDB :
             if columns is None:
                 columns = self.__tablecolumns[table]
             matching_rowids = self.__Select(table, columns, conditions)
-        except DBError, dberror:
+        except DBError as dberror:
             raise TableDBError, dberror[1]
         # return the matches as a list of dictionaries
         return matching_rowids.values()
@@ -616,7 +616,7 @@ class bsdTableDB :
 
                     key, data = cur.next()
 
-            except DBError, dberror:
+            except DBError as dberror:
                 if dberror[0] != DB_NOTFOUND:
                     raise
                 continue
@@ -636,7 +636,7 @@ class bsdTableDB :
                     try:
                         rowdata[column] = self.db.get(
                             _data_key(table, column, rowid))
-                    except DBError, dberror:
+                    except DBError as dberror:
                         if dberror[0] != DB_NOTFOUND:
                             raise
                         rowdata[column] = None
@@ -700,7 +700,7 @@ class bsdTableDB :
             if table in self.__tablecolumns:
                 del self.__tablecolumns[table]
 
-        except DBError, dberror:
+        except DBError as dberror:
             if txn:
                 txn.abort()
             raise TableDBError, dberror[1]
index 48ecdb95c8f75bf64175c200a3ce1e05c5c82e3b..281e9428a90aa7bd353dcbc0bfdfb3dd53aba5eb 100644 (file)
@@ -58,7 +58,7 @@ class BasicTestCase(unittest.TestCase):
             self.homeDir = homeDir
             try:
                 shutil.rmtree(homeDir)
-            except OSError, e:
+            except OSError as e:
                 # unix returns ENOENT, windows returns ESRCH
                 if e.errno not in (errno.ENOENT, errno.ESRCH): raise
             os.mkdir(homeDir)
@@ -162,7 +162,7 @@ class BasicTestCase(unittest.TestCase):
         # set_get_returns_none() to change it.
         try:
             d.delete('abcd')
-        except db.DBNotFoundError, val:
+        except db.DBNotFoundError as val:
             assert val[0] == db.DB_NOTFOUND
             if verbose: print val
         else:
@@ -181,7 +181,7 @@ class BasicTestCase(unittest.TestCase):
 
         try:
             d.put('abcd', 'this should fail', flags=db.DB_NOOVERWRITE)
-        except db.DBKeyExistError, val:
+        except db.DBKeyExistError as val:
             assert val[0] == db.DB_KEYEXIST
             if verbose: print val
         else:
@@ -313,7 +313,7 @@ class BasicTestCase(unittest.TestCase):
                 print rec
             try:
                 rec = c.next()
-            except db.DBNotFoundError, val:
+            except db.DBNotFoundError as val:
                 if get_raises_error:
                     assert val[0] == db.DB_NOTFOUND
                     if verbose: print val
@@ -333,7 +333,7 @@ class BasicTestCase(unittest.TestCase):
                 print rec
             try:
                 rec = c.prev()
-            except db.DBNotFoundError, val:
+            except db.DBNotFoundError as val:
                 if get_raises_error:
                     assert val[0] == db.DB_NOTFOUND
                     if verbose: print val
@@ -357,7 +357,7 @@ class BasicTestCase(unittest.TestCase):
 
         try:
             n = c.set('bad key')
-        except db.DBNotFoundError, val:
+        except db.DBNotFoundError as val:
             assert val[0] == db.DB_NOTFOUND
             if verbose: print val
         else:
@@ -371,7 +371,7 @@ class BasicTestCase(unittest.TestCase):
 
         try:
             n = c.get_both('0404', 'bad data')
-        except db.DBNotFoundError, val:
+        except db.DBNotFoundError as val:
             assert val[0] == db.DB_NOTFOUND
             if verbose: print val
         else:
@@ -399,7 +399,7 @@ class BasicTestCase(unittest.TestCase):
         c.delete()
         try:
             rec = c.current()
-        except db.DBKeyEmptyError, val:
+        except db.DBKeyEmptyError as val:
             if get_raises_error:
                 assert val[0] == db.DB_KEYEMPTY
                 if verbose: print val
@@ -445,7 +445,7 @@ class BasicTestCase(unittest.TestCase):
                           method
                 # a bug may cause a NULL pointer dereference...
                 getattr(c, method)(*args)
-            except db.DBError, val:
+            except db.DBError as val:
                 assert val[0] == 0
                 if verbose: print val
             else:
@@ -730,7 +730,7 @@ class BasicTransactionTestCase(BasicTestCase):
         txn.abort()
         try:
             txn.abort()
-        except db.DBError, e:
+        except db.DBError as e:
             pass
         else:
             raise RuntimeError, "DBTxn.abort() called after DB_TXN no longer valid w/o an exception"
@@ -739,7 +739,7 @@ class BasicTransactionTestCase(BasicTestCase):
         txn.commit()
         try:
             txn.commit()
-        except db.DBError, e:
+        except db.DBError as e:
             pass
         else:
             raise RuntimeError, "DBTxn.commit() called after DB_TXN no longer valid w/o an exception"
index ccf8b839101f9143ff1010f518f8f63243e74bcd..b3eaf3a2d5ec987c7629c49bee19e920e8580462 100644 (file)
@@ -234,7 +234,7 @@ class BtreeExceptionsTestCase (AbstractBtreeKeyCompareTestCase):
             self.db.set_bt_compare (my_compare)
             assert False, "this set should fail"
 
-        except RuntimeError, msg:
+        except RuntimeError as msg:
             pass
 
 def test_suite ():
index 3916e5cb9e68b2004db4172c787eceace7dac934..4683ec6d2a74d96ae94eef52ffc7d32037f03f13 100644 (file)
@@ -11,7 +11,7 @@ import glob
 try:
     # For Pythons w/distutils pybsddb
     from bsddb3 import db
-except ImportError, e:
+except ImportError as e:
     # For Python 2.3
     from bsddb import db
 
@@ -47,7 +47,7 @@ class pickleTestCase(unittest.TestCase):
         assert self.db['spam'] == 'eggs'
         try:
             self.db.put('spam', 'ham', flags=db.DB_NOOVERWRITE)
-        except db.DBError, egg:
+        except db.DBError as egg:
             pickledEgg = pickle.dumps(egg)
             #print repr(pickledEgg)
             rottenEgg = pickle.loads(pickledEgg)
index 35399b517b55816873bdd1b56ec92ec676790a39..7bf3695dfa2a1d077e95a92063a2e91754478be7 100644 (file)
@@ -29,7 +29,7 @@ class SimpleRecnoTestCase(unittest.TestCase):
     def tearDown(self):
         try:
             os.remove(self.filename)
-        except OSError, e:
+        except OSError as e:
             if e.errno != errno.EEXIST: raise
 
     def test01_basic(self):
@@ -63,7 +63,7 @@ class SimpleRecnoTestCase(unittest.TestCase):
 
         try:
             data = d[0]  # This should raise a KeyError!?!?!
-        except db.DBInvalidArgError, val:
+        except db.DBInvalidArgError as val:
             assert val[0] == db.EINVAL
             if verbose: print val
         else:
@@ -72,7 +72,7 @@ class SimpleRecnoTestCase(unittest.TestCase):
         # test that has_key raises DB exceptions (fixed in pybsddb 4.3.2)
         try:
             d.has_key(0)
-        except db.DBError, val:
+        except db.DBError as val:
             pass
         else:
             self.fail("has_key did not raise a proper exception")
@@ -86,7 +86,7 @@ class SimpleRecnoTestCase(unittest.TestCase):
 
         try:
             data = d.get(100)
-        except db.DBNotFoundError, val:
+        except db.DBNotFoundError as val:
             if get_returns_none:
                 self.fail("unexpected exception")
         else:
@@ -177,7 +177,7 @@ class SimpleRecnoTestCase(unittest.TestCase):
 
         try:
             d.get(99)
-        except db.DBKeyEmptyError, val:
+        except db.DBKeyEmptyError as val:
             if get_returns_none:
                 self.fail("unexpected DBKeyEmptyError exception")
             else:
@@ -267,7 +267,7 @@ class SimpleRecnoTestCase(unittest.TestCase):
 
         try:                    # this one will fail
             d.append('bad' * 20)
-        except db.DBInvalidArgError, val:
+        except db.DBInvalidArgError as val:
             assert val[0] == db.EINVAL
             if verbose: print val
         else:
index bf19d21e6d6b0560944699763f8db331ea1d4c53..b3d7ef94e6e668f2a8316f8c88f062fca787d4ec 100644 (file)
@@ -57,7 +57,7 @@ class BaseThreadedTestCase(unittest.TestCase):
         self.homeDir = homeDir
         try:
             os.mkdir(homeDir)
-        except OSError, e:
+        except OSError as e:
             if e.errno != errno.EEXIST: raise
         self.env = db.DBEnv()
         self.setEnvOpts()
@@ -247,7 +247,7 @@ class SimpleThreadedBase(BaseThreadedTestCase):
         # flush them
         try:
             dbutils.DeadlockWrap(d.sync, max_retries=12)
-        except db.DBIncompleteError, val:
+        except db.DBIncompleteError as val:
             if verbose:
                 print "could not complete sync()..."
 
@@ -360,7 +360,7 @@ class ThreadedTransactionsBase(BaseThreadedTestCase):
                         print "%s: records %d - %d finished" % (name, start, x)
                 txn.commit()
                 finished = True
-            except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
+            except (db.DBLockDeadlockError, db.DBLockNotGrantedError) as val:
                 if verbose:
                     print "%s: Aborting transaction (%s)" % (name, val[1])
                 txn.abort()
@@ -398,7 +398,7 @@ class ThreadedTransactionsBase(BaseThreadedTestCase):
                 finished = True
                 if verbose:
                     print "%s: deleted records %s" % (name, recs)
-            except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
+            except (db.DBLockDeadlockError, db.DBLockNotGrantedError) as val:
                 if verbose:
                     print "%s: Aborting transaction (%s)" % (name, val[1])
                 txn.abort()
@@ -428,7 +428,7 @@ class ThreadedTransactionsBase(BaseThreadedTestCase):
                     c.close()
                     txn.commit()
                     finished = True
-                except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
+                except (db.DBLockDeadlockError, db.DBLockNotGrantedError) as val:
                     if verbose:
                         print "%s: Aborting transaction (%s)" % (name, val[1])
                     c.close()
index 80b3b7abf315b27c0604349d6a9e91c5f6340dc5..0cc5fad82aad4cdd96ccb8ced827d37a955e5753 100755 (executable)
@@ -982,7 +982,7 @@ def print_directory():
     print "<H3>Current Working Directory:</H3>"
     try:
         pwd = os.getcwd()
-    except os.error, msg:
+    except os.error as msg:
         print "os.error:", escape(str(msg))
     else:
         print escape(pwd)
index f834b8dd17a8f14423e9da8b2acbb79b38873bee..e4e14cfec01044ecfcd0d3640eddedad538df673 100644 (file)
@@ -13,7 +13,7 @@ import __builtin__, sys
 
 try:
     from _codecs import *
-except ImportError, why:
+except ImportError as why:
     raise SystemError('Failed to load the builtin codecs: %s' % why)
 
 __all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
@@ -422,7 +422,7 @@ class StreamReader(Codec):
             data = self.bytebuffer + newdata
             try:
                 newchars, decodedbytes = self.decode(data, self.errors)
-            except UnicodeDecodeError, exc:
+            except UnicodeDecodeError as exc:
                 if firstline:
                     newchars, decodedbytes = self.decode(data[:exc.start], self.errors)
                     lines = newchars.splitlines(True)
index 5616d92a858ce3427ec80333e3b67f57b042227e..6abde2ede5ab04a0eca09c4bb00a0abdaec2f1f3 100644 (file)
@@ -80,18 +80,18 @@ def _maybe_compile(compiler, source, filename, symbol):
 
     try:
         code = compiler(source, filename, symbol)
-    except SyntaxError, err:
+    except SyntaxError as err:
         pass
 
     try:
         code1 = compiler(source + "\n", filename, symbol)
-    except SyntaxError, err1:
-        pass
+    except SyntaxError as e:
+        err1 = e
 
     try:
         code2 = compiler(source + "\n\n", filename, symbol)
-    except SyntaxError, err2:
-        pass
+    except SyntaxError as e:
+        err2 = e
 
     if code:
         return code
index b21d95f82c94ac092444ce6e930a753d1b81aebd..1e5c6a6e2dbebb1efc63e70b106650b24520d749 100644 (file)
@@ -65,12 +65,12 @@ def compile_dir(dir, maxlevels=10, ddir=None,
                     ok = py_compile.compile(fullname, None, dfile, True)
                 except KeyboardInterrupt:
                     raise KeyboardInterrupt
-                except py_compile.PyCompileError,err:
+                except py_compile.PyCompileError as err:
                     if quiet:
                         print 'Compiling', fullname, '...'
                     print err.msg
                     success = 0
-                except IOError, e:
+                except IOError as e:
                     print "Sorry", e
                     success = 0
                 else:
@@ -109,7 +109,7 @@ def main():
     import getopt
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'lfqd:x:')
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         print "usage: python compileall.py [-l] [-f] [-q] [-d destdir] " \
               "[-x regexp] [directory ...]"
index 325ca069d0a745fc738773b1d4294ea6b49922e8..55d2617923e0b4143c67ba1b0558dee7a1da3db1 100644 (file)
@@ -227,7 +227,7 @@ class CodeGenerator:
             assert getattr(self, 'NameFinder')
             assert getattr(self, 'FunctionGen')
             assert getattr(self, 'ClassGen')
-        except AssertionError, msg:
+        except AssertionError as msg:
             intro = "Bad class construction for %s" % self.__class__.__name__
             raise AssertionError, intro
 
index a807c42ce47561c6a05f42123ad7e5582f02c4c2..731bf8f86818b3a24e37dda0a262755aca25ca10 100644 (file)
@@ -28,7 +28,7 @@ class GeneratorContextManager(object):
             try:
                 self.gen.throw(type, value, traceback)
                 raise RuntimeError("generator didn't stop after throw()")
-            except StopIteration, exc:
+            except StopIteration as exc:
                 # Suppress the exception *unless* it's the same exception that
                 # was passed to throw().  This prevents a StopIteration
                 # raised inside the "with" statement from being suppressed
index 79d72b609cbad411be66b5c94460484dbfbbd5d9..d91117554ecde24304cc71f65980da94c90bdb3c 100644 (file)
@@ -48,7 +48,7 @@ class Dialect:
     def _validate(self):
         try:
             _Dialect(self)
-        except TypeError, e:
+        except TypeError as e:
             # We do this for compatibility with py2.3
             raise Error(str(e))
 
index 376f65dfced5fc5d92b7a20efba7b7ddec56d660..011a3717cf4952271e9ccd9863b904f82af76a59 100644 (file)
@@ -148,7 +148,7 @@ def framework_find(fn, executable_path=None, env=None):
     """
     try:
         return dyld_find(fn, executable_path=executable_path, env=env)
-    except ValueError, e:
+    except ValueError as e:
         pass
     fmwk_index = fn.rfind('.framework')
     if fmwk_index == -1:
index 2b745c206efdb3e8e5251709a341a47b9f6d0976..245dda65347c1fda2f30a031682c917fbdcd8f85 100644 (file)
@@ -57,12 +57,12 @@ def get_tests(package, mask, verbosity):
     for modname in find_package_modules(package, mask):
         try:
             mod = __import__(modname, globals(), locals(), ['*'])
-        except ResourceDenied, detail:
+        except ResourceDenied as detail:
             skipped.append(modname)
             if verbosity > 1:
                 print >> sys.stderr, "Skipped %s: %s" % (modname, detail)
             continue
-        except Exception, detail:
+        except Exception as detail:
             print >> sys.stderr, "Warning: could not import %s: %s" % (modname, detail)
             continue
         for name in dir(mod):
index 2867cbf93e6c05855e9b6e2c1673c42295e96d18..c17ba3ca33121a229ef515748cd2c55691128c4a 100644 (file)
@@ -191,7 +191,7 @@ class BitFieldTest(unittest.TestCase):
     def get_except(self, func, *args, **kw):
         try:
             func(*args, **kw)
-        except Exception, detail:
+        except Exception as detail:
             return detail.__class__, str(detail)
 
     def test_mixed_1(self):
index 613163d0ccae00fec2e8d290c631e7927216eb69..097e1da56a4a7e654566e0dfc661d470dd421803 100644 (file)
@@ -313,7 +313,7 @@ class StructureTestCase(unittest.TestCase):
     def get_except(self, func, *args):
         try:
             func(*args)
-        except Exception, detail:
+        except Exception as detail:
             return detail.__class__, str(detail)
 
 
@@ -388,7 +388,7 @@ class TestRecursiveStructure(unittest.TestCase):
 
         try:
             Recursive._fields_ = [("next", Recursive)]
-        except AttributeError, details:
+        except AttributeError as details:
             self.failUnless("Structure or union cannot contain itself" in
                             str(details))
         else:
@@ -405,7 +405,7 @@ class TestRecursiveStructure(unittest.TestCase):
 
         try:
             Second._fields_ = [("first", First)]
-        except AttributeError, details:
+        except AttributeError as details:
             self.failUnless("_fields_ is final" in
                             str(details))
         else:
index 2ee2968d910b7cd89f0a6448feec8c22476b234a..e65646acd1571824fdfa7393e6063edc636aa6b3 100644 (file)
@@ -60,12 +60,12 @@ elif os.name == "posix":
         finally:
             try:
                 os.unlink(outfile)
-            except OSError, e:
+            except OSError as e:
                 if e.errno != errno.ENOENT:
                     raise
             try:
                 os.unlink(ccout)
-            except OSError, e:
+            except OSError as e:
                 if e.errno != errno.ENOENT:
                     raise
         res = re.search(expr, trace)
index 89caf2006faaa105d3a8271a10fc5402766b8fb5..11e38df6ed4d48a6c06db85be62af85125d01aca 100644 (file)
@@ -33,7 +33,7 @@ def dis(x=None):
                 print "Disassembly of %s:" % name
                 try:
                     dis(x1)
-                except TypeError, msg:
+                except TypeError as msg:
                     print "Sorry:", msg
                 print
     elif hasattr(x, 'co_code'):
index ca524a5b88ed86c40689d70ed607f281fd260306..6968cb8f6f63ac692e1c944017918a910a00d8de 100644 (file)
@@ -115,7 +115,7 @@ class BCPPCompiler(CCompiler) :
                 # This needs to be compiled to a .res file -- do it now.
                 try:
                     self.spawn (["brcc32", "-fo", obj, src])
-                except DistutilsExecError, msg:
+                except DistutilsExecError as msg:
                     raise CompileError, msg
                 continue # the 'for' loop
 
@@ -139,7 +139,7 @@ class BCPPCompiler(CCompiler) :
                 self.spawn ([self.cc] + compile_opts + pp_opts +
                             [input_opt, output_opt] +
                             extra_postargs + [src])
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise CompileError, msg
 
         return objects
@@ -164,7 +164,7 @@ class BCPPCompiler(CCompiler) :
                 pass                    # XXX what goes here?
             try:
                 self.spawn ([self.lib] + lib_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise LibError, msg
         else:
             log.debug("skipping %s (up-to-date)", output_filename)
@@ -298,7 +298,7 @@ class BCPPCompiler(CCompiler) :
             self.mkpath (os.path.dirname (output_filename))
             try:
                 self.spawn ([self.linker] + ld_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise LinkError, msg
 
         else:
@@ -391,7 +391,7 @@ class BCPPCompiler(CCompiler) :
                 self.mkpath(os.path.dirname(output_file))
             try:
                 self.spawn(pp_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 print msg
                 raise CompileError, msg
 
index 3177476b3be6a3b7430f11d074d5d101f3165d5e..cb9525ab0ec787303b801bef5d3fb9552c07d573 100644 (file)
@@ -284,11 +284,11 @@ Your selection [default 1]: ''',
         data = ''
         try:
             result = opener.open(req)
-        except urllib2.HTTPError, e:
+        except urllib2.HTTPError as e:
             if self.show_response:
                 data = e.fp.read()
             result = e.code, e.msg
-        except urllib2.URLError, e:
+        except urllib2.URLError as e:
             result = 500, str(e)
         else:
             if self.show_response:
index 3dfe6f21a7bb8a38d32790f4fbda8565fd52891a..eb2db505ddd1ffafb13dac268e67384ad06f1cf4 100644 (file)
@@ -333,7 +333,7 @@ class sdist (Command):
 
             try:
                 self.filelist.process_template_line(line)
-            except DistutilsTemplateError, msg:
+            except DistutilsTemplateError as msg:
                 self.warn("%s, line %d: %s" % (template.filename,
                                                template.current_line,
                                                msg))
index 67ba080427ca301a47e62a00c1c47700d52af7c3..7f96a475b695c2657be473fab465d513a29b8a2d 100644 (file)
@@ -184,7 +184,7 @@ class upload(Command):
             http.putheader('Authorization', auth)
             http.endheaders()
             http.send(body)
-        except socket.error, e:
+        except socket.error as e:
             self.announce(str(e), log.ERROR)
             return
 
index 85a28fe795344d7dc06a1248f9786a4c6526ea07..4dc8eb01aabe17e99840c3e693ac553e3fbf47d5 100644 (file)
@@ -110,7 +110,7 @@ def setup (**attrs):
     # (ie. everything except distclass) to initialize it
     try:
         _setup_distribution = dist = klass(attrs)
-    except DistutilsSetupError, msg:
+    except DistutilsSetupError as msg:
         if 'name' not in attrs:
             raise SystemExit, "error in %s setup command: %s" % \
                   (attrs['name'], msg)
@@ -135,7 +135,7 @@ def setup (**attrs):
     # fault, so turn them into SystemExit to suppress tracebacks.
     try:
         ok = dist.parse_command_line()
-    except DistutilsArgError, msg:
+    except DistutilsArgError as msg:
         raise SystemExit, gen_usage(dist.script_name) + "\nerror: %s" % msg
 
     if DEBUG:
@@ -151,7 +151,7 @@ def setup (**attrs):
             dist.run_commands()
         except KeyboardInterrupt:
             raise SystemExit, "interrupted"
-        except (IOError, os.error), exc:
+        except (IOError, os.error) as exc:
             error = grok_environment_error(exc)
 
             if DEBUG:
@@ -161,7 +161,7 @@ def setup (**attrs):
                 raise SystemExit, error
 
         except (DistutilsError,
-                CCompilerError), msg:
+                CCompilerError) as msg:
             if DEBUG:
                 raise
             else:
index 4fd23e6dc60724d43ba378f2b8d6d65ae1a05833..44b5850834b64c14beac3d80bc58646bdaf8394a 100644 (file)
@@ -142,13 +142,13 @@ class CygwinCCompiler (UnixCCompiler):
             # gcc needs '.res' and '.rc' compiled to object files !!!
             try:
                 self.spawn(["windres", "-i", src, "-o", obj])
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise CompileError, msg
         else: # for other files use the C-compiler
             try:
                 self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
                            extra_postargs)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise CompileError, msg
 
     def link (self,
@@ -379,7 +379,7 @@ def check_config_h():
         s = f.read()
         f.close()
 
-    except IOError, exc:
+    except IOError as exc:
         # if we can't read this file, we cannot say it is wrong
         # the compiler will complain later about this file as missing
         return (CONFIG_H_UNCERTAIN,
index 92f49346f76f5b1d1b71f6172be7d819be868213..398f242974b031281dd7e422f975b6c0547dd93d 100644 (file)
@@ -75,7 +75,7 @@ def mkpath (name, mode=0777, verbose=0, dry_run=0):
             try:
                 os.mkdir(head)
                 created_dirs.append(head)
-            except OSError, exc:
+            except OSError as exc:
                 raise DistutilsFileError, \
                       "could not create '%s': %s" % (head, exc[-1])
 
@@ -142,7 +142,8 @@ def copy_tree (src, dst,
               "cannot copy tree '%s': not a directory" % src
     try:
         names = os.listdir(src)
-    except os.error, (errno, errstr):
+    except os.error as e:
+        (errno, errstr) = e
         if dry_run:
             names = []
         else:
@@ -209,7 +210,7 @@ def remove_tree (directory, verbose=0, dry_run=0):
             abspath = os.path.abspath(cmd[1])
             if abspath in _path_created:
                 del _path_created[abspath]
-        except (IOError, OSError), exc:
+        except (IOError, OSError) as exc:
             log.warn(grok_environment_error(
                     exc, "error removing %s: " % directory))
 
index d098cb9713bacf5baa52474fecacc3a0dd379572..d21c5e2f1b8ebf6b02c1c0c7ab1a7e0e92f16d99 100644 (file)
@@ -398,7 +398,7 @@ Common commands: (see '--help-commands' for more)
                         setattr(self, opt, strtobool(val))
                     else:
                         setattr(self, opt, val)
-                except ValueError, msg:
+                except ValueError as msg:
                     raise DistutilsOptionError, msg
 
     # parse_config_files ()
@@ -515,7 +515,7 @@ Common commands: (see '--help-commands' for more)
         # it takes.
         try:
             cmd_class = self.get_command_class(command)
-        except DistutilsModuleError, msg:
+        except DistutilsModuleError as msg:
             raise DistutilsArgError, msg
 
         # Require that the command class be derived from Command -- want
@@ -917,7 +917,7 @@ Common commands: (see '--help-commands' for more)
                     raise DistutilsOptionError, \
                           ("error in %s: command '%s' has no such option '%s'"
                            % (source, command_name, option))
-            except ValueError, msg:
+            except ValueError as msg:
                 raise DistutilsOptionError, msg
 
     def reinitialize_command (self, command, reinit_subcommands=0):
index f52e63232db1afa9b14ee4a074d57c2a004b2b3d..8aef2b7a9dbbd06dfb2999115739f15db130ade8 100644 (file)
@@ -79,13 +79,13 @@ class EMXCCompiler (UnixCCompiler):
             # gcc requires '.rc' compiled to binary ('.res') files !!!
             try:
                 self.spawn(["rc", "-r", src])
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise CompileError, msg
         else: # for other files use the C-compiler
             try:
                 self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
                            extra_postargs)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise CompileError, msg
 
     def link (self,
@@ -275,7 +275,7 @@ def check_config_h():
         s = f.read()
         f.close()
 
-    except IOError, exc:
+    except IOError as exc:
         # if we can't read this file, we cannot say it is wrong
         # the compiler will complain later about this file as missing
         return (CONFIG_H_UNCERTAIN,
index 31cf0c5c3b9c4e0564df9e2eb2046009b5bbb53f..62a24e8524b5d033d937dd0808436e52d8b76e26 100644 (file)
@@ -256,7 +256,7 @@ class FancyGetopt:
         short_opts = string.join(self.short_opts)
         try:
             opts, args = getopt.getopt(args, short_opts, self.long_opts)
-        except getopt.error, msg:
+        except getopt.error as msg:
             raise DistutilsArgError, msg
 
         for opt, val in opts:
index 37b152ed8a390247a6f54fa6778e0858d44c2a0d..c225ad317293256e7f7c2865d62884da8d923ba5 100644 (file)
@@ -32,27 +32,31 @@ def _copy_file_contents (src, dst, buffer_size=16*1024):
     try:
         try:
             fsrc = open(src, 'rb')
-        except os.error, (errno, errstr):
+        except os.error as e:
+            (errno, errstr) = e
             raise DistutilsFileError, \
                   "could not open '%s': %s" % (src, errstr)
 
         if os.path.exists(dst):
             try:
                 os.unlink(dst)
-            except os.error, (errno, errstr):
+            except os.error as e:
+                (errno, errstr) = e
                 raise DistutilsFileError, \
                       "could not delete '%s': %s" % (dst, errstr)
 
         try:
             fdst = open(dst, 'wb')
-        except os.error, (errno, errstr):
+        except os.error as e:
+            (errno, errstr) = e
             raise DistutilsFileError, \
                   "could not create '%s': %s" % (dst, errstr)
 
         while 1:
             try:
                 buf = fsrc.read(buffer_size)
-            except os.error, (errno, errstr):
+            except os.error as e:
+                (errno, errstr) = e
                 raise DistutilsFileError, \
                       "could not read from '%s': %s" % (src, errstr)
 
@@ -61,7 +65,8 @@ def _copy_file_contents (src, dst, buffer_size=16*1024):
 
             try:
                 fdst.write(buf)
-            except os.error, (errno, errstr):
+            except os.error as e:
+                (errno, errstr) = e
                 raise DistutilsFileError, \
                       "could not write to '%s': %s" % (dst, errstr)
 
@@ -146,7 +151,7 @@ def copy_file (src, dst,
         import macostools
         try:
             macostools.copy(src, dst, 0, preserve_times)
-        except os.error, exc:
+        except os.error as exc:
             raise DistutilsFileError, \
                   "could not copy '%s' to '%s': %s" % (src, dst, exc[-1])
 
@@ -217,7 +222,8 @@ def move_file (src, dst,
     copy_it = 0
     try:
         os.rename(src, dst)
-    except os.error, (num, msg):
+    except os.error as e:
+        (num, msg) = e
         if num == errno.EXDEV:
             copy_it = 1
         else:
@@ -228,7 +234,8 @@ def move_file (src, dst,
         copy_file(src, dst)
         try:
             os.unlink(src)
-        except os.error, (num, msg):
+        except os.error as e:
+            (num, msg) = e
             try:
                 os.unlink(dst)
             except os.error:
index 9ec3508c7612c7eb2fbdfdec84a768b016799004..968a4ffd4626381ceda9bbdf7c2a3365ebe2b777 100644 (file)
@@ -129,7 +129,7 @@ class MacroExpander:
                 self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")
             else:
                 self.set_macro("FrameworkSDKDir", net, "sdkinstallroot")
-        except KeyError, exc: #
+        except KeyError as exc: #
             raise DistutilsPlatformError, \
                   ("""Python was built with Visual Studio 2003;
 extensions must be built with a compiler than can generate compatible binaries.
@@ -371,7 +371,7 @@ class MSVCCompiler (CCompiler) :
                 try:
                     self.spawn ([self.rc] + pp_opts +
                                 [output_opt] + [input_opt])
-                except DistutilsExecError, msg:
+                except DistutilsExecError as msg:
                     raise CompileError, msg
                 continue
             elif ext in self._mc_extensions:
@@ -400,7 +400,7 @@ class MSVCCompiler (CCompiler) :
                     self.spawn ([self.rc] +
                                 ["/fo" + obj] + [rc_file])
 
-                except DistutilsExecError, msg:
+                except DistutilsExecError as msg:
                     raise CompileError, msg
                 continue
             else:
@@ -414,7 +414,7 @@ class MSVCCompiler (CCompiler) :
                 self.spawn ([self.cc] + compile_opts + pp_opts +
                             [input_opt, output_opt] +
                             extra_postargs)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise CompileError, msg
 
         return objects
@@ -440,7 +440,7 @@ class MSVCCompiler (CCompiler) :
                 pass                    # XXX what goes here?
             try:
                 self.spawn ([self.lib] + lib_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise LibError, msg
 
         else:
@@ -519,7 +519,7 @@ class MSVCCompiler (CCompiler) :
             self.mkpath (os.path.dirname (output_filename))
             try:
                 self.spawn ([self.linker] + ld_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise LinkError, msg
 
         else:
index e5654ff0096b07917241825b130e130225bf318f..6b07f52ebe259fd233fa1773086eadf695960725 100644 (file)
@@ -78,7 +78,7 @@ def _spawn_nt (cmd,
         # spawn for NT requires a full path to the .exe
         try:
             rc = os.spawnv(os.P_WAIT, executable, cmd)
-        except OSError, exc:
+        except OSError as exc:
             # this seems to happen when the command isn't found
             raise DistutilsExecError, \
                   "command '%s' failed: %s" % (cmd[0], exc[-1])
@@ -103,7 +103,7 @@ def _spawn_os2 (cmd,
         # spawnv for OS/2 EMX requires a full path to the .exe
         try:
             rc = os.spawnv(os.P_WAIT, executable, cmd)
-        except OSError, exc:
+        except OSError as exc:
             # this seems to happen when the command isn't found
             raise DistutilsExecError, \
                   "command '%s' failed: %s" % (cmd[0], exc[-1])
@@ -131,7 +131,7 @@ def _spawn_posix (cmd,
             #print "cmd[0] =", cmd[0]
             #print "cmd =", cmd
             exec_fn(cmd[0], cmd)
-        except OSError, e:
+        except OSError as e:
             sys.stderr.write("unable to execute %s: %s\n" %
                              (cmd[0], e.strerror))
             os._exit(1)
@@ -146,7 +146,7 @@ def _spawn_posix (cmd,
         while 1:
             try:
                 (pid, status) = os.waitpid(pid, 0)
-            except OSError, exc:
+            except OSError as exc:
                 import errno
                 if exc.errno == errno.EINTR:
                     continue
index 8989d92b4e0f6c7371accb7b2198809ba238f36a..9de7234683642801a3fa4bb5b4a2fdb3f2bf391c 100644 (file)
@@ -344,7 +344,7 @@ def _init_posix():
     try:
         filename = get_makefile_filename()
         parse_makefile(filename, g)
-    except IOError, msg:
+    except IOError as msg:
         my_msg = "invalid Python installation: unable to open %s" % filename
         if hasattr(msg, "strerror"):
             my_msg = my_msg + " (%s)" % msg.strerror
@@ -355,7 +355,7 @@ def _init_posix():
     try:
         filename = get_config_h_filename()
         parse_config_h(open(filename), g)
-    except IOError, msg:
+    except IOError as msg:
         my_msg = "invalid Python installation: unable to open %s" % filename
         if hasattr(msg, "strerror"):
             my_msg = my_msg + " (%s)" % msg.strerror
index 75e8a5316ebba254884a9af1b6388d075ff3efb2..0795f1206de91cfcb3964289d79e33a304637f57 100644 (file)
@@ -162,7 +162,7 @@ class UnixCCompiler(CCompiler):
                 self.mkpath(os.path.dirname(output_file))
             try:
                 self.spawn(pp_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise CompileError, msg
 
     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
@@ -172,7 +172,7 @@ class UnixCCompiler(CCompiler):
         try:
             self.spawn(compiler_so + cc_args + [src, '-o', obj] +
                        extra_postargs)
-        except DistutilsExecError, msg:
+        except DistutilsExecError as msg:
             raise CompileError, msg
 
     def create_static_lib(self, objects, output_libname,
@@ -196,7 +196,7 @@ class UnixCCompiler(CCompiler):
             if self.ranlib:
                 try:
                     self.spawn(self.ranlib + [output_filename])
-                except DistutilsExecError, msg:
+                except DistutilsExecError as msg:
                     raise LibError, msg
         else:
             log.debug("skipping %s (up-to-date)", output_filename)
@@ -250,7 +250,7 @@ class UnixCCompiler(CCompiler):
                     linker = _darwin_compiler_fixup(linker, ld_args)
 
                 self.spawn(linker + ld_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise LinkError, msg
         else:
             log.debug("skipping %s (up-to-date)", output_filename)
index 1bcda93fe0f7ddc849ae28d280e417486cb422ad..16d8bcba4d55e291b734946c6711f214971c3dd8 100644 (file)
@@ -229,7 +229,7 @@ def subst_vars (s, local_vars):
 
     try:
         return re.sub(r'\$([a-zA-Z_][a-zA-Z_0-9]*)', _subst, s)
-    except KeyError, var:
+    except KeyError as var:
         raise ValueError, "invalid variable '$%s'" % var
 
 # subst_vars ()
index 435e13bc3250bfdf41adf1207f7443a84de9d0c1..d120a0130615c2911c4b301df8000e9b741d1dff 100644 (file)
@@ -1604,8 +1604,8 @@ class DebugRunner(DocTestRunner):
          ...                                    {}, 'foo', 'foo.py', 0)
          >>> try:
          ...     runner.run(test)
-         ... except UnexpectedException, failure:
-         ...     pass
+         ... except UnexpectedException as f:
+         ...     failure = f
 
          >>> failure.test is test
          True
@@ -1632,8 +1632,8 @@ class DebugRunner(DocTestRunner):
 
          >>> try:
          ...    runner.run(test)
-         ... except DocTestFailure, failure:
-         ...    pass
+         ... except DocTestFailure as f:
+         ...    failure = f
 
        DocTestFailure objects provide access to the test:
 
@@ -2141,8 +2141,8 @@ class DocTestCase(unittest.TestCase):
              >>> case = DocTestCase(test)
              >>> try:
              ...     case.debug()
-             ... except UnexpectedException, failure:
-             ...     pass
+             ... except UnexpectedException as f:
+             ...     failure = f
 
            The UnexpectedException contains the test, the example, and
            the original exception:
@@ -2170,8 +2170,8 @@ class DocTestCase(unittest.TestCase):
 
              >>> try:
              ...    case.debug()
-             ... except DocTestFailure, failure:
-             ...    pass
+             ... except DocTestFailure as f:
+             ...    failure = f
 
            DocTestFailure objects provide access to the test:
 
index 43fb93c1b7f4823eaa33b6d0268116c9b7d49fb5..3baf77975327cf39b9c6571d9ceeb6cd846256a4 100644 (file)
@@ -81,7 +81,7 @@ def uu_decode(input,errors='strict'):
             break
         try:
             data = a2b_uu(s)
-        except binascii.Error, v:
+        except binascii.Error as v:
             # Workaround for broken uuencoders by /Fredrik Lundh
             nbytes = (((ord(s[0])-32) & 63) * 4 + 5) / 3
             data = a2b_uu(s[:nbytes])
index 9885765031f35ddf52ad00f23e013250b2405cda..51a97a55db93d9acb92be0ae6bd9d9879a5bd881 100644 (file)
@@ -148,12 +148,12 @@ class dircmp:
             ok = 1
             try:
                 a_stat = os.stat(a_path)
-            except os.error, why:
+            except os.error as why:
                 # print 'Can\'t stat', a_path, ':', why[1]
                 ok = 0
             try:
                 b_stat = os.stat(b_path)
-            except os.error, why:
+            except os.error as why:
                 # print 'Can\'t stat', b_path, ':', why[1]
                 ok = 0
 
index 9cb67dd55691654df0368f86db2b13ae45b2b810..72f5c894e07a05d9e48d59ded58ea4d551015736 100644 (file)
@@ -119,7 +119,7 @@ class FTP:
             try:
                 self.sock = socket.socket(af, socktype, proto)
                 self.sock.connect(sa)
-            except socket.error, msg:
+            except socket.error as msg:
                 if self.sock:
                     self.sock.close()
                 self.sock = None
@@ -277,7 +277,7 @@ class FTP:
             try:
                 sock = socket.socket(af, socktype, proto)
                 sock.bind(sa)
-            except socket.error, msg:
+            except socket.error as msg:
                 if sock:
                     sock.close()
                 sock = None
@@ -496,7 +496,7 @@ class FTP:
         if dirname == '..':
             try:
                 return self.voidcmd('CDUP')
-            except error_perm, msg:
+            except error_perm as msg:
                 if msg.args[0][:3] != '500':
                     raise
         elif dirname == '':
index cd4c51d483678ae189a35514c1fa48ac11c62579..7f88606329859d8ba7af026369194174102c3685 100644 (file)
@@ -19,7 +19,7 @@ def main(logfile):
     stats.sort_stats('time', 'calls')
     try:
         stats.print_stats(20)
-    except IOError, e:
+    except IOError as e:
         if e.errno != errno.EPIPE:
             raise
 
index 24a2e2f3c71ff45f9649519a81cf46cc99162028..652519f173163edfdc3b792187e117f571f90157 100644 (file)
@@ -463,7 +463,7 @@ def test(args = None):
     else:
         try:
             f = open(file, 'r')
-        except IOError, msg:
+        except IOError as msg:
             print file, ":", msg
             sys.exit(1)
 
index 1e0037f8f8ceae8e0136e5d473ed03d58858c22f..93c081a789368c4a5f9a5f501b587de647ff717a 100644 (file)
@@ -667,7 +667,7 @@ class HTTPConnection:
                 if self.debuglevel > 0:
                     print "connect: (%s, %s)" % (self.host, self.port)
                 self.sock.connect(sa)
-            except socket.error, msg:
+            except socket.error as msg:
                 if self.debuglevel > 0:
                     print 'connect fail:', (self.host, self.port)
                 if self.sock:
@@ -713,7 +713,7 @@ class HTTPConnection:
                     data=str.read(blocksize)
             else:
                 self.sock.sendall(str)
-        except socket.error, v:
+        except socket.error as v:
             if v[0] == 32:      # Broken pipe
                 self.close()
             raise
@@ -868,7 +868,7 @@ class HTTPConnection:
 
         try:
             self._send_request(method, url, body, headers)
-        except socket.error, v:
+        except socket.error as v:
             # trap 'Broken pipe' if we're allowed to automatically reconnect
             if v[0] != 32 or not self.auto_open:
                 raise
@@ -890,7 +890,7 @@ class HTTPConnection:
             thelen=None
             try:
                 thelen=str(len(body))
-            except TypeError, te:
+            except TypeError as te:
                 # If this is a file-like object, try to
                 # fstat its file descriptor
                 import os
@@ -1019,7 +1019,7 @@ class SSLFile(SharedSocketClient):
         while True:
             try:
                 buf = self._ssl.read(self._bufsize)
-            except socket.sslerror, err:
+            except socket.sslerror as err:
                 if (err[0] == socket.SSL_ERROR_WANT_READ
                     or err[0] == socket.SSL_ERROR_WANT_WRITE):
                     continue
@@ -1027,7 +1027,7 @@ class SSLFile(SharedSocketClient):
                     or err[0] == socket.SSL_ERROR_EOF):
                     break
                 raise
-            except socket.error, err:
+            except socket.error as err:
                 if err[0] == errno.EINTR:
                     continue
                 if err[0] == errno.EBADF:
@@ -1215,7 +1215,7 @@ class HTTP:
         """
         try:
             response = self._conn.getresponse()
-        except BadStatusLine, e:
+        except BadStatusLine as e:
             ### hmm. if getresponse() ever closes the socket on a bad request,
             ### then we are going to have problems with self.sock
 
index e5a60a51341f2cb8135949a5201eda295e9a86a3..d3f90483d2d0c701e68f8a52be794e00478e7530 100644 (file)
@@ -94,7 +94,7 @@ class ModuleBrowserTreeItem(TreeItem):
             return []
         try:
             dict = pyclbr.readmodule_ex(name, [dir] + sys.path)
-        except ImportError, msg:
+        except ImportError as msg:
             return []
         items = []
         self.classes = {}
index 1841b1cf62b2ec1cb0e3f9aba614263c44fdfae4..400c31c797712c49bacb4cbc702576cb2fab53c6 100644 (file)
@@ -505,7 +505,7 @@ class EditorWindow(object):
         # XXX Ought to insert current file's directory in front of path
         try:
             (f, file, (suffix, mode, type)) = _find_module(name)
-        except (NameError, ImportError), msg:
+        except (NameError, ImportError) as msg:
             tkMessageBox.showerror("Import error", str(msg), parent=self.text)
             return
         if type != imp.PY_SOURCE:
index ab136bc1128a7dea3b179c58ec48c847a000fbaf..99d2e4dabc9b4102b372ef7d7ca89d6e05f6e12e 100644 (file)
@@ -82,7 +82,7 @@ class GrepDialog(SearchDialogBase):
         for fn in list:
             try:
                 f = open(fn)
-            except IOError, msg:
+            except IOError as msg:
                 print msg
                 continue
             lineno = 0
@@ -110,7 +110,7 @@ class GrepDialog(SearchDialogBase):
     def findfiles(self, dir, base, rec):
         try:
             names = os.listdir(dir or os.curdir)
-        except os.error, msg:
+        except os.error as msg:
             print msg
             return []
         list = []
index deeb5c527c7686186e04f2801adef4af8cc94150..e23b40c606dffbc030daa179b2a05a11c1de30f5 100644 (file)
@@ -246,7 +246,7 @@ class IOBinding:
             f = open(filename,'rb')
             chars = f.read()
             f.close()
-        except IOError, msg:
+        except IOError as msg:
             tkMessageBox.showerror("I/O Error", str(msg), master=self.text)
             return False
 
@@ -289,7 +289,7 @@ class IOBinding:
         # Next look for coding specification
         try:
             enc = coding_spec(chars)
-        except LookupError, name:
+        except LookupError as name:
             tkMessageBox.showerror(
                 title="Error loading the file",
                 message="The encoding '%s' is not known to this Python "\
@@ -380,7 +380,7 @@ class IOBinding:
             f.flush()
             f.close()
             return True
-        except IOError, msg:
+        except IOError as msg:
             tkMessageBox.showerror("I/O Error", str(msg),
                                    master=self.text)
             return False
@@ -400,7 +400,7 @@ class IOBinding:
         try:
             enc = coding_spec(chars)
             failed = None
-        except LookupError, msg:
+        except LookupError as msg:
             failed = msg
             enc = None
         if enc:
index 20d00bef92ae707ba7d6a567b7f745e6a4aec903..46ef211c0529fa9a472c03a8838ffa0b7447b438 100644 (file)
@@ -380,7 +380,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
             try:
                 self.rpcclt = MyRPCClient(addr)
                 break
-            except socket.error, err:
+            except socket.error as err:
                 pass
         else:
             self.display_port_binding_error()
@@ -389,7 +389,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
         self.rpcclt.listening_sock.settimeout(10)
         try:
             self.rpcclt.accept()
-        except socket.timeout, err:
+        except socket.timeout as err:
             self.display_no_subprocess_error()
             return None
         self.rpcclt.register("stdin", self.tkconsole)
@@ -423,7 +423,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
         self.spawn_subprocess()
         try:
             self.rpcclt.accept()
-        except socket.timeout, err:
+        except socket.timeout as err:
             self.display_no_subprocess_error()
             return None
         self.transfer_path()
@@ -1324,7 +1324,7 @@ def main():
     startup = False
     try:
         opts, args = getopt.getopt(sys.argv[1:], "c:deihnr:st:")
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stderr.write("Error: %s\n" % str(msg))
         sys.stderr.write(usage_msg)
         sys.exit(2)
index 3746eb830475a7f94b9ceb1f9ab79bb933c5bf7a..a83f715ab300375cb60871f30ee7797c55171376 100644 (file)
@@ -66,13 +66,13 @@ class ScriptBinding:
         f = open(filename, 'r')
         try:
             tabnanny.process_tokens(tokenize.generate_tokens(f.readline))
-        except tokenize.TokenError, msg:
+        except tokenize.TokenError as msg:
             msgtxt, (lineno, start) = msg
             self.editwin.gotoline(lineno)
             self.errorbox("Tabnanny Tokenizing Error",
                           "Token Error: %s" % msgtxt)
             return False
-        except tabnanny.NannyNag, nag:
+        except tabnanny.NannyNag as nag:
             # The error messages from tabnanny are too confusing...
             self.editwin.gotoline(nag.get_lineno())
             self.errorbox("Tab/space error", indent_message)
@@ -97,7 +97,7 @@ class ScriptBinding:
             try:
                 # If successful, return the compiled code
                 return compile(source, filename, "exec")
-            except (SyntaxError, OverflowError), err:
+            except (SyntaxError, OverflowError) as err:
                 try:
                     msg, (errorfilename, lineno, offset, line) = err
                     if not errorfilename:
index cc40a00c50f04b5103a1d172596446e7200efde9..6745faff021c481f0a0848f1c12ea6f439aef567 100644 (file)
@@ -66,7 +66,7 @@ class SearchEngine:
             flags = flags | re.IGNORECASE
         try:
             prog = re.compile(pat, flags)
-        except re.error, what:
+        except re.error as what:
             try:
                 msg, col = what
             except:
index 61364a5073c3e5fe81278563a7d0ed2382fbf46e..6b29003f20498cb49b9b8234b34c46c68dece698 100644 (file)
@@ -114,7 +114,7 @@ def manage_socket(address):
         try:
             server = MyRPCServer(address, MyHandler)
             break
-        except socket.error, err:
+        except socket.error as err:
             print>>sys.__stderr__,"IDLE Subprocess: socket error: "\
                                         + err[1] + ", retrying...."
     else:
index 08e15207a43df089a78eeb5c507128ce1670d36d..11e262ed505b0a9c96a6172403219fefbc3b3191 100644 (file)
@@ -845,7 +845,7 @@ class IMAP4:
 
         try:
             self.send('%s%s' % (data, CRLF))
-        except (socket.error, OSError), val:
+        except (socket.error, OSError) as val:
             raise self.abort('socket error: %s' % val)
 
         if literal is None:
@@ -870,7 +870,7 @@ class IMAP4:
             try:
                 self.send(literal)
                 self.send(CRLF)
-            except (socket.error, OSError), val:
+            except (socket.error, OSError) as val:
                 raise self.abort('socket error: %s' % val)
 
             if not literator:
@@ -883,9 +883,9 @@ class IMAP4:
         self._check_bye()
         try:
             typ, data = self._get_tagged_response(tag)
-        except self.abort, val:
+        except self.abort as val:
             raise self.abort('command: %s => %s' % (name, val))
-        except self.error, val:
+        except self.error as val:
             raise self.error('command: %s => %s' % (name, val))
         self._check_bye()
         if typ == 'BAD':
@@ -984,7 +984,7 @@ class IMAP4:
 
             try:
                 self._get_response()
-            except self.abort, val:
+            except self.abort as val:
                 if __debug__:
                     if self.debug >= 1:
                         self.print_log()
@@ -1402,7 +1402,7 @@ if __name__ == '__main__':
 
     try:
         optlist, args = getopt.getopt(sys.argv[1:], 'd:s:')
-    except getopt.error, val:
+    except getopt.error as val:
         optlist, args = (), ()
 
     stream_command = None
index f8538edf302266b9ad9b5f789d443b5081a8bba5..157b066a0ddf9bb1bf50b482370b807fdf3fe1b3 100644 (file)
@@ -85,7 +85,7 @@ def _cnfmerge(cnfs):
         for c in _flatten(cnfs):
             try:
                 cnf.update(c)
-            except (AttributeError, TypeError), msg:
+            except (AttributeError, TypeError) as msg:
                 print "_cnfmerge: fallback due to:", msg
                 for k, v in c.items():
                     cnf[k] = v
@@ -1401,7 +1401,7 @@ class CallWrapper:
             if self.subst:
                 args = self.subst(*args)
             return self.func(*args)
-        except SystemExit, msg:
+        except SystemExit as msg:
             raise SystemExit, msg
         except:
             self.widget._report_exception()
index 4838625f08d54011a89ecbd6ef98da93c40e88a5..89383ea27a97139406ebac9656eaa044f8f5d2ff 100644 (file)
@@ -78,7 +78,7 @@ def updatecache(filename, module_globals=None):
     fullname = filename
     try:
         stat = os.stat(fullname)
-    except os.error, msg:
+    except os.error as msg:
         basename = os.path.split(filename)[1]
 
         # Try for a __loader__, if available
@@ -128,7 +128,7 @@ def updatecache(filename, module_globals=None):
         fp = open(fullname, 'rU')
         lines = fp.readlines()
         fp.close()
-    except IOError, msg:
+    except IOError as msg:
 ##      print '*** Cannot open', fullname, ':', msg
         return []
     size, mtime = stat.st_size, stat.st_mtime
index a9970d023f93da68038239016c1306e38de6cf40..41d577f69488364a53eca6e96df8ba7c1b1ef580 100644 (file)
@@ -288,7 +288,7 @@ def listen(port=DEFAULT_LOGGING_CONFIG_PORT):
                     except:
                         traceback.print_exc()
                     os.remove(file)
-            except socket.error, e:
+            except socket.error as e:
                 if type(e.args) != types.TupleType:
                     raise
                 else:
index 8d1df4ba4e6b563c4d51aaeaa5dd9e1fcf7e1335..2293a6c57359e1b8c23603e04ef3cefb3232d0cd 100755 (executable)
@@ -258,7 +258,7 @@ class Maildir(Mailbox):
                 os.remove(tmp_file.name)
             else:
                 os.rename(tmp_file.name, dest)
-        except OSError, e:
+        except OSError as e:
             os.remove(tmp_file.name)
             if e.errno == errno.EEXIST:
                 raise ExternalClashError('Name clash with existing message: %s'
@@ -280,7 +280,7 @@ class Maildir(Mailbox):
             self.remove(key)
         except KeyError:
             pass
-        except OSError, e:
+        except OSError as e:
             if e.errno != errno.ENOENT:
                 raise
 
@@ -437,12 +437,12 @@ class Maildir(Mailbox):
         path = os.path.join(self._path, 'tmp', uniq)
         try:
             os.stat(path)
-        except OSError, e:
+        except OSError as e:
             if e.errno == errno.ENOENT:
                 Maildir._count += 1
                 try:
                     return _create_carefully(path)
-                except OSError, e:
+                except OSError as e:
                     if e.errno != errno.EEXIST:
                         raise
             else:
@@ -495,7 +495,7 @@ class _singlefileMailbox(Mailbox):
         Mailbox.__init__(self, path, factory, create)
         try:
             f = open(self._path, 'rb+')
-        except IOError, e:
+        except IOError as e:
             if e.errno == errno.ENOENT:
                 if create:
                     f = open(self._path, 'wb+')
@@ -605,7 +605,7 @@ class _singlefileMailbox(Mailbox):
         self._file.close()
         try:
             os.rename(new_file.name, self._path)
-        except OSError, e:
+        except OSError as e:
             if e.errno == errno.EEXIST or \
               (os.name == 'os2' and e.errno == errno.EACCES):
                 os.remove(self._path)
@@ -837,7 +837,7 @@ class MH(Mailbox):
         path = os.path.join(self._path, str(key))
         try:
             f = open(path, 'rb+')
-        except IOError, e:
+        except IOError as e:
             if e.errno == errno.ENOENT:
                 raise KeyError('No message with key: %s' % key)
             else:
@@ -859,7 +859,7 @@ class MH(Mailbox):
         path = os.path.join(self._path, str(key))
         try:
             f = open(path, 'rb+')
-        except IOError, e:
+        except IOError as e:
             if e.errno == errno.ENOENT:
                 raise KeyError('No message with key: %s' % key)
             else:
@@ -885,7 +885,7 @@ class MH(Mailbox):
                 f = open(os.path.join(self._path, str(key)), 'r+')
             else:
                 f = open(os.path.join(self._path, str(key)), 'r')
-        except IOError, e:
+        except IOError as e:
             if e.errno == errno.ENOENT:
                 raise KeyError('No message with key: %s' % key)
             else:
@@ -912,7 +912,7 @@ class MH(Mailbox):
                 f = open(os.path.join(self._path, str(key)), 'r+')
             else:
                 f = open(os.path.join(self._path, str(key)), 'r')
-        except IOError, e:
+        except IOError as e:
             if e.errno == errno.ENOENT:
                 raise KeyError('No message with key: %s' % key)
             else:
@@ -932,7 +932,7 @@ class MH(Mailbox):
         """Return a file-like representation or raise a KeyError."""
         try:
             f = open(os.path.join(self._path, str(key)), 'rb')
-        except IOError, e:
+        except IOError as e:
             if e.errno == errno.ENOENT:
                 raise KeyError('No message with key: %s' % key)
             else:
@@ -1843,7 +1843,7 @@ def _lock_file(f, dotlock=True):
         if fcntl:
             try:
                 fcntl.lockf(f, fcntl.LOCK_EX | fcntl.LOCK_NB)
-            except IOError, e:
+            except IOError as e:
                 if e.errno in (errno.EAGAIN, errno.EACCES):
                     raise ExternalClashError('lockf: lock unavailable: %s' %
                                              f.name)
@@ -1853,7 +1853,7 @@ def _lock_file(f, dotlock=True):
             try:
                 pre_lock = _create_temporary(f.name + '.lock')
                 pre_lock.close()
-            except IOError, e:
+            except IOError as e:
                 if e.errno == errno.EACCES:
                     return  # Without write access, just skip dotlocking.
                 else:
@@ -1866,7 +1866,7 @@ def _lock_file(f, dotlock=True):
                 else:
                     os.rename(pre_lock.name, f.name + '.lock')
                     dotlock_done = True
-            except OSError, e:
+            except OSError as e:
                 if e.errno == errno.EEXIST or \
                   (os.name == 'os2' and e.errno == errno.EACCES):
                     os.remove(pre_lock.name)
index 1a90375210332e432eaedf9ccf559b0e844a3bad..8ae6bad1eee980bcd048313b8f30a19c1477eaba 100644 (file)
@@ -370,7 +370,7 @@ class Folder:
                 count = len(all)
             try:
                 anchor = self._parseindex(head, all)
-            except Error, msg:
+            except Error as msg:
                 seqs = self.getsequences()
                 if not head in seqs:
                     if not msg:
@@ -407,7 +407,7 @@ class Folder:
         # Neither X:Y nor X-Y; must be a number or a (pseudo-)sequence
         try:
             n = self._parseindex(seq, all)
-        except Error, msg:
+        except Error as msg:
             seqs = self.getsequences()
             if not seq in seqs:
                 if not msg:
@@ -471,7 +471,7 @@ class Folder:
                 pass
             try:
                 os.rename(path, commapath)
-            except os.error, msg:
+            except os.error as msg:
                 errors.append(msg)
             else:
                 deleted.append(n)
@@ -499,7 +499,7 @@ class Folder:
                 try:
                     shutil.copy2(path, topath)
                     os.unlink(path)
-                except (IOError, os.error), msg:
+                except (IOError, os.error) as msg:
                     errors.append(msg)
                     try:
                         os.unlink(topath)
@@ -989,7 +989,7 @@ def test():
                 'all'):
         try:
             do('f.parsesequence(%r)' % (seq,))
-        except Error, msg:
+        except Error as msg:
             print "Error:", msg
         stuff = os.popen("pick %r 2>/dev/null" % (seq,)).read()
         list = map(int, stuff.split())
index b0d2f181728d105e12f322c7e8bcd7eb1bc27df5..83071d4b8e60ceae40ca349bedbd05c359ffc62c 100644 (file)
@@ -510,7 +510,7 @@ More than one type argument may be given.
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'hle',
                                    ['help', 'lenient', 'extension'])
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(1, msg)
 
     strict = 1
index 9c90d8d7b1bd5dd1b86ffa8b29e227b871b46766..04c9abff8c312366ba09ceeac15e1b7e00888130 100644 (file)
@@ -317,7 +317,7 @@ class ModuleFinder:
             return
         try:
             self.import_hook(name, caller, level=level)
-        except ImportError, msg:
+        except ImportError as msg:
             self.msg(2, "ImportError:", str(msg))
             self._add_badmodule(name, caller)
         else:
@@ -328,7 +328,7 @@ class ModuleFinder:
                         continue
                     try:
                         self.import_hook(name, caller, [sub], level=level)
-                    except ImportError, msg:
+                    except ImportError as msg:
                         self.msg(2, "ImportError:", str(msg))
                         fullname = name + "." + sub
                         self._add_badmodule(fullname, caller)
@@ -602,7 +602,7 @@ def test():
     import getopt
     try:
         opts, args = getopt.getopt(sys.argv[1:], "dmp:qx:")
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         return
 
index 9efef912736aad3f72230c50a04289ce476afa4e..b14bc324c76c015d2d721c669dc0db95ab329f27 100644 (file)
@@ -111,7 +111,7 @@ def add_data(db, table, values):
                 raise TypeError, "Unsupported type %s" % field.__class__.__name__
         try:
             v.Modify(MSIMODIFY_INSERT, r)
-        except Exception, e:
+        except Exception as e:
             raise MSIError("Could not insert "+repr(values)+" into "+table)
 
         r.ClearData()
index cc51d1da8225045823b17ca276ba990eecd4c957..6e6a2b6d0d9fa8c5e021bf68c00296500cba630c 100644 (file)
@@ -127,7 +127,7 @@ class NNTP:
             except NNTPPermanentError:
                 # error 500, probably 'not implemented'
                 pass
-            except NNTPTemporaryError, e:
+            except NNTPTemporaryError as e:
                 if user and e.response[:3] == '480':
                     # Need authorization before 'mode reader'
                     readermode_afterauth = 1
index f8f643de1cbd02c8d43d9d5bcd3b958372b86b62..e1c675a2204247adbefdb8f0ac435f4cc083ba61 100644 (file)
@@ -1376,7 +1376,7 @@ class OptionParser (OptionContainer):
 
         try:
             stop = self._process_args(largs, rargs, values)
-        except (BadOptionError, OptionValueError), err:
+        except (BadOptionError, OptionValueError) as err:
             self.error(str(err))
 
         args = largs + rargs
index 35f97fb351eafea9082f3a42914c9cc733591ab9..9599cf3f1221b93be4e8913197466dad112d1096 100644 (file)
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -163,7 +163,7 @@ def makedirs(name, mode=0777):
     if head and tail and not path.exists(head):
         try:
             makedirs(head, mode)
-        except OSError, e:
+        except OSError as e:
             # be happy if someone already created the path
             if e.errno != EEXIST:
                 raise
@@ -284,7 +284,7 @@ def walk(top, topdown=True, onerror=None):
         # Note that listdir and error are globals in this module due
         # to earlier import-*.
         names = listdir(top)
-    except error, err:
+    except error as err:
         if onerror is not None:
             onerror(err)
         return
@@ -390,7 +390,7 @@ def _execvpe(file, args, env=None):
         fullname = path.join(dir, file)
         try:
             func(fullname, *argrest)
-        except error, e:
+        except error as e:
             tb = sys.exc_info()[2]
             if (e.errno != ENOENT and e.errno != ENOTDIR
                 and saved_exc is None):
index 88303d00c42c76c75ecda0e1b534355a528974e9..afe69d276fa7a1ce338bd95483d93f15478d442e 100755 (executable)
@@ -330,7 +330,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
             arg = arg[colon+1:].lstrip()
             try:
                 lineno = int(arg)
-            except ValueError, msg:
+            except ValueError as msg:
                 print >>self.stdout, '*** Bad lineno:', arg
                 return
         else:
@@ -618,7 +618,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
                 self.curframe.f_lineno = arg
                 self.stack[self.curindex] = self.stack[self.curindex][0], arg
                 self.print_stack_entry(self.stack[self.curindex])
-            except ValueError, e:
+            except ValueError as e:
                 print >>self.stdout, '*** Jump failed:', e
     do_j = do_jump
 
index b0b3aa12819d90e0e50d6272f58eac14c0a8809d..b32ee8358b05f5639a821b011fcaecf2b9e50587 100644 (file)
@@ -816,7 +816,7 @@ class Unpickler:
             while 1:
                 key = read(1)
                 dispatch[key](self)
-        except _Stop, stopinst:
+        except _Stop as stopinst:
             return stopinst.value
 
     # Return largest index k such that self.stack[k] is self.mark.
@@ -1018,7 +1018,7 @@ class Unpickler:
         if not instantiated:
             try:
                 value = klass(*args)
-            except TypeError, err:
+            except TypeError as err:
                 raise TypeError, "in constructor for %s: %s" % (
                     klass.__name__, str(err)), sys.exc_info()[2]
         self.append(value)
index 37738e4a75d27493b0f373122b5f28d7595c96f9..5b6b16995a6e9e77fdbabbeb02b455768b8e4d4f 100644 (file)
@@ -532,7 +532,7 @@ def extend_path(path, name):
         if os.path.isfile(pkgfile):
             try:
                 f = open(pkgfile)
-            except IOError, msg:
+            except IOError as msg:
                 sys.stderr.write("Can't open %s: %s\n" %
                                  (pkgfile, msg))
             else:
index 54c86c477d1aaaff683fa455814ab8a491c8a033..02bcb53559033520884747b65c3976dd460d8838 100755 (executable)
@@ -80,7 +80,7 @@ def _torgb(filename, temps):
         fname = filename
     try:
         ftype = imghdr.what(fname)
-    except IOError, msg:
+    except IOError as msg:
         if type(msg) == type(()) and len(msg) == 2 and \
                 type(msg[0]) == type(0) and type(msg[1]) == type(''):
             msg = msg[1]
index 54c86c477d1aaaff683fa455814ab8a491c8a033..02bcb53559033520884747b65c3976dd460d8838 100644 (file)
@@ -80,7 +80,7 @@ def _torgb(filename, temps):
         fname = filename
     try:
         ftype = imghdr.what(fname)
-    except IOError, msg:
+    except IOError as msg:
         if type(msg) == type(()) and len(msg) == 2 and \
                 type(msg[0]) == type(0) and type(msg[1]) == type(''):
             msg = msg[1]
index 1bd46a8fb083d6be98de882b89f32b6c65f6b0a8..340e3edf56158c6c2fdba4c06fe12af87d8d606d 100644 (file)
@@ -651,7 +651,7 @@ def AskFileForOpen(
     try:
         rr = Nav.NavChooseFile(args)
         good = 1
-    except Nav.error, arg:
+    except Nav.error as arg:
         if arg[0] != -128: # userCancelledErr
             raise Nav.error, arg
         return None
@@ -704,7 +704,7 @@ def AskFileForSave(
     try:
         rr = Nav.NavPutFile(args)
         good = 1
-    except Nav.error, arg:
+    except Nav.error as arg:
         if arg[0] != -128: # userCancelledErr
             raise Nav.error, arg
         return None
@@ -764,7 +764,7 @@ def AskFolder(
     try:
         rr = Nav.NavChooseFolder(args)
         good = 1
-    except Nav.error, arg:
+    except Nav.error as arg:
         if arg[0] != -128: # userCancelledErr
             raise Nav.error, arg
         return None
index 569cd7bae0507bb7f2eafc552dff8cd1177fe7bb..1d990af1c592cdf6fe325fea37f1fc3e7163f5d8 100644 (file)
@@ -70,7 +70,7 @@ class MiniApplication:
             msg = "High Level Event: %r %r" % (code(message), code(h | (v<<16)))
             try:
                 AE.AEProcessAppleEvent(event)
-            except AE.Error, err:
+            except AE.Error as err:
                 print 'AE error: ', err
                 print 'in', msg
                 traceback.print_exc()
index 55288bf4292bdb4ce4b3766cc0315e6c465d7ce7..7a52eb9a8e4d542fcfeff5fe64722089166639c1 100644 (file)
@@ -57,7 +57,7 @@ aekeywords = [
 def missed(ae):
     try:
         desc = ae.AEGetAttributeDesc('miss', 'keyw')
-    except AE.Error, msg:
+    except AE.Error as msg:
         return None
     return desc.data
 
@@ -86,7 +86,7 @@ def unpackevent(ae, formodulename=""):
     for key in aekeywords:
         try:
             desc = ae.AEGetAttributeDesc(key, '****')
-        except (AE.Error, MacOS.Error), msg:
+        except (AE.Error, MacOS.Error) as msg:
             if msg[0] != -1701 and msg[0] != -1704:
                 raise
             continue
index 76bdb0691c85f6a70d05c6bf4c89c5fc62dbfafe..fdd163d4f7ae0f882bb0812eda026c019ead0310 100644 (file)
@@ -48,7 +48,7 @@ class AppleSingle(object):
         header = fileobj.read(AS_HEADER_LENGTH)
         try:
             magic, version, ig, nentry = struct.unpack(AS_HEADER_FORMAT, header)
-        except ValueError, arg:
+        except ValueError as arg:
             raise Error, "Unpack header error: %s" % (arg,)
         if verbose:
             print 'Magic:   0x%8.8x' % (magic,)
@@ -65,7 +65,7 @@ class AppleSingle(object):
         for hdr in headers:
             try:
                 restype, offset, length = struct.unpack(AS_ENTRY_FORMAT, hdr)
-            except ValueError, arg:
+            except ValueError as arg:
                 raise Error, "Unpack entry error: %s" % (arg,)
             if verbose:
                 print "Fork %d, offset %d, length %d" % (restype, offset, length)
index 2d66f1c748f55fe562f85eaa5abf0ec15df9e944..fe9e8f8fcd6118ebc6116215df37389ed31a176b 100644 (file)
@@ -52,7 +52,7 @@ class ArgvCollector:
         if what == kHighLevelEvent:
             try:
                 AE.AEProcessAppleEvent(event)
-            except AE.Error, err:
+            except AE.Error as err:
                 msg = "High Level Event: %r %r" % (hex(message), hex(h | (v<<16)))
                 print 'AE error: ', err
                 print 'in', msg
@@ -77,7 +77,7 @@ class ArgvCollector:
                 fsref = alias.FSResolveAlias(None)[0]
                 pathname = fsref.as_pathname()
                 sys.argv.append(pathname)
-        except  Exception, e:
+        except  Exception as e:
             print "argvemulator.py warning: can't unpack an open document event"
             import traceback
             traceback.print_exc()
index 7c5d0f440290d5093b03d25e029fb2dde35e6f9a..4a0efbfb354d35ed913906cc28ea7708141a353f 100644 (file)
@@ -78,7 +78,7 @@ def process(template, filename, destname, copy_codefragment=0,
     fp.close()
     try:
         code = compile(text + '\n', filename, "exec")
-    except SyntaxError, arg:
+    except SyntaxError as arg:
         raise BuildError, "Syntax error in script %s: %s" % (filename, arg)
     except EOFError:
         raise BuildError, "End-of-file in script %s" % (filename,)
index d21fc3e5bca108c90a04de5d653e053c441be24b..d58adf25f53b66c95fd7afeda908eb2e2756ce28 100755 (executable)
@@ -764,7 +764,7 @@ def makedirs(dir):
     directory. Don't moan if any path element already exists."""
     try:
         os.makedirs(dir)
-    except OSError, why:
+    except OSError as why:
         if why.errno != errno.EEXIST:
             raise
 
index 53c0a5270a8206db990f285693ab0b6a69367842..7d03d8f6e7d3a488c631ceaf16ef7ee06aa74c82 100644 (file)
@@ -114,7 +114,7 @@ def main_interactive(interact=0, basepkgname='StdSuites'):
     try:
         processfile(filename, edit_modnames=edit_modnames, basepkgname=basepkgname,
         verbose=sys.stderr)
-    except MacOS.Error, arg:
+    except MacOS.Error as arg:
         print "Error getting terminology:", arg
         print "Retry, manually parsing resources"
         processfile_fromresource(filename, edit_modnames=edit_modnames,
@@ -190,7 +190,7 @@ def processfile(fullname, output=None, basepkgname=None,
         print >>verbose, "\nASKING FOR aete DICTIONARY IN", repr(fullname)
     try:
         aedescobj, launched = OSATerminology.GetAppTerminology(fullname)
-    except MacOS.Error, arg:
+    except MacOS.Error as arg:
         if arg[0] in (-1701, -192): # errAEDescNotFound, resNotFound
             if verbose:
                 print >>verbose, "GetAppTerminology failed with errAEDescNotFound/resNotFound, trying manually"
@@ -244,7 +244,7 @@ def getappterminology(fullname, verbose=None):
     talker = aetools.TalkTo(cr)
     try:
         talker._start()
-    except (MacOS.Error, aetools.Error), arg:
+    except (MacOS.Error, aetools.Error) as arg:
         if verbose:
             print >>verbose, 'Warning: start() failed, continuing anyway:', arg
     reply = talker.send("ascr", "gdte")
index d5839a11dfcf77a43b8317743e41f895c9ab916b..91dfffa1c6a4dc707a5611558b2294d0522321f7 100644 (file)
@@ -76,14 +76,14 @@ def open_pathname(pathname, verbose=0):
     AppleSingle file"""
     try:
         refno = Res.FSpOpenResFile(pathname, 1)
-    except Res.Error, arg:
+    except Res.Error as arg:
         if arg[0] in (-37, -39):
             # No resource fork. We may be on OSX, and this may be either
             # a data-fork based resource file or a AppleSingle file
             # from the CVS repository.
             try:
                 refno = Res.FSOpenResourceFile(pathname, u'', 1)
-            except Res.Error, arg:
+            except Res.Error as arg:
                 if arg[0] != -199:
                     # -199 is "bad resource map"
                     raise
@@ -103,14 +103,14 @@ def resource_pathname(pathname, verbose=0):
     try:
         refno = Res.FSpOpenResFile(pathname, 1)
         Res.CloseResFile(refno)
-    except Res.Error, arg:
+    except Res.Error as arg:
         if arg[0] in (-37, -39):
             # No resource fork. We may be on OSX, and this may be either
             # a data-fork based resource file or a AppleSingle file
             # from the CVS repository.
             try:
                 refno = Res.FSOpenResourceFile(pathname, u'', 1)
-            except Res.Error, arg:
+            except Res.Error as arg:
                 if arg[0] != -199:
                     # -199 is "bad resource map"
                     raise
index ff696b14efdf8f309b3be252a7d836ded40feaf1..6927ad7facae9a7e62e2f247d4daa8f5af110fba 100644 (file)
@@ -76,7 +76,7 @@ def getDefaultDatabase(experimental=False):
         url = DEFAULT_PIMPDATABASE_FMT % (PIMP_VERSION, status, pyvers, osname, rel, machine)
         try:
             urllib2.urlopen(url)
-        except urllib2.HTTPError, arg:
+        except urllib2.HTTPError as arg:
             pass
         else:
             break
@@ -589,13 +589,13 @@ class PimpPackage:
         installTest = self._dict['Install-test'].strip() + '\n'
         try:
             exec(installTest, namespace)
-        except ImportError, arg:
+        except ImportError as arg:
             return "no", str(arg)
-        except _scriptExc_NotInstalled, arg:
+        except _scriptExc_NotInstalled as arg:
             return "no", str(arg)
-        except _scriptExc_OldInstalled, arg:
+        except _scriptExc_OldInstalled as arg:
             return "old", str(arg)
-        except _scriptExc_BadInstalled, arg:
+        except _scriptExc_BadInstalled as arg:
             return "bad", str(arg)
         except:
             sys.stderr.write("-------------------------------------\n")
index 292f09c7d80a633fc975eb16a0b4dd29d7cecf39..a2f008c8daf4e1bf12992245dbbbfbf2061f337a 100644 (file)
@@ -35,7 +35,7 @@ def run(command):
 
     try:
         theEvent.AESend(SEND_MODE, kAENormalPriority, kAEDefaultTimeout)
-    except AE.Error, why:
+    except AE.Error as why:
         if why[0] != -600:  # Terminal.app not yet running
             raise
         os.system(START_TERMINAL)
index 5fd13a3d5a11589e812f9223db848cb261d0aad7..cf588191ddf35de55710fbeed97512c2d73a85d5 100755 (executable)
@@ -404,10 +404,10 @@ def _syscmd_ver(system='',release='',version='',
                 raise os.error,'command failed'
             # XXX How can I supress shell errors from being written
             #     to stderr ?
-        except os.error,why:
+        except os.error as why:
             #print 'Command %s failed: %s' % (cmd,why)
             continue
-        except IOError,why:
+        except IOError as why:
             #print 'Command %s failed: %s' % (cmd,why)
             continue
         else:
index 1cf114abc39f9c8fb3ce5e67ff7f0b26ef6c9775..b7a7a8af75f28282e60e9686ce7bb418ea49034f 100644 (file)
@@ -86,7 +86,7 @@ class POP3:
             try:
                 self.sock = socket.socket(af, socktype, proto)
                 self.sock.connect(sa)
-            except socket.error, msg:
+            except socket.error as msg:
                 if self.sock:
                     self.sock.close()
                 self.sock = None
@@ -262,7 +262,7 @@ class POP3:
         """Signoff: commit changes on server, unlock mailbox, close connection."""
         try:
             resp = self._shortcmd('QUIT')
-        except error_proto, val:
+        except error_proto as val:
             resp = val
         self.file.close()
         self.sock.close()
@@ -347,7 +347,7 @@ class POP3_SSL(POP3):
             try:
                 self.sock = socket.socket(af, socktype, proto)
                 self.sock.connect(sa)
-            except socket.error, msg:
+            except socket.error as msg:
                 if self.sock:
                     self.sock.close()
                 self.sock = None
@@ -399,7 +399,7 @@ class POP3_SSL(POP3):
         """Signoff: commit changes on server, unlock mailbox, close connection."""
         try:
             resp = self._shortcmd('QUIT')
-        except error_proto, val:
+        except error_proto as val:
             resp = val
         self.sock.close()
         del self.sslobj, self.sock
index ba0b8049f457714bafa9302eecc9e2f09df8daf9..2b152c312718d1621936ac53bfc0a7ddc52dc5ef 100644 (file)
@@ -618,7 +618,7 @@ if __name__ == '__main__':
             if line:
                 try:
                     self.stats = Stats(line)
-                except IOError, args:
+                except IOError as args:
                     print >> self.stream, args[1]
                     return
                 self.prompt = line + "% "
index d3eb64f0a0939f9e0c401f4ae7c157e3a68ea9aa..8c6531331413946ad0a39942828126c09c4c929a 100644 (file)
@@ -56,7 +56,7 @@ def _open_terminal():
     else:
         try:
             tty_name, master_fd = sgi._getpty(os.O_RDWR, 0666, 0)
-        except IOError, msg:
+        except IOError as msg:
             raise os.error, msg
         return master_fd, tty_name
     for x in 'pqrstuvwxyzPQRST':
index 1cb41f1e0e59f9ae8fd3baae08e23d4d9f5ef600..23c5d18b156411652f22158a4fbf0ad2ce5d4d7a 100644 (file)
@@ -123,7 +123,7 @@ def compile(file, cfile=None, dfile=None, doraise=False):
         codestring = codestring + '\n'
     try:
         codeobject = __builtin__.compile(codestring, dfile or file,'exec')
-    except Exception,err:
+    except Exception as err:
         py_exc = PyCompileError(err.__class__,err.args,dfile or file)
         if doraise:
             raise py_exc
@@ -157,7 +157,7 @@ def main(args=None):
     for filename in args:
         try:
             compile(filename, doraise=True)
-        except PyCompileError,err:
+        except PyCompileError as err:
             sys.stderr.write(err.msg)
 
 if __name__ == "__main__":
index d1ab01c214be1e8e0f77725028692294e36fd197..892e278248a32a592794405205551c76de0f6451 100755 (executable)
@@ -1479,7 +1479,7 @@ def doc(thing, title='Python Library Documentation: %s', forceload=0):
             object = type(object)
             desc += ' object'
         pager(title % desc + '\n\n' + text.document(object, name))
-    except (ImportError, ErrorDuringImport), value:
+    except (ImportError, ErrorDuringImport) as value:
         print value
 
 def writedoc(thing, forceload=0):
@@ -1491,7 +1491,7 @@ def writedoc(thing, forceload=0):
         file.write(page)
         file.close()
         print 'wrote', name + '.html'
-    except (ImportError, ErrorDuringImport), value:
+    except (ImportError, ErrorDuringImport) as value:
         print value
 
 def writedocs(dir, pkgpath='', done=None):
@@ -1920,7 +1920,7 @@ def serve(port, callback=None, completer=None):
             if path and path != '.':
                 try:
                     obj = locate(path, forceload=1)
-                except ErrorDuringImport, value:
+                except ErrorDuringImport as value:
                     self.send_document(path, html.escape(str(value)))
                     return
                 if obj:
@@ -2223,7 +2223,7 @@ def cli():
                         writedoc(arg)
                 else:
                     help.help(arg)
-            except ErrorDuringImport, value:
+            except ErrorDuringImport as value:
                 print value
 
     except (getopt.error, BadUsage):
index 8788afc2f188faeb357442e130431dfa569ff571..171a59e0ae5bc816aa64d32f00b7d8840d075921 100755 (executable)
@@ -194,7 +194,7 @@ def main():
     import getopt
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'td')
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stdout = sys.stderr
         print msg
         print "usage: quopri [-t | -d] [file] ..."
@@ -218,7 +218,7 @@ def main():
         else:
             try:
                 fp = open(file)
-            except IOError, msg:
+            except IOError as msg:
                 sys.stderr.write("%s: can't open (%s)\n" % (file, msg))
                 sts = 1
                 continue
index a33e34e4e1edec058a9951214b8fe85c11458634..7388e4bca3e96784347e61686c4118db4bd2bd0e 100644 (file)
--- a/Lib/re.py
+++ b/Lib/re.py
@@ -229,7 +229,7 @@ def _compile(*key):
         raise TypeError, "first argument must be string or compiled pattern"
     try:
         p = sre_compile.compile(pattern, flags)
-    except error, v:
+    except error as v:
         raise error, v # invalid expression
     if len(_cache) >= _MAXCACHE:
         _cache.clear()
@@ -244,7 +244,7 @@ def _compile_repl(*key):
     repl, pattern = key
     try:
         p = sre_parse.parse_template(repl, pattern)
-    except error, v:
+    except error as v:
         raise error, v # invalid expression
     if len(_cache_repl) >= _MAXCACHE:
         _cache_repl.clear()
index 37dff62e5072088092965e8ce531e8547a9972bd..665f294dd40f0d7c3994810ac8bdae3dcf2736bb 100644 (file)
@@ -551,7 +551,7 @@ def test():
     if args and args[0] != '-':
         try:
             fp = open(args[0])
-        except IOError, msg:
+        except IOError as msg:
             print "%s: can't open file %r" % (sys.argv[0], args[0])
             return 1
     if fp.isatty():
@@ -566,7 +566,7 @@ def test():
                 r.s_apply(code.InteractiveConsole.runcode, (self, co))
         try:
             RestrictedConsole(r.modules['__main__'].__dict__).interact()
-        except SystemExit, n:
+        except SystemExit as n:
             return n
     else:
         text = fp.read()
@@ -574,7 +574,7 @@ def test():
         c = compile(text, fp.name, 'exec')
         try:
             r.s_exec(c)
-        except SystemExit, n:
+        except SystemExit as n:
             return n
         except:
             traceback.print_exc()
index 3ab57c23071707b0a23c29e58f35afaa09306f37..1574f44a9d8bd4b8ff1362465dc5872c2e5f533f 100644 (file)
@@ -530,7 +530,7 @@ def test(args = None):
     else:
         try:
             f = open(file, 'r')
-        except IOError, msg:
+        except IOError as msg:
             print file, ":", msg
             sys.exit(1)
 
index c3ff687bff4efcd407f16cddbf71995f7d8962b2..7da5cac7d7831de2dc92da330648e80d13517e9e 100644 (file)
@@ -121,18 +121,18 @@ def copytree(src, dst, symlinks=False):
             else:
                 copy2(srcname, dstname)
             # XXX What about devices, sockets etc.?
-        except (IOError, os.error), why:
+        except (IOError, os.error) as why:
             errors.append((srcname, dstname, str(why)))
         # catch the Error from the recursive copytree so that we can
         # continue with other files
-        except Error, err:
+        except Error as err:
             errors.extend(err.args[0])
     try:
         copystat(src, dst)
     except WindowsError:
         # can't copy file access times on Windows
         pass
-    except OSError, why:
+    except OSError as why:
         errors.extend((src, dst, str(why)))
     if errors:
         raise Error, errors
@@ -157,7 +157,7 @@ def rmtree(path, ignore_errors=False, onerror=None):
     names = []
     try:
         names = os.listdir(path)
-    except os.error, err:
+    except os.error as err:
         onerror(os.listdir, path, sys.exc_info())
     for name in names:
         fullname = os.path.join(path, name)
@@ -170,7 +170,7 @@ def rmtree(path, ignore_errors=False, onerror=None):
         else:
             try:
                 os.remove(fullname)
-            except os.error, err:
+            except os.error as err:
                 onerror(os.remove, fullname, sys.exc_info())
     try:
         os.rmdir(path)
index 1513818abdc3f06de42654ae58d07b78b667620c..5b03b5e802fe52efc3578f5ee71fc23e7bec1d61 100644 (file)
@@ -391,7 +391,7 @@ def execsitecustomize():
         import sitecustomize
     except ImportError:
         pass
-    except Exception, err:
+    except Exception as err:
         if os.environ.get("PYTHONVERBOSE"):
             raise
         sys.stderr.write(
index c656ec76396a62fb5df0200eec1104b635ef2c8a..3b818564c0d9c483b23e210557c7aabffa94755f 100755 (executable)
@@ -357,10 +357,10 @@ class PureProxy(SMTPServer):
                 refused = s.sendmail(mailfrom, rcpttos, data)
             finally:
                 s.quit()
-        except smtplib.SMTPRecipientsRefused, e:
+        except smtplib.SMTPRecipientsRefused as e:
             print >> DEBUGSTREAM, 'got SMTPRecipientsRefused'
             refused = e.recipients
-        except (socket.error, smtplib.SMTPException), e:
+        except (socket.error, smtplib.SMTPException) as e:
             print >> DEBUGSTREAM, 'got', e.__class__
             # All recipients were refused.  If the exception had an associated
             # error code, use it.  Otherwise,fake it with a non-triggering
@@ -464,7 +464,7 @@ def parseargs():
         opts, args = getopt.getopt(
             sys.argv[1:], 'nVhc:d',
             ['class=', 'nosetuid', 'version', 'help', 'debug'])
-    except getopt.error, e:
+    except getopt.error as e:
         usage(1, e)
 
     options = Options()
@@ -528,7 +528,7 @@ if __name__ == '__main__':
         nobody = pwd.getpwnam('nobody')[2]
         try:
             os.setuid(nobody)
-        except OSError, e:
+        except OSError as e:
             if e.errno != errno.EPERM: raise
             print >> sys.stderr, \
                   'Cannot setuid "nobody"; try running with -n option.'
index a7305ce92eaa61b56aa0119e5db82aa82682bd4d..a96082afb75fac244364aa3d1ef0717b324be06f 100755 (executable)
@@ -306,7 +306,7 @@ class SMTP:
             af, socktype, proto, canonname, sa = res
             try:
                 self._get_socket(af,socktype,proto,sa)
-            except socket.error, msg:
+            except socket.error as msg:
                 if self.debuglevel > 0: print>>stderr, 'connect fail:', msg
                 if self.sock:
                     self.sock.close()
index b08da9c5fa702ece6e8f257c41d97689c8d65edb..6fe93abe6ce6885e72faebb396078ff2c7b22e73 100644 (file)
@@ -326,7 +326,7 @@ class CursorTests(unittest.TestCase):
             self.fail("should have raised a TypeError")
         except TypeError:
             return
-        except Exception, e:
+        except Exception as e:
             print "raised", e.__class__
             self.fail("raised wrong exception.")
 
index 761bdaa6b74223aa19111cdb9a881fcb9e97c174..d67028fe71e37429765bc093e93d99eb29bb49b0 100644 (file)
@@ -36,7 +36,7 @@ class CollationTests(unittest.TestCase):
         try:
             con.create_collation("X", 42)
             self.fail("should have raised a TypeError")
-        except TypeError, e:
+        except TypeError as e:
             self.failUnlessEqual(e.args[0], "parameter must be callable")
 
     def CheckCreateCollationNotAscii(self):
@@ -44,7 +44,7 @@ class CollationTests(unittest.TestCase):
         try:
             con.create_collation("collä", cmp)
             self.fail("should have raised a ProgrammingError")
-        except sqlite.ProgrammingError, e:
+        except sqlite.ProgrammingError as e:
             pass
 
     def CheckCollationIsUsed(self):
@@ -73,7 +73,7 @@ class CollationTests(unittest.TestCase):
         try:
             result = con.execute(sql).fetchall()
             self.fail("should have raised an OperationalError")
-        except sqlite.OperationalError, e:
+        except sqlite.OperationalError as e:
             self.failUnlessEqual(e.args[0].lower(), "no such collation sequence: mycoll")
 
     def CheckCollationRegisterTwice(self):
@@ -101,7 +101,7 @@ class CollationTests(unittest.TestCase):
         try:
             con.execute("select 'a' as x union select 'b' as x order by x collate mycoll")
             self.fail("should have raised an OperationalError")
-        except sqlite.OperationalError, e:
+        except sqlite.OperationalError as e:
             if not e.args[0].startswith("no such collation sequence"):
                 self.fail("wrong OperationalError raised")
 
index e455fb69bd5f0d8c089ed7a436fb79c33f4ae0f2..a7cdcaecf1e17a532289775cce101d041437d7ab 100644 (file)
@@ -205,7 +205,7 @@ class FunctionTests(unittest.TestCase):
             cur.execute("select raiseexception()")
             cur.fetchone()
             self.fail("should have raised OperationalError")
-        except sqlite.OperationalError, e:
+        except sqlite.OperationalError as e:
             self.failUnlessEqual(e.args[0], 'user-defined function raised exception')
 
     def CheckParamString(self):
@@ -279,7 +279,7 @@ class AggregateTests(unittest.TestCase):
         try:
             cur.execute("select nostep(t) from test")
             self.fail("should have raised an AttributeError")
-        except AttributeError, e:
+        except AttributeError as e:
             self.failUnlessEqual(e.args[0], "'AggrNoStep' object has no attribute 'step'")
 
     def CheckAggrNoFinalize(self):
@@ -288,7 +288,7 @@ class AggregateTests(unittest.TestCase):
             cur.execute("select nofinalize(t) from test")
             val = cur.fetchone()[0]
             self.fail("should have raised an OperationalError")
-        except sqlite.OperationalError, e:
+        except sqlite.OperationalError as e:
             self.failUnlessEqual(e.args[0], "user-defined aggregate's 'finalize' method raised error")
 
     def CheckAggrExceptionInInit(self):
@@ -297,7 +297,7 @@ class AggregateTests(unittest.TestCase):
             cur.execute("select excInit(t) from test")
             val = cur.fetchone()[0]
             self.fail("should have raised an OperationalError")
-        except sqlite.OperationalError, e:
+        except sqlite.OperationalError as e:
             self.failUnlessEqual(e.args[0], "user-defined aggregate's '__init__' method raised error")
 
     def CheckAggrExceptionInStep(self):
@@ -306,7 +306,7 @@ class AggregateTests(unittest.TestCase):
             cur.execute("select excStep(t) from test")
             val = cur.fetchone()[0]
             self.fail("should have raised an OperationalError")
-        except sqlite.OperationalError, e:
+        except sqlite.OperationalError as e:
             self.failUnlessEqual(e.args[0], "user-defined aggregate's 'step' method raised error")
 
     def CheckAggrExceptionInFinalize(self):
@@ -315,7 +315,7 @@ class AggregateTests(unittest.TestCase):
             cur.execute("select excFinalize(t) from test")
             val = cur.fetchone()[0]
             self.fail("should have raised an OperationalError")
-        except sqlite.OperationalError, e:
+        except sqlite.OperationalError as e:
             self.failUnlessEqual(e.args[0], "user-defined aggregate's 'finalize' method raised error")
 
     def CheckAggrCheckParamStr(self):
@@ -384,7 +384,7 @@ class AuthorizerTests(unittest.TestCase):
     def CheckTableAccess(self):
         try:
             self.con.execute("select * from t2")
-        except sqlite.DatabaseError, e:
+        except sqlite.DatabaseError as e:
             if not e.args[0].endswith("prohibited"):
                 self.fail("wrong exception text: %s" % e.args[0])
             return
@@ -393,7 +393,7 @@ class AuthorizerTests(unittest.TestCase):
     def CheckColumnAccess(self):
         try:
             self.con.execute("select c2 from t1")
-        except sqlite.DatabaseError, e:
+        except sqlite.DatabaseError as e:
             if not e.args[0].endswith("prohibited"):
                 self.fail("wrong exception text: %s" % e.args[0])
             return
index 62b70baaa95f521a733204df03f3980f251b5af6..f5800fb0db25f92757fd5cd3f6f67002d70ad1d0 100644 (file)
@@ -792,7 +792,7 @@ class Popen(object):
                                          env,
                                          cwd,
                                          startupinfo)
-            except pywintypes.error, e:
+            except pywintypes.error as e:
                 # Translate pywintypes.error to WindowsError, which is
                 # a subclass of OSError.  FIXME: We should really
                 # translate errno using _sys_errlist (or simliar), but
@@ -1190,7 +1190,7 @@ def _demo_posix():
     print "Trying a weird file..."
     try:
         print Popen(["/this/path/does/not/exist"]).communicate()
-    except OSError, e:
+    except OSError as e:
         if e.errno == errno.ENOENT:
             print "The file didn't exist.  I thought so..."
             print "Child traceback:"
index 76665ac91a01d290f2771cb9ad6a9d15021f671c..1d2c6db2bc93c479b4b9056fb24474d3d96ef754 100755 (executable)
@@ -43,7 +43,7 @@ def main():
     global verbose, filename_only
     try:
         opts, args = getopt.getopt(sys.argv[1:], "qv")
-    except getopt.error, msg:
+    except getopt.error as msg:
         errprint(msg)
         return
     for o, a in opts:
@@ -95,7 +95,7 @@ def check(file):
 
     try:
         f = open(file)
-    except IOError, msg:
+    except IOError as msg:
         errprint("%r: I/O Error: %s" % (file, msg))
         return
 
@@ -105,15 +105,15 @@ def check(file):
     try:
         process_tokens(tokenize.generate_tokens(f.readline))
 
-    except tokenize.TokenError, msg:
+    except tokenize.TokenError as msg:
         errprint("%r: Token Error: %s" % (file, msg))
         return
 
-    except IndentationError, msg:
+    except IndentationError as msg:
         errprint("%r: Indentation Error: %s" % (file, msg))
         return
 
-    except NannyNag, nag:
+    except NannyNag as nag:
         badline = nag.get_lineno()
         line = nag.get_line()
         if verbose:
index 3ffdff360b4efe10641fc0efdf8a23a0b7760097..2088e5c28847ab8f219ec12f74547776bb525fb3 100644 (file)
@@ -1540,7 +1540,7 @@ class TarFile(object):
                 self.chown(tarinfo, path)
                 self.utime(tarinfo, path)
                 self.chmod(tarinfo, path)
-            except ExtractError, e:
+            except ExtractError as e:
                 if self.errorlevel > 1:
                     raise
                 else:
@@ -1565,7 +1565,7 @@ class TarFile(object):
 
         try:
             self._extract_member(tarinfo, os.path.join(path, tarinfo.name))
-        except EnvironmentError, e:
+        except EnvironmentError as e:
             if self.errorlevel > 0:
                 raise
             else:
@@ -1573,7 +1573,7 @@ class TarFile(object):
                     self._dbg(1, "tarfile: %s" % e.strerror)
                 else:
                     self._dbg(1, "tarfile: %s %r" % (e.strerror, e.filename))
-        except ExtractError, e:
+        except ExtractError as e:
             if self.errorlevel > 1:
                 raise
             else:
@@ -1681,7 +1681,7 @@ class TarFile(object):
         """
         try:
             os.mkdir(targetpath)
-        except EnvironmentError, e:
+        except EnvironmentError as e:
             if e.errno != errno.EEXIST:
                 raise
 
@@ -1745,11 +1745,11 @@ class TarFile(object):
 
             try:
                 self._extract_member(self.getmember(linkpath), targetpath)
-            except (EnvironmentError, KeyError), e:
+            except (EnvironmentError, KeyError) as e:
                 linkpath = os.path.normpath(linkpath)
                 try:
                     shutil.copy2(linkpath, targetpath)
-                except EnvironmentError, e:
+                except EnvironmentError as e:
                     raise IOError("link could not be created")
 
     def chown(self, tarinfo, targetpath):
@@ -1777,7 +1777,7 @@ class TarFile(object):
                 else:
                     if sys.platform != "os2emx":
                         os.chown(targetpath, u, g)
-            except EnvironmentError, e:
+            except EnvironmentError as e:
                 raise ExtractError("could not change owner")
 
     def chmod(self, tarinfo, targetpath):
@@ -1786,7 +1786,7 @@ class TarFile(object):
         if hasattr(os, 'chmod'):
             try:
                 os.chmod(targetpath, tarinfo.mode)
-            except EnvironmentError, e:
+            except EnvironmentError as e:
                 raise ExtractError("could not change mode")
 
     def utime(self, tarinfo, targetpath):
@@ -1800,7 +1800,7 @@ class TarFile(object):
             return
         try:
             os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime))
-        except EnvironmentError, e:
+        except EnvironmentError as e:
             raise ExtractError("could not change modification time")
 
     #--------------------------------------------------------------------------
@@ -1833,7 +1833,7 @@ class TarFile(object):
 
                 tarinfo = self.proc_member(tarinfo)
 
-            except HeaderError, e:
+            except HeaderError as e:
                 if self.ignore_zeros:
                     self._dbg(2, "0x%X: %s" % (self.offset, e))
                     self.offset += BLOCKSIZE
index a13e85cc9863542fd520e12a9131c3157375a703..4964d590939c2cb8ecd42d5162bae8ed7b210642 100644 (file)
@@ -227,7 +227,7 @@ class Telnet:
             try:
                 self.sock = socket.socket(af, socktype, proto)
                 self.sock.connect(sa)
-            except socket.error, msg:
+            except socket.error as msg:
                 if self.sock:
                     self.sock.close()
                 self.sock = None
index 2e8cd6d7d52c60510915f07a75c12b1bb51731bf..f4f10581bd6471e6e4accba7961ffee5c2a32500 100644 (file)
@@ -201,7 +201,7 @@ def _get_default_tempdir():
                 _os.unlink(filename)
                 del fp, fd
                 return dir
-            except (OSError, IOError), e:
+            except (OSError, IOError) as e:
                 if e[0] != _errno.EEXIST:
                     break # no point trying more names in this directory
                 pass
@@ -236,7 +236,7 @@ def _mkstemp_inner(dir, pre, suf, flags):
             fd = _os.open(file, flags, 0600)
             _set_cloexec(fd)
             return (fd, _os.path.abspath(file))
-        except OSError, e:
+        except OSError as e:
             if e.errno == _errno.EEXIST:
                 continue # try again
             raise
@@ -327,7 +327,7 @@ def mkdtemp(suffix="", prefix=template, dir=None):
         try:
             _os.mkdir(file, 0700)
             return file
-        except OSError, e:
+        except OSError as e:
             if e.errno == _errno.EEXIST:
                 continue # try again
             raise
index 30c1e7c59da9015e6a8da318368681f60bf04896..0f1386efb00ac3fcf0cb0866c5a9b238409f77e7 100644 (file)
@@ -585,7 +585,7 @@ class AbstractPickleTests(unittest.TestCase):
         badpickle = pickle.PROTO + chr(oob) + build_none
         try:
             self.loads(badpickle)
-        except ValueError, detail:
+        except ValueError as detail:
             self.failUnless(str(detail).startswith(
                                             "unsupported pickle protocol"))
         else:
index 8c0f2e4a0ebed4bd4a0a6776dc7cc3da0bb8aba7..ce39649968ebd4269a79e55548eb4b7f80364f99 100755 (executable)
@@ -211,7 +211,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
                                     'coverdir=', 'nocoverdir', 'runleaks',
                                     'huntrleaks=', 'verbose2', 'memlimit=',
                                     ])
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(2, msg)
 
     # Defaults
@@ -556,19 +556,19 @@ def runtest_inner(test, generate, verbose, quiet,
                 dash_R(the_module, test, indirect_test, huntrleaks)
         finally:
             sys.stdout = save_stdout
-    except test_support.ResourceDenied, msg:
+    except test_support.ResourceDenied as msg:
         if not quiet:
             print test, "skipped --", msg
             sys.stdout.flush()
         return -2
-    except (ImportError, test_support.TestSkipped), msg:
+    except (ImportError, test_support.TestSkipped) as msg:
         if not quiet:
             print test, "skipped --", msg
             sys.stdout.flush()
         return -1
     except KeyboardInterrupt:
         raise
-    except test_support.TestFailed, msg:
+    except test_support.TestFailed as msg:
         print "test", test, "failed --", msg
         sys.stdout.flush()
         return 0
@@ -640,7 +640,7 @@ def cleanup_test_droppings(testname, verbose):
             print "%r left behind %s %r" % (testname, kind, name)
         try:
             nuker(name)
-        except Exception, msg:
+        except Exception as msg:
             print >> sys.stderr, ("%r left behind %s %r and it couldn't be "
                 "removed: %s" % (testname, kind, name, msg))
 
index cc83ee43d9e52bc655088ac3b9b709432a2a9a7b..3c95b891825ec7ab73d019ca74de27e9807cc1b0 100644 (file)
@@ -37,7 +37,7 @@ def randfloats(n):
                         os.unlink(fn)
                     except os.error:
                         pass
-        except IOError, msg:
+        except IOError as msg:
             print "can't write", fn, ":", msg
     else:
         result = marshal.load(fp)
index 1aa68dedd0d88daa05da5615d3d3b824b793e392..2116ea4ca872de8af178730b00e6212b01c8d1f0 100644 (file)
@@ -970,7 +970,7 @@ class MixinStrUnicodeUserStringTest:
             def f():
                 yield 4 + ""
             self.fixtype(' ').join(f())
-        except TypeError, e:
+        except TypeError as e:
             if '+' not in str(e):
                 self.fail('join() ate exception message')
         else:
index 8121e03e0678a35d9d5a12cad5c67915e9e466c2..954423f1e9bf397f4ddbfb970266c4d38a48657a 100644 (file)
@@ -373,13 +373,11 @@ class BoolTest(unittest.TestCase):
                     return badval
             try:
                 bool(A())
-            except (Exception), e_bool:
-                pass
-            try:
-                len(A())
-            except (Exception), e_len:
-                pass
-            self.assertEqual(str(e_bool), str(e_len))
+            except (Exception) as e_bool:
+                try:
+                    len(A())
+                except (Exception) as e_len:
+                    self.assertEqual(str(e_bool), str(e_len))
 
 def test_main():
     test_support.run_unittest(BoolTest)
index 3979f1545589d594df99e3c1b6111d5288e7db1e..1b288b4426447e0910f39b20e35a5320284b11cb 100644 (file)
@@ -181,7 +181,7 @@ class TestCaseBase(unittest.TestCase):
     def get_error(self, exc, section, option):
         try:
             self.cf.get(section, option)
-        except exc, e:
+        except exc as e:
             return e
         else:
             self.fail("expected exception type %s.%s"
index 52e5e913f438a3d8ff03d84bd7232efda068bb54..9cf6a121ac71c2beaad19920221d7825df7b20d1 100644 (file)
@@ -50,7 +50,7 @@ def do_test(buf, method):
         raise ValueError, "unknown method: %s" % method
     try:
         return cgi.parse(fp, env, strict_parsing=1)
-    except StandardError, err:
+    except StandardError as err:
         return ComparableException(err)
 
 # A list of test cases.  Each test case is a a two-tuple that contains
index 3201dd8c5d1e2ccbbdd69162ff6cd3fef87dd699..1758fd469ab98033070edb62059d82ab0eb719c7 100644 (file)
@@ -372,7 +372,7 @@ class A:
     a = property(booh)
 try:
     A().a # Raised AttributeError: A instance has no attribute 'a'
-except AttributeError, x:
+except AttributeError as x:
     if str(x) != "booh":
         print "attribute error for A().a got masked:", str(x)
 
@@ -384,7 +384,7 @@ class I:
     __init__ = property(booh)
 try:
     I() # In debug mode, printed XXX undetected error and raises AttributeError
-except AttributeError, x:
+except AttributeError as x:
     pass
 else:
     print "attribute error for I.__init__ got masked"
index 3c800f87771164722672ea83bdfa4633ca9cfa46..071192371464af4a3c2d5b777c0ae6a84a48b33e 100644 (file)
@@ -595,7 +595,7 @@ class UnicodeInternalTest(unittest.TestCase):
         if sys.maxunicode > 0xffff:
             try:
                 "\x00\x00\x00\x00\x00\x11\x11\x00".decode("unicode_internal")
-            except UnicodeDecodeError, ex:
+            except UnicodeDecodeError as ex:
                 self.assertEquals("unicode_internal", ex.encoding)
                 self.assertEquals("\x00\x00\x00\x00\x00\x11\x11\x00", ex.object)
                 self.assertEquals(4, ex.start)
@@ -782,7 +782,7 @@ class NameprepTest(unittest.TestCase):
                 prepped = unicode(prepped, "utf-8")
                 try:
                     self.assertEquals(nameprep(orig), prepped)
-                except Exception,e:
+                except Exception as e:
                     raise test_support.TestFailed("Test 3.%d: %s" % (pos+1, str(e)))
 
 class IDNACodecTest(unittest.TestCase):
index 2ecd093d84ed243b560941cf45b6e3f270c5ce39..ebccb36e0eddad57c9e4707c18cacc557cd911b4 100644 (file)
@@ -44,7 +44,7 @@ class CompilerTest(unittest.TestCase):
                 else:
                     try:
                         compiler.compile(buf, basename, "exec")
-                    except Exception, e:
+                    except Exception as e:
                         args = list(e.args)
                         args[0] += "[in file %s]" % basename
                         e.args = tuple(args)
index 747785d54f75dfc6d46122645c7dfe851dad6ea3..914242850e7f632d282c9ee1f2edea3ce8a17ed5 100644 (file)
@@ -76,7 +76,7 @@ class ContextManagerTestCase(unittest.TestCase):
             state.append(1)
             try:
                 yield 42
-            except ZeroDivisionError, e:
+            except ZeroDivisionError as e:
                 state.append(e.args[0])
                 self.assertEqual(state, [1, 42, 999])
         with woohoo() as x:
index 544f29fbf447e9bf2ffb6341d6fe50fbbb7ed6e8..9b06869cea17fa3c0207a0328ee6cd009040957f 100644 (file)
@@ -257,7 +257,7 @@ class FileCookieJarTests(TestCase):
             try:
                 c.load(filename="for this test to work, a file with this "
                                 "filename should not exist")
-            except IOError, exc:
+            except IOError as exc:
                 # exactly IOError, not LoadError
                 self.assertEqual(exc.__class__, IOError)
             else:
index ed92bfe0d9588a001badaee291a81659a1f5dd49..0a9db4e244d79d4f7c8ed92b32818445e19ec6c5 100755 (executable)
@@ -16,7 +16,8 @@ def cleanup():
     for suffix in ['', '.pag', '.dir', '.db']:
         try:
             os.unlink(filename + suffix)
-        except OSError, (errno, strerror):
+        except OSError as e:
+            (errno, strerror) = e
             # if we can't delete the file because of permissions,
             # nothing will work, so skip the test
             if errno == 1:
index 50df93d7e3a7b0f3b2ce0877c38cc6545f517c00..f9a9e827019aa40174339d1ed2ab011adbe02ee1 100644 (file)
@@ -146,7 +146,7 @@ class DecimalTest(unittest.TestCase):
                 print 'Error in test cases:'
                 print line
                 continue
-            except DecimalException, exception:
+            except DecimalException as exception:
                 #Exception raised where there shoudn't have been one.
                 self.fail('Exception "'+exception.__class__.__name__ + '" raised on line '+line)
 
@@ -238,7 +238,7 @@ class DecimalTest(unittest.TestCase):
                             funct(self.context.create_decimal(v))
                         except error:
                             pass
-                        except Signals, e:
+                        except Signals as e:
                             self.fail("Raised %s in %s when %s disabled" % \
                                       (e, s, error))
                         else:
@@ -258,7 +258,7 @@ class DecimalTest(unittest.TestCase):
                     funct(*vals)
                 except error:
                     pass
-                except Signals, e:
+                except Signals as e:
                     self.fail("Raised %s in %s when %s disabled" % \
                               (e, s, error))
                 else:
@@ -268,7 +268,7 @@ class DecimalTest(unittest.TestCase):
             result = str(funct(*vals))
             if fname == 'same_quantum':
                 result = str(int(eval(result))) # 'True', 'False' -> '1', '0'
-        except Signals, error:
+        except Signals as error:
             self.fail("Raised %s in %s" % (error, s))
         except: #Catch any error long enough to state the test case.
             print "ERROR:", s
index 134b5a8cb2fafd905bd8e61eee04aad41da6c120..602e0d929f901f9574781df41d5583b00a04c386 100644 (file)
@@ -43,7 +43,7 @@ class TestDefaultDict(unittest.TestCase):
         self.assertEqual(d2.default_factory, None)
         try:
             d2[15]
-        except KeyError, err:
+        except KeyError as err:
             self.assertEqual(err.args, (15,))
         else:
             self.fail("d2[15] didn't raise KeyError")
index 2968e3d7d0a8d2b4649fa64ac9b415295e79d5b5..96ff9f394023f1f90ede7b57e3ead158fba78cf7 100644 (file)
@@ -945,7 +945,7 @@ def mro_disagreement():
     def raises(exc, expected, callable, *args):
         try:
             callable(*args)
-        except exc, msg:
+        except exc as msg:
             if not str(msg).startswith(expected):
                 raise TestFailed, "Message %r, expected %r" % (str(msg),
                                                                expected)
@@ -1813,7 +1813,7 @@ def weakrefs():
     no = NoWeak()
     try:
         weakref.ref(no)
-    except TypeError, msg:
+    except TypeError as msg:
         verify(str(msg).find("weak reference") >= 0)
     else:
         verify(0, "weakref.ref(no) should be illegal")
@@ -1866,7 +1866,7 @@ def properties():
     for attr in "__doc__", "fget", "fset", "fdel":
         try:
             setattr(raw, attr, 42)
-        except TypeError, msg:
+        except TypeError as msg:
             if str(msg).find('readonly') < 0:
                 raise TestFailed("when setting readonly attr %r on a "
                                  "property, got unexpected TypeError "
@@ -2416,7 +2416,7 @@ f = t(%r, 'w')  # rexec can't catch this by itself
         for code in code1, code2, code3:
             try:
                 sandbox.r_exec(code)
-            except IOError, msg:
+            except IOError as msg:
                 if str(msg).find("restricted") >= 0:
                     outcome = "OK"
                 else:
@@ -3523,7 +3523,7 @@ def test_mutable_bases():
 
     try:
         D.__bases__ = ()
-    except TypeError, msg:
+    except TypeError as msg:
         if str(msg) == "a new-style class can't have only classic bases":
             raise TestFailed, "wrong error message for .__bases__ = ()"
     else:
index ff6ccde20488e4e161612410970d970548dbafa1..c7fa15da25ce464ddcaf1018a2795d34d4cd81b2 100644 (file)
@@ -414,7 +414,7 @@ class DictTest(unittest.TestCase):
         e = E()
         try:
             e[42]
-        except RuntimeError, err:
+        except RuntimeError as err:
             self.assertEqual(err.args, (42,))
         else:
             self.fail_("e[42] didn't raise RuntimeError")
@@ -425,7 +425,7 @@ class DictTest(unittest.TestCase):
         f = F()
         try:
             f[42]
-        except KeyError, err:
+        except KeyError as err:
             self.assertEqual(err.args, (42,))
         else:
             self.fail_("f[42] didn't raise KeyError")
@@ -434,7 +434,7 @@ class DictTest(unittest.TestCase):
         g = G()
         try:
             g[42]
-        except KeyError, err:
+        except KeyError as err:
             self.assertEqual(err.args, (42,))
         else:
             self.fail_("g[42] didn't raise KeyError")
@@ -444,7 +444,7 @@ class DictTest(unittest.TestCase):
         d = {}
         try:
             d[(1,)]
-        except KeyError, e:
+        except KeyError as e:
             self.assertEqual(e.args, ((1,),))
         else:
             self.fail("missing KeyError")
index b70a4cfee24b5440f0ff887ea6da7e746e6a60d7..9c704270704da6903ca6cf97562e72dd6fc8f451 100755 (executable)
@@ -18,7 +18,7 @@ for s, func in sharedlibs:
         if verbose:
             print 'trying to open:', s,
         l = dl.open(s)
-    except dl.error, err:
+    except dl.error as err:
         if verbose:
             print 'failed', repr(str(err))
         pass
index aae35182bd1811a5fa24143bd8ee8e84bf6e776c..1187d077fd934c97a1299219fe9ce28b84657a59 100644 (file)
@@ -11,7 +11,7 @@ class EOFTestCase(unittest.TestCase):
         try:
             eval("""'this is a test\
             """)
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(str(msg), expect)
         else:
             raise test_support.TestFailed
@@ -20,7 +20,7 @@ class EOFTestCase(unittest.TestCase):
         expect = "EOF while scanning triple-quoted string (<string>, line 1)"
         try:
             eval("""'''this is a test""")
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(str(msg), expect)
         else:
             raise test_support.TestFailed
index 7619aae3a27daf4f698a8142e87a2b4a69452226..4a6b8c5cff1f46aba993748c5a912c3ea1130415 100644 (file)
@@ -21,17 +21,17 @@ class ExceptionTests(unittest.TestCase):
         try:
             import exceptions
             reload(exceptions)
-        except ImportError, e:
+        except ImportError as e:
             self.fail("reloading exceptions: %s" % e)
 
     def raise_catch(self, exc, excname):
         try:
             raise exc, "spam"
-        except exc, err:
+        except exc as err:
             buf1 = str(err)
         try:
             raise exc("spam")
-        except exc, err:
+        except exc as err:
             buf2 = str(err)
         self.assertEquals(buf1, buf2)
         self.assertEquals(exc.__name__, excname)
@@ -115,7 +115,7 @@ class ExceptionTests(unittest.TestCase):
 
         self.raise_catch(Exception, "Exception")
         try: x = 1/0
-        except Exception, e: pass
+        except Exception as e: pass
 
     def testSyntaxErrorMessage(self):
         # make sure the right exception message is raised for each of
@@ -124,7 +124,7 @@ class ExceptionTests(unittest.TestCase):
         def ckmsg(src, msg):
             try:
                 compile(src, '<fragment>', 'exec')
-            except SyntaxError, e:
+            except SyntaxError as e:
                 if e.msg != msg:
                     self.fail("expected %s, got %s" % (msg, e.msg))
             else:
@@ -163,7 +163,7 @@ class ExceptionTests(unittest.TestCase):
             import _testcapi
             try:
                 _testcapi.raise_exception(BadException, 1)
-            except TypeError, err:
+            except TypeError as err:
                 exc, err, tb = sys.exc_info()
                 co = tb.tb_frame.f_code
                 self.assertEquals(co.co_name, "test_capi1")
@@ -175,7 +175,7 @@ class ExceptionTests(unittest.TestCase):
             import _testcapi
             try:
                 _testcapi.raise_exception(BadException, 0)
-            except RuntimeError, err:
+            except RuntimeError as err:
                 exc, err, tb = sys.exc_info()
                 co = tb.tb_frame.f_code
                 self.assertEquals(co.co_name, "__init__")
@@ -285,7 +285,7 @@ class ExceptionTests(unittest.TestCase):
         for exc, args, expected in exceptionList:
             try:
                 raise exc(*args)
-            except BaseException, e:
+            except BaseException as e:
                 if type(e) is not exc:
                     raise
                 # Verify module name
@@ -344,6 +344,16 @@ class ExceptionTests(unittest.TestCase):
         self.failUnless(str(Exception('a')))
         self.failUnless(unicode(Exception(u'a')))
 
+    def testExceptionCleanup(self):
+        # Make sure "except V as N" exceptions are cleaned up properly
+        
+        try:
+            raise Exception()
+        except Exception as e:
+            self.failUnless(e)
+            del e
+        self.failIf('e' in locals())
+
 
 def test_main():
     run_unittest(ExceptionTests)
index 284dbb2143a0e708a50127514eeb43af21417ac8..11cf43afb9732b8aeb39a6a36a2fb087762a7709 100644 (file)
@@ -35,21 +35,21 @@ else:
 
 try:
     g()
-except TypeError, err:
+except TypeError as err:
     print "TypeError:", err
 else:
     print "should raise TypeError: not enough arguments; expected 1, got 0"
 
 try:
     g(*())
-except TypeError, err:
+except TypeError as err:
     print "TypeError:", err
 else:
     print "should raise TypeError: not enough arguments; expected 1, got 0"
 
 try:
     g(*(), **{})
-except TypeError, err:
+except TypeError as err:
     print "TypeError:", err
 else:
     print "should raise TypeError: not enough arguments; expected 1, got 0"
@@ -61,7 +61,7 @@ g(1, 2, 3, *(4, 5))
 class Nothing: pass
 try:
     g(*Nothing())
-except TypeError, attr:
+except TypeError as attr:
     pass
 else:
     print "should raise TypeError"
@@ -71,7 +71,7 @@ class Nothing:
         return 5
 try:
     g(*Nothing())
-except TypeError, attr:
+except TypeError as attr:
     pass
 else:
     print "should raise TypeError"
@@ -93,7 +93,7 @@ class Nothing:
         return self
 try:
     g(*Nothing())
-except TypeError, attr:
+except TypeError as attr:
     pass
 else:
     print "should raise TypeError"
@@ -132,77 +132,77 @@ del kw['x']
 
 try:
     g(1, 2, 3, **{'x':4, 'y':5})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: keyword parameter redefined"
 
 try:
     g(1, 2, 3, a=4, b=5, *(6, 7), **{'a':8, 'b':9})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: keyword parameter redefined"
 
 try:
     f(**{1:2})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: keywords must be strings"
 
 try:
     h(**{'e': 2})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: unexpected keyword argument: e"
 
 try:
     h(*h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: * argument must be a tuple"
 
 try:
     dir(*h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: * argument must be a tuple"
 
 try:
     None(*h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: * argument must be a tuple"
 
 try:
     h(**h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: ** argument must be a dictionary"
 
 try:
     dir(**h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: ** argument must be a dictionary"
 
 try:
     None(**h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: ** argument must be a dictionary"
 
 try:
     dir(b=1,**{'b':1})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: dir() got multiple values for keyword argument 'b'"
@@ -226,13 +226,13 @@ print Foo.method(*(x, 1, 2))
 print Foo.method(x, *(1, 2))
 try:
     print Foo.method(*(1, 2, 3))
-except TypeError, err:
+except TypeError as err:
     pass
 else:
     print 'expected a TypeError for unbound method call'
 try:
     print Foo.method(1, *(2, 3))
-except TypeError, err:
+except TypeError as err:
     pass
 else:
     print 'expected a TypeError for unbound method call'
@@ -276,4 +276,4 @@ for name in ['za', 'zade', 'zabk', 'zabdv', 'zabdevk']:
             for k in kwargs: kwdict[k] = k + k
             print func.func_name, args, sortdict(kwdict), '->',
             try: func(*args, **kwdict)
-            except TypeError, err: print err
+            except TypeError as err: print err
index 234920d0733906d5017f1f5971c91ea91d2a2cd4..52c4a02fd6a891a9a00d32462d617c52996da2cb 100644 (file)
@@ -159,7 +159,7 @@ class OtherFileTests(unittest.TestCase):
         bad_mode = "qwerty"
         try:
             f = open(TESTFN, bad_mode)
-        except ValueError, msg:
+        except ValueError as msg:
             if msg[0] != 0:
                 s = str(msg)
                 if s.find(TESTFN) != -1 or s.find(bad_mode) == -1:
@@ -183,7 +183,7 @@ class OtherFileTests(unittest.TestCase):
                 d = int(f.read())
                 f.close()
                 f.close()
-            except IOError, msg:
+            except IOError as msg:
                 self.fail('error setting buffer size %d: %s' % (s, str(msg)))
             self.assertEquals(d, s)
 
index 8bf5d6e4a96d09564b7ad72cc6ce734868752d41..ace3bc96a250a67b998b040882916aaaa4778123 100644 (file)
@@ -199,7 +199,7 @@ if verbose:
 def test_exc(formatstr, args, exception, excmsg):
     try:
         testformat(formatstr, args)
-    except exception, exc:
+    except exception as exc:
         if str(exc) == excmsg:
             if verbose:
                 print "yes"
index 673799dc86823a6c9c28f63205bef10b83e73b6a..678b9a8d98fef170e219dfec3388ced7ccaf3a40 100644 (file)
@@ -12,17 +12,17 @@ import sys, os
 
 try:
     import __hello__
-except ImportError, x:
+except ImportError as x:
     raise TestFailed, "import __hello__ failed:" + str(x)
 
 try:
     import __phello__
-except ImportError, x:
+except ImportError as x:
     raise TestFailed, "import __phello__ failed:" + str(x)
 
 try:
     import __phello__.spam
-except ImportError, x:
+except ImportError as x:
     raise TestFailed, "import __phello__.spam failed:" + str(x)
 
 if sys.platform != "mac":  # On the Mac this import does succeed.
index 9a5f8298cc07ed26b70a61305f2a342a5a982fc9..1437489d9088e4287c45f18d9302b8729f094e39 100644 (file)
@@ -29,7 +29,7 @@ class FutureTest(unittest.TestCase):
     def test_badfuture3(self):
         try:
             from test import badsyntax_future3
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(get_error_location(msg), ("badsyntax_future3", '3'))
         else:
             self.fail("expected exception didn't occur")
@@ -37,7 +37,7 @@ class FutureTest(unittest.TestCase):
     def test_badfuture4(self):
         try:
             from test import badsyntax_future4
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(get_error_location(msg), ("badsyntax_future4", '3'))
         else:
             self.fail("expected exception didn't occur")
@@ -45,7 +45,7 @@ class FutureTest(unittest.TestCase):
     def test_badfuture5(self):
         try:
             from test import badsyntax_future5
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(get_error_location(msg), ("badsyntax_future5", '4'))
         else:
             self.fail("expected exception didn't occur")
@@ -53,7 +53,7 @@ class FutureTest(unittest.TestCase):
     def test_badfuture6(self):
         try:
             from test import badsyntax_future6
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(get_error_location(msg), ("badsyntax_future6", '3'))
         else:
             self.fail("expected exception didn't occur")
@@ -61,7 +61,7 @@ class FutureTest(unittest.TestCase):
     def test_badfuture7(self):
         try:
             from test import badsyntax_future7
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(get_error_location(msg), ("badsyntax_future7", '3'))
         else:
             self.fail("expected exception didn't occur")
@@ -69,7 +69,7 @@ class FutureTest(unittest.TestCase):
     def test_badfuture8(self):
         try:
             from test import badsyntax_future8
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(get_error_location(msg), ("badsyntax_future8", '3'))
         else:
             self.fail("expected exception didn't occur")
@@ -77,7 +77,7 @@ class FutureTest(unittest.TestCase):
     def test_badfuture9(self):
         try:
             from test import badsyntax_future9
-        except SyntaxError, msg:
+        except SyntaxError as msg:
             self.assertEqual(get_error_location(msg), ("badsyntax_future9", '3'))
         else:
             self.fail("expected exception didn't occur")
index 2ffd2f8f966826d69670f2d05600bde6990edcd2..30df034194f1dcf05f61f8c942fa919f1d32647b 100644 (file)
@@ -1554,7 +1554,7 @@ Now check some throw() conditions:
 ...     while True:
 ...         try:
 ...             print (yield)
-...         except ValueError,v:
+...         except ValueError as v:
 ...             print "caught ValueError (%s)" % (v),
 >>> import sys
 >>> g = f()
index 34c550e6ba553d62478159a35713d6f69616d9dc..0d36a62bab216d901ad48ba7f9569158ff861430 100644 (file)
@@ -554,7 +554,7 @@ hello world
         assert 1, lambda x:x+1
         try:
             assert 0, "msg"
-        except AssertionError, e:
+        except AssertionError as e:
             self.assertEquals(e.args[0], "msg")
         else:
             if __debug__:
@@ -612,7 +612,7 @@ hello world
     def testTry(self):
         ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite]
         ###         | 'try' ':' suite 'finally' ':' suite
-        ### except_clause: 'except' [expr [',' expr]]
+        ### except_clause: 'except' [expr ['as' expr]]
         try:
             1/0
         except ZeroDivisionError:
@@ -621,14 +621,14 @@ hello world
             pass
         try: 1/0
         except EOFError: pass
-        except TypeError, msg: pass
-        except RuntimeError, msg: pass
+        except TypeError as msg: pass
+        except RuntimeError as msg: pass
         except: pass
         else: pass
         try: 1/0
         except (EOFError, TypeError, ZeroDivisionError): pass
         try: 1/0
-        except (EOFError, TypeError, ZeroDivisionError), msg: pass
+        except (EOFError, TypeError, ZeroDivisionError) as msg: pass
         try: pass
         finally: pass
 
index 58de944b85aa810dff3301e0f1acdf099fd11021..f3d1d49cf3a798af2d7a07d86fb2cbcc237f3fa1 100644 (file)
@@ -55,7 +55,7 @@ class ImportTest(unittest.TestCase):
             try:
                 try:
                     mod = __import__(TESTFN)
-                except ImportError, err:
+                except ImportError as err:
                     self.fail("import from %s failed: %s" % (ext, err))
 
                 self.assertEquals(mod.a, a,
@@ -68,7 +68,7 @@ class ImportTest(unittest.TestCase):
             try:
                 try:
                     reload(mod)
-                except ImportError, err:
+                except ImportError as err:
                     self.fail("import from .pyc/.pyo failed: %s" % err)
             finally:
                 try:
index fe902b5a0319d2a6bdac3f69425dfc837d7ee2f8..05e404166246c1dc103cf7462f1f740fdfc37a02 100644 (file)
@@ -27,7 +27,7 @@ def play_sound_file(path):
 
     try:
         a = linuxaudiodev.open('w')
-    except linuxaudiodev.error, msg:
+    except linuxaudiodev.error as msg:
         if msg[0] in (errno.EACCES, errno.ENOENT, errno.ENODEV, errno.EBUSY):
             raise TestSkipped, msg
         raise TestFailed, msg
@@ -62,27 +62,27 @@ def test_errors():
     nchannels = 1
     try:
         a.setparameters(-1, size, nchannels, fmt)
-    except ValueError, msg:
+    except ValueError as msg:
         print msg
     try:
         a.setparameters(rate, -2, nchannels, fmt)
-    except ValueError, msg:
+    except ValueError as msg:
         print msg
     try:
         a.setparameters(rate, size, 3, fmt)
-    except ValueError, msg:
+    except ValueError as msg:
         print msg
     try:
         a.setparameters(rate, size, nchannels, 177)
-    except ValueError, msg:
+    except ValueError as msg:
         print msg
     try:
         a.setparameters(rate, size, nchannels, linuxaudiodev.AFMT_U16_LE)
-    except ValueError, msg:
+    except ValueError as msg:
         print msg
     try:
         a.setparameters(rate, 16, nchannels, fmt)
-    except ValueError, msg:
+    except ValueError as msg:
         print msg
 
 def test():
index 590868f0108d1955f690674e0a79283131978c9a..55dd32c7e013415e0a86f39415416ecbe57585e5 100644 (file)
@@ -6,7 +6,7 @@ class NisTests(unittest.TestCase):
     def test_maps(self):
         try:
             maps = nis.maps()
-        except nis.error, msg:
+        except nis.error as msg:
             # NIS is probably not active, so this test isn't useful
             if verbose:
                 self.fail("(failing because of verbose mode) %s" % msg)
index 1a2f5d6ce725007a8dccaf158e4fa1d926c0b39c..0ee51a83059aa82c311825e4708aa16debe25966 100644 (file)
@@ -47,12 +47,12 @@ class OpcodeTest(unittest.TestCase):
         b = BClass()
 
         try: raise AClass, b
-        except BClass, v:
+        except BClass as v:
             if v != b: self.fail("v!=b")
         else: self.fail("no exception")
 
         try: raise b
-        except AClass, v:
+        except AClass as v:
             if v != b: self.fail("v!=b AClass")
         else:
             self.fail("no exception")
@@ -63,7 +63,7 @@ class OpcodeTest(unittest.TestCase):
         ##else: self.fail("no exception")
 
         try:  raise DClass, a
-        except DClass, v:
+        except DClass as v:
             self.assert_(isinstance(v, DClass))
         else:
             self.fail("no exception")
index 4582fa7ae829064f1784d928381a766d576b12a5..1c4970f06b2f3ebdc6b50d7ec7e511972e1b23bc 100644 (file)
@@ -114,7 +114,7 @@ Args were %(args)s.""" % locals ())
 
         try:
             func(*args, **kwargs)
-        except expected_exception, err:
+        except expected_exception as err:
             actual_message = str(err)
             if isinstance(expected_message, retype):
                 self.assert_(expected_message.search(actual_message),
@@ -152,7 +152,7 @@ and kwargs %(kwargs)r
         """
         try:
             self.parser.parse_args(cmdline_args)
-        except InterceptedError, err:
+        except InterceptedError as err:
             self.assertEqual(err.error_message, expected_output)
         else:
             self.assertFalse("expected parse failure")
@@ -175,7 +175,7 @@ and kwargs %(kwargs)r
                 output = sys.stdout.getvalue()
                 sys.stdout = save_stdout
 
-        except InterceptedError, err:
+        except InterceptedError as err:
             self.assert_(
                 type(output) is types.StringType,
                 "expected output to be an ordinary string, not %r"
@@ -460,7 +460,7 @@ def _check_duration(option, opt, value):
             return int(value)
         else:
             return int(value[:-1]) * _time_units[value[-1]]
-    except ValueError, IndexError:
+    except ValueError as IndexError:
         raise OptionValueError(
             'option %s: invalid duration: %r' % (opt, value))
 
index 1c87d0601ddb04ec02709c9aa5cb6b0022ea9b4d..93e530c22c949187dfceba8d6eda773ce12921fd 100644 (file)
@@ -179,7 +179,7 @@ class StatAttributeTests(unittest.TestCase):
         import statvfs
         try:
             result = os.statvfs(self.fname)
-        except OSError, e:
+        except OSError as e:
             # On AtheOS, glibc always returns ENOSYS
             import errno
             if e.errno == errno.ENOSYS:
index 5868ea7f1e9804d3ebe81d57ea16a550797d682f..0377e9c4ea21ab69bb650cedb2877adb18195040 100644 (file)
@@ -48,7 +48,7 @@ def _assert(expr, message=None):
 def play_sound_file(data, rate, ssize, nchannels):
     try:
         dsp = ossaudiodev.open('w')
-    except IOError, msg:
+    except IOError as msg:
         if msg[0] in (errno.EACCES, errno.ENOENT, errno.ENODEV, errno.EBUSY):
             raise TestSkipped, msg
         raise TestFailed, msg
@@ -142,7 +142,7 @@ def test_bad_setparameters(dsp):
         try:
             result = dsp.setparameters(fmt, channels, rate, True)
             raise AssertionError("setparameters: expected OSSAudioError")
-        except ossaudiodev.OSSAudioError, err:
+        except ossaudiodev.OSSAudioError as err:
             print "setparameters: got OSSAudioError as expected"
 
 def test():
index 0bf12186a0f7de8f3ffff8aaf274278352220c18..36bc4e3be940f4e663711f3b14ae401f1495e557 100644 (file)
@@ -15,7 +15,7 @@ class RoundtripLegalSyntaxTestCase(unittest.TestCase):
         t = st1.totuple()
         try:
             st2 = parser.sequence2st(t)
-        except parser.ParserError, why:
+        except parser.ParserError as why:
             self.fail("could not roundtrip %r: %s" % (s, why))
 
         self.assertEquals(t, st2.totuple(),
index f3070893f60e818d4c50ffde530df26b5d5e1fbe..ff71bf2fbb269f7b5edc0cd8d6f3d98b58d52643 100644 (file)
@@ -50,7 +50,7 @@ class UnicodeFileTests(unittest.TestCase):
             fn(filename)
             raise test_support.TestFailed("Expected to fail calling '%s(%r)'"
                              % (fn.__name__, filename))
-        except expected_exception, details:
+        except expected_exception as details:
             if check_fn_in_exception and details.filename != filename:
                 raise test_support.TestFailed("Function '%s(%r) failed with "
                                  "bad filename in the exception: %r"
index 06988183ec1793656b2eaaa0f16fd0b062d8e9ef..73092c1ce2c53764cf6fa8b2b998e781aedb4a41 100644 (file)
@@ -177,7 +177,7 @@ expat.ParserCreate(namespace_separator=' ')
 print "Legal values tested o.k."
 try:
     expat.ParserCreate(namespace_separator=42)
-except TypeError, e:
+except TypeError as e:
     print "Caught expected TypeError:"
     print e
 else:
@@ -185,7 +185,7 @@ else:
 
 try:
     expat.ParserCreate(namespace_separator='too long')
-except ValueError, e:
+except ValueError as e:
     print "Caught expected ValueError:"
     print e
 else:
@@ -321,7 +321,7 @@ parser.StartElementHandler = StartElementHandler
 
 try:
     parser.Parse("<a><b><c/></b></a>", 1)
-except RuntimeError, e:
+except RuntimeError as e:
     if e.args[0] != "a":
         print "Expected RuntimeError for element 'a'; found %r" % e.args[0]
 else:
index 02f4dcab09150820ce4648c3c0058eda28b9f087..dafd82e98a92a9d634512b39e242cf9f114f0508 100644 (file)
@@ -633,7 +633,7 @@ def run_re_tests():
         else:
             try:
                 result = obj.search(s)
-            except re.error, msg:
+            except re.error as msg:
                 print '=== Unexpected exception', t, repr(msg)
             if outcome == SYNTAX_ERROR:
                 # This should have been a syntax error; forget it.
index 88e990098a31a79cf3fb59528c7ad566576eea9a..a37ee7b7cd8c095842010fc9ba4d9c4fb2b29218 100644 (file)
@@ -117,7 +117,7 @@ class RunModuleTest(unittest.TestCase):
             entry = parts[0]
             try:
                 del sys.modules[entry]
-            except KeyError, ex:
+            except KeyError as ex:
                 if verbose: print ex # Persist with cleaning up
         if verbose: print "  Removed sys.modules entries"
         del sys.path[0]
@@ -126,18 +126,18 @@ class RunModuleTest(unittest.TestCase):
             for name in files:
                 try:
                     os.remove(os.path.join(root, name))
-                except OSError, ex:
+                except OSError as ex:
                     if verbose: print ex # Persist with cleaning up
             for name in dirs:
                 fullname = os.path.join(root, name)
                 try:
                     os.rmdir(fullname)
-                except OSError, ex:
+                except OSError as ex:
                     if verbose: print ex # Persist with cleaning up
         try:
             os.rmdir(top)
             if verbose: print "  Removed package tree"
-        except OSError, ex:
+        except OSError as ex:
             if verbose: print ex # Persist with cleaning up
 
     def _check_module(self, depth):
index 83ffcf119aa31bf34cbede77d8bead832bf7a25d..d3939c06cf0e48f2671f160ddd761aec0331fb3d 100644 (file)
@@ -479,7 +479,7 @@ def test_expat_inpsource_location():
     source.setSystemId(name)
     try:
         parser.parse(source)
-    except SAXException, e:
+    except SAXException as e:
         return e.getSystemId() == name
 
 def test_expat_incomplete():
index 9bd0d436a410a61805b19adf55ed4e0ff394c822..0d08b79622946723c35418ebc1292aa3b57a1023 100644 (file)
@@ -332,7 +332,7 @@ class TestSet(TestJointOps):
         for v1 in ['Q', (1,)]:
             try:
                 self.s.remove(v1)
-            except KeyError, e:
+            except KeyError as e:
                 v2 = e.args[0]
                 self.assertEqual(v1, v2)
             else:
index df37f73bdada67cacac8ceb11bee8c1fe844dea6..e1412579d75431df33c3760122f1df5972ce432d 100644 (file)
@@ -129,7 +129,7 @@ class ThreadableTest:
             raise TypeError, "test_func must be a callable function"
         try:
             test_func()
-        except Exception, strerror:
+        except Exception as strerror:
             self.queue.put(strerror)
         self.clientTearDown()
 
index 3c9c9f03c0eb5ab4b73edb97c2efcaf071a199bc..5d308c5848f9710bf5cfa1f4813f2edc5e532ca8 100644 (file)
@@ -58,7 +58,7 @@ def test_timeout():
     except socket.timeout:
         error_msg('timed out')
         return
-    except socket.error, exc:  # In case connection is refused.
+    except socket.error as exc:  # In case connection is refused.
         if exc.args[0] == errno.ECONNREFUSED:
             error_msg('was refused')
             return
index e4cbb2b58888b4c8c7af7ef0d310d18fb497b280..202f2da2e745fef2dabfcf8d277bf83ccf7a5a5f 100644 (file)
@@ -155,7 +155,8 @@ class ForgivingTCPServer(TCPServer):
                 self.server_address = host, port
                 TCPServer.server_bind(self)
                 break
-            except socket.error, (err, msg):
+            except socket.error as e:
+                (err, msg) = e
                 if err != errno.EADDRINUSE:
                     raise
                 print >>sys.__stderr__, \
index e9d3826f40fca2b397a982c212c38407b5fb7b00..00fa227b621f99b248cf7189dca66ffcfdfe004d 100755 (executable)
@@ -119,7 +119,7 @@ def strftest(now):
     for e in expectations:
         try:
             result = time.strftime(e[0], now)
-        except ValueError, error:
+        except ValueError as error:
             print "Standard '%s' format gave error:" % e[0], error
             continue
         if re.match(escapestr(e[1], ampm), result): continue
@@ -132,7 +132,7 @@ def strftest(now):
     for e in nonstandard_expectations:
         try:
             result = time.strftime(e[0], now)
-        except ValueError, result:
+        except ValueError as result:
             if verbose:
                 print "Error for nonstandard '%s' format (%s): %s" % \
                       (e[0], e[2], str(result))
index fdd431d2496b4184822bb78be90b3aa7f70bc1cb..6d5e8e4690db8b6fd5d1564f35bb37b5bca87c05 100644 (file)
@@ -55,7 +55,7 @@ class StringTest(
             def f():
                 yield 4 + ""
             self.fixtype(' ').join(f())
-        except TypeError, e:
+        except TypeError as e:
             if '+' not in str(e):
                 self.fail('join() ate exception message')
         else:
index ba65649857ead0b028f7eb00dea10c822ed97c60..df94f7b5f6dac1a3ddc3dd6694f13b06eab90bda 100644 (file)
@@ -206,7 +206,7 @@ class StrptimeTests(unittest.TestCase):
                 _strptime.strptime("2005", bad_format)
             except ValueError:
                 continue
-            except Exception, err:
+            except Exception as err:
                 self.fail("'%s' raised %s, not ValueError" %
                             (bad_format, err.__class__.__name__))
             else:
index 64f8d40a40b34c58672f265df5ac4155ce0a70cc..fcc0f45fffd5742211f143838a19253fd5652dbd 100644 (file)
@@ -67,7 +67,7 @@ class ProcessTestCase(unittest.TestCase):
         try:
             subprocess.check_call([sys.executable, "-c",
                                    "import sys; sys.exit(47)"])
-        except subprocess.CalledProcessError, e:
+        except subprocess.CalledProcessError as e:
             self.assertEqual(e.returncode, 47)
         else:
             self.fail("Expected CalledProcessError")
@@ -475,7 +475,7 @@ class ProcessTestCase(unittest.TestCase):
             try:
                 p = subprocess.Popen([sys.executable, "-c", ""],
                                  cwd="/this/path/does/not/exist")
-            except OSError, e:
+            except OSError as e:
                 # The attribute child_traceback should contain "os.chdir"
                 # somewhere.
                 self.assertNotEqual(e.child_traceback.find("os.chdir"), -1)
index f203d9a304bf62554e2d39498004d6249dff56db..0427db5754b663088a6f49622df71282b5ecacce 100644 (file)
@@ -16,7 +16,7 @@ def play_sound_file(path):
     fp.close()
     try:
         a = sunaudiodev.open('w')
-    except sunaudiodev.error, msg:
+    except sunaudiodev.error as msg:
         raise TestFailed, msg
     else:
         a.write(data)
index 2c196984805a09fa2179e0894baaae5d9596d101..6115800569bf46a0cba383b5170deb7b7d33b8b9 100644 (file)
@@ -102,7 +102,8 @@ def bind_port(sock, host='', preferred_port=54321):
         try:
             sock.bind((host, port))
             return port
-        except socket.error, (err, msg):
+        except socket.error as e:
+            (err, msg) = e
             if err != errno.EADDRINUSE:
                 raise
             print >>sys.__stderr__, \
index a0eaac6d0cfc5286b97c5ff8b15944c211daa5a9..2c7315ddb4f584d3a8c45f82d9372d6453ddec16 100644 (file)
@@ -387,7 +387,7 @@ class SyntaxTestCase(unittest.TestCase):
         """
         try:
             compile(code, filename, mode)
-        except SyntaxError, err:
+        except SyntaxError as err:
             if subclass and not isinstance(err, subclass):
                 self.fail("SyntaxError is not a %s" % subclass.__name__)
             mo = re.search(errtext, str(err))
index fdeb5001a1a06541f1274db4e09e6366b43f8dc7..897c6b08d4affc82de9213bf3b3293a13a12bf02 100644 (file)
@@ -54,7 +54,7 @@ class SysModuleTest(unittest.TestCase):
         self.assertRaises(TypeError, eh)
         try:
             raise ValueError(42)
-        except ValueError, exc:
+        except ValueError as exc:
             eh(*sys.exc_info())
 
         sys.stderr = savestderr
@@ -84,7 +84,7 @@ class SysModuleTest(unittest.TestCase):
         def clear():
             try:
                 raise ValueError, 42
-            except ValueError, exc:
+            except ValueError as exc:
                 clear_check(exc)
 
         # Raise an exception and check that it can be cleared
@@ -94,7 +94,7 @@ class SysModuleTest(unittest.TestCase):
         # unaffected by calling exc_clear in a nested frame.
         try:
             raise ValueError, 13
-        except ValueError, exc:
+        except ValueError as exc:
             typ1, value1, traceback1 = sys.exc_info()
             clear()
             typ2, value2, traceback2 = sys.exc_info()
@@ -104,16 +104,13 @@ class SysModuleTest(unittest.TestCase):
             self.assert_(value1 is value2)
             self.assert_(traceback1 is traceback2)
 
-        # Check that an exception can be cleared outside of an except block
-        clear_check(exc)
-
     def test_exit(self):
         self.assertRaises(TypeError, sys.exit, 42, 42)
 
         # call without argument
         try:
             sys.exit(0)
-        except SystemExit, exc:
+        except SystemExit as exc:
             self.assertEquals(exc.code, 0)
         except:
             self.fail("wrong exception")
@@ -124,7 +121,7 @@ class SysModuleTest(unittest.TestCase):
         # entry will be unpacked
         try:
             sys.exit(42)
-        except SystemExit, exc:
+        except SystemExit as exc:
             self.assertEquals(exc.code, 42)
         except:
             self.fail("wrong exception")
@@ -134,7 +131,7 @@ class SysModuleTest(unittest.TestCase):
         # call with integer argument
         try:
             sys.exit((42,))
-        except SystemExit, exc:
+        except SystemExit as exc:
             self.assertEquals(exc.code, 42)
         except:
             self.fail("wrong exception")
@@ -144,7 +141,7 @@ class SysModuleTest(unittest.TestCase):
         # call with string argument
         try:
             sys.exit("exit")
-        except SystemExit, exc:
+        except SystemExit as exc:
             self.assertEquals(exc.code, "exit")
         except:
             self.fail("wrong exception")
@@ -154,7 +151,7 @@ class SysModuleTest(unittest.TestCase):
         # call with tuple argument with two entries
         try:
             sys.exit((17, 23))
-        except SystemExit, exc:
+        except SystemExit as exc:
             self.assertEquals(exc.code, (17, 23))
         except:
             self.fail("wrong exception")
index 2b39715e98b71f7201c8872b3dbfaada98d7a5ba..9ae913d358e8e8d4386c527b09ee2c5559242b2e 100644 (file)
@@ -545,7 +545,7 @@ class ExtractHardlinkTest(BaseTest):
         try:
             # Extract 1-LNKTYPE which is a hardlink to 0-REGTYPE
             self.tar.extract("1-LNKTYPE", dirname())
-        except EnvironmentError, e:
+        except EnvironmentError as e:
             import errno
             if e.errno == errno.ENOENT:
                 self.fail("hardlink not extracted properly")
index fa170ef58dd660de756afc47c38ea43a823a1782..4255d8afa3b1c252d668fccab85a17ae9c35fd51 100644 (file)
@@ -107,7 +107,7 @@ class TclTest(unittest.TestCase):
         filename = "doesnotexists"
         try:
             os.remove(filename)
-        except Exception,e:
+        except Exception as e:
             pass
         self.assertRaises(TclError,tcl.evalfile,filename)
 
index 08aec8e83e9833e4b8209c229ca8562e0093acc3..42d1a4a197b805b31df2ed4a16822209f63f7232 100644 (file)
@@ -97,7 +97,7 @@ def raises():
 def test_raise():
     try:
         raises()
-    except Exception, exc:
+    except Exception as exc:
         x = 1
 
 test_raise.events = [(0, 'call'),
@@ -127,7 +127,7 @@ def _settrace_and_raise(tracefunc):
 def settrace_and_raise(tracefunc):
     try:
         _settrace_and_raise(tracefunc)
-    except RuntimeError, exc:
+    except RuntimeError as exc:
         pass
 
 settrace_and_raise.events = [(2, 'exception'),
@@ -432,7 +432,7 @@ def no_jump_too_far_forwards(output):
     try:
         output.append(2)
         output.append(3)
-    except ValueError, e:
+    except ValueError as e:
         output.append('after' in str(e))
 
 no_jump_too_far_forwards.jump = (3, 6)
@@ -442,7 +442,7 @@ def no_jump_too_far_backwards(output):
     try:
         output.append(2)
         output.append(3)
-    except ValueError, e:
+    except ValueError as e:
         output.append('before' in str(e))
 
 no_jump_too_far_backwards.jump = (3, -1)
@@ -472,7 +472,7 @@ no_jump_to_except_2.output = [True]
 def no_jump_to_except_3(output):
     try:
         output.append(2)
-    except ValueError, e:
+    except ValueError as e:
         output.append('except' in str(e))
 
 no_jump_to_except_3.jump = (2, 3)
@@ -481,7 +481,7 @@ no_jump_to_except_3.output = [True]
 def no_jump_to_except_4(output):
     try:
         output.append(2)
-    except (ValueError, RuntimeError), e:
+    except (ValueError, RuntimeError) as e:
         output.append('except' in str(e))
 
 no_jump_to_except_4.jump = (2, 3)
@@ -492,7 +492,7 @@ def no_jump_forwards_into_block(output):
         output.append(2)
         for i in 1, 2:
             output.append(4)
-    except ValueError, e:
+    except ValueError as e:
         output.append('into' in str(e))
 
 no_jump_forwards_into_block.jump = (2, 4)
@@ -503,7 +503,7 @@ def no_jump_backwards_into_block(output):
         for i in 1, 2:
             output.append(3)
         output.append(4)
-    except ValueError, e:
+    except ValueError as e:
         output.append('into' in str(e))
 
 no_jump_backwards_into_block.jump = (4, 3)
@@ -516,7 +516,7 @@ def no_jump_into_finally_block(output):
             x = 1
         finally:
             output.append(6)
-    except ValueError, e:
+    except ValueError as e:
         output.append('finally' in str(e))
 
 no_jump_into_finally_block.jump = (4, 6)
@@ -529,7 +529,7 @@ def no_jump_out_of_finally_block(output):
         finally:
             output.append(5)
             output.append(6)
-    except ValueError, e:
+    except ValueError as e:
         output.append('finally' in str(e))
 
 no_jump_out_of_finally_block.jump = (5, 1)
@@ -539,7 +539,7 @@ no_jump_out_of_finally_block.output = [3, True]
 def no_jump_to_non_integers(output):
     try:
         output.append(2)
-    except ValueError, e:
+    except ValueError as e:
         output.append('integer' in str(e))
 
 no_jump_to_non_integers.jump = (2, "Spam")
@@ -551,7 +551,7 @@ def no_jump_without_trace_function():
     try:
         previous_frame = sys._getframe().f_back
         previous_frame.f_lineno = previous_frame.f_lineno
-    except ValueError, e:
+    except ValueError as e:
         # This is the exception we wanted; make sure the error message
         # talks about trace functions.
         if 'trace' not in str(e):
index 48c5d190e7a42ec8b9d4fb50e8b04237c5bb1485..5c8a4e48583a62d1ad738307af962ade665afadc 100644 (file)
@@ -12,7 +12,7 @@ class TracebackCases(unittest.TestCase):
     def get_exception_format(self, func, exc):
         try:
             func()
-        except exc, value:
+        except exc as value:
             return traceback.format_exception_only(exc, value)
         else:
             raise ValueError, "call did not raise exception"
index 00cf202b04fc79e05a97b44ee270a254aca856cd..50acff8342ef734604ae9af0ac1b597b360304be 100644 (file)
@@ -236,7 +236,7 @@ class OtherNetworkTests(unittest.TestCase):
             debug(url)
             try:
                 f = urllib2.urlopen(url, req)
-            except (IOError, socket.error, OSError), err:
+            except (IOError, socket.error, OSError) as err:
                 debug(err)
                 if expected_err:
                     msg = ("Didn't get expected error(s) %s for %s %s, got %s" %
index 447f434db0e2b9a84990efa10ee2fdd808e92fd7..25aa307abe84f6cca8a95c3072023d3a6ea217aa 100644 (file)
@@ -168,7 +168,7 @@ class UserDictTest(mapping_tests.TestHashMappingProtocol):
         e = E()
         try:
             e[42]
-        except RuntimeError, err:
+        except RuntimeError as err:
             self.assertEqual(err.args, (42,))
         else:
             self.fail_("e[42] didn't raise RuntimeError")
@@ -180,7 +180,7 @@ class UserDictTest(mapping_tests.TestHashMappingProtocol):
         f = F()
         try:
             f[42]
-        except KeyError, err:
+        except KeyError as err:
             self.assertEqual(err.args, (42,))
         else:
             self.fail_("f[42] didn't raise KeyError")
@@ -189,7 +189,7 @@ class UserDictTest(mapping_tests.TestHashMappingProtocol):
         g = G()
         try:
             g[42]
-        except KeyError, err:
+        except KeyError as err:
             self.assertEqual(err.args, (42,))
         else:
             self.fail_("g[42] didn't raise KeyError")
index 16a55e4959a62f86dcadebdc7318320ec9487a5e..712814823db6fa694c7242faab73a6f0626127a6 100644 (file)
@@ -50,7 +50,7 @@ class UUTest(unittest.TestCase):
         try:
             uu.decode(inp, out)
             self.fail("No exception thrown")
-        except uu.Error, e:
+        except uu.Error as e:
             self.assertEqual(str(e), "Truncated input file")
 
     def test_missingbegin(self):
@@ -59,7 +59,7 @@ class UUTest(unittest.TestCase):
         try:
             uu.decode(inp, out)
             self.fail("No exception thrown")
-        except uu.Error, e:
+        except uu.Error as e:
             self.assertEqual(str(e), "No valid begin line found in input file")
 
 class UUStdIOTest(unittest.TestCase):
index 5830fd64f5edf07eb3c64a2d2b96e98b74458868..81bd7601f6aae322fcb349cd8b0b60d107bd8e14 100644 (file)
@@ -142,7 +142,7 @@ except (IndexError, ValueError):
 if remote_name is not None:
     try:
         remote_key = ConnectRegistry(remote_name, HKEY_CURRENT_USER)
-    except EnvironmentError, exc:
+    except EnvironmentError as exc:
         print "Could not connect to the remote machine -", exc.strerror
         remote_key = None
     if remote_key is not None:
index 190b8c58e7134960fd0b151529afc4a9e549acc5..5dd3ca9249b52fcdd5acbf4c7885d8fe8378c864 100644 (file)
@@ -209,7 +209,7 @@ def main(args=None):
         opts, args = getopt.getopt(args, "n:s:r:tcvh",
                                    ["number=", "setup=", "repeat=",
                                     "time", "clock", "verbose", "help"])
-    except getopt.error, err:
+    except getopt.error as err:
         print err
         print "use -h/--help for command line help"
         return 2
index 3c8a02ba726136d59b0a98ac6269d32dbad0042f..438d225dd8d478974b8da439f22bd443043fc466 100644 (file)
@@ -87,7 +87,7 @@ def _toaiff(filename, temps):
         ftype = sndhdr.whathdr(fname)
         if ftype:
             ftype = ftype[0] # All we're interested in
-    except IOError, msg:
+    except IOError as msg:
         if type(msg) == type(()) and len(msg) == 2 and \
                 type(msg[0]) == type(0) and type(msg[1]) == type(''):
             msg = msg[1]
index 2770cfd6757e28015e5754c519415da888dbfd91..477827ac0aa552301619ac652e859d18866efbf9 100755 (executable)
@@ -93,7 +93,7 @@ def main():
         outFileName = args[1]
     try:
         fp = open(inFileName)
-    except IOError, err:
+    except IOError as err:
         sys.stdout.write("I/O error: %s\n" % str(err))
         sys.exit(1)
     lines = fp.read().split("\n")
@@ -113,7 +113,7 @@ def main():
     # load the output skeleton from the target:
     try:
         fp = open(outFileName)
-    except IOError, err:
+    except IOError as err:
         sys.stderr.write("I/O error: %s\n" % str(err))
         sys.exit(2)
     format = fp.read().split("\n")
@@ -130,7 +130,7 @@ def main():
     format[start:end] = lines
     try:
         fp = open(outFileName, 'w')
-    except IOError, err:
+    except IOError as err:
         sys.stderr.write("I/O error: %s\n" % str(err))
         sys.exit(4)
     fp.write("\n".join(format))
index c7ed0a58a732b478777707c4230659ee32cc6832..ca44eae9272c241a7b26b9a5f39d3737b30db2ea 100644 (file)
@@ -220,7 +220,7 @@ class CoverageResults:
                 counts, calledfuncs, callers = \
                         pickle.load(open(self.infile, 'rb'))
                 self.update(self.__class__(counts, calledfuncs, callers))
-            except (IOError, EOFError, ValueError), err:
+            except (IOError, EOFError, ValueError) as err:
                 print >> sys.stderr, ("Skipping counts file %r: %s"
                                       % (self.infile, err))
 
@@ -328,7 +328,7 @@ class CoverageResults:
             try:
                 pickle.dump((self.counts, self.calledfuncs, self.callers),
                             open(self.outfile, 'wb'), 1)
-            except IOError, err:
+            except IOError as err:
                 print >> sys.stderr, "Can't save counts files because %s" % err
 
     def write_results_file(self, path, lines, lnotab, lines_hit):
@@ -336,7 +336,7 @@ class CoverageResults:
 
         try:
             outfile = open(path, "w")
-        except IOError, err:
+        except IOError as err:
             print >> sys.stderr, ("trace: Could not open %r for writing: %s"
                                   "- skipping" % (path, err))
             return 0, 0
@@ -422,7 +422,7 @@ def find_executable_linenos(filename):
     """Return dict where keys are line numbers in the line number table."""
     try:
         prog = open(filename, "rU").read()
-    except IOError, err:
+    except IOError as err:
         print >> sys.stderr, ("Not printing coverage data for %r: %s"
                               % (filename, err))
         return {}
@@ -658,7 +658,7 @@ def main(argv=None):
                                          "coverdir=", "listfuncs",
                                          "trackcalls"])
 
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stderr.write("%s: %s\n" % (sys.argv[0], msg))
         sys.stderr.write("Try `%s --help' for more information\n"
                          % sys.argv[0])
@@ -778,7 +778,7 @@ def main(argv=None):
                   outfile=counts_file)
         try:
             t.run('execfile(%r)' % (progname,))
-        except IOError, err:
+        except IOError as err:
             _err_exit("Cannot run file %r because: %s" % (sys.argv[0], err))
         except SystemExit:
             pass
index b34b389b78dab75531e6d976a35da4211d50898e..9163e84cd56d2101fd4e19ebed192ed0a6ebadb7 100644 (file)
@@ -783,7 +783,7 @@ Examples:
             else:
                 self.testNames = (self.defaultTest,)
             self.createTests()
-        except getopt.error, msg:
+        except getopt.error as msg:
             self.usageExit(msg)
 
     def createTests(self):
index 27ec2c9d7ffdea82fd57714aaa63e1ca8c80ec39..aacc3739ffe1123c5f958ae559533b8e18b23eed 100644 (file)
@@ -190,7 +190,7 @@ class URLopener:
                 return getattr(self, name)(url)
             else:
                 return getattr(self, name)(url, data)
-        except socket.error, msg:
+        except socket.error as msg:
             raise IOError, ('socket error', msg), sys.exc_info()[2]
 
     def open_unknown(self, fullurl, data=None):
@@ -217,7 +217,7 @@ class URLopener:
                 hdrs = fp.info()
                 del fp
                 return url2pathname(splithost(url1)[1]), hdrs
-            except IOError, msg:
+            except IOError as msg:
                 pass
         fp = self.open(url, data)
         headers = fp.info()
@@ -461,7 +461,7 @@ class URLopener:
         localname = url2pathname(file)
         try:
             stats = os.stat(localname)
-        except OSError, e:
+        except OSError as e:
             raise IOError(e.errno, e.strerror, e.filename)
         size = stats.st_size
         modified = email.Utils.formatdate(stats.st_mtime, usegmt=True)
@@ -544,7 +544,7 @@ class URLopener:
                 headers += "Content-Length: %d\n" % retrlen
             headers = mimetools.Message(StringIO(headers))
             return addinfourl(fp, headers, "ftp:" + url)
-        except ftperrors(), msg:
+        except ftperrors() as msg:
             raise IOError, ('ftp error', msg), sys.exc_info()[2]
 
     def open_data(self, url, data=None):
@@ -861,7 +861,7 @@ class ftpwrapper:
             try:
                 cmd = 'RETR ' + file
                 conn = self.ftp.ntransfercmd(cmd)
-            except ftplib.error_perm, reason:
+            except ftplib.error_perm as reason:
                 if str(reason)[:3] != '550':
                     raise IOError, ('ftp error', reason), sys.exc_info()[2]
         if not conn:
@@ -1503,7 +1503,7 @@ def main():
     import getopt, sys
     try:
         opts, args = getopt.getopt(sys.argv[1:], "th")
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         print "Use -h for help"
         return
index a880e647a81d572a77527dc076bd730bff83bbb8..d14996ddfdcdda669e234c436f25b1d58796687e 100644 (file)
@@ -1072,7 +1072,7 @@ class AbstractHTTPHandler(BaseHandler):
         try:
             h.request(req.get_method(), req.get_selector(), req.data, headers)
             r = h.getresponse()
-        except socket.error, err: # XXX what error?
+        except socket.error as err: # XXX what error?
             raise URLError(err)
 
         # Pick apart the HTTPResponse object to get the addinfourl
@@ -1254,7 +1254,7 @@ class FTPHandler(BaseHandler):
 
         try:
             host = socket.gethostbyname(host)
-        except socket.error, msg:
+        except socket.error as msg:
             raise URLError(msg)
         path, attrs = splitattr(req.get_selector())
         dirs = path.split('/')
@@ -1280,7 +1280,7 @@ class FTPHandler(BaseHandler):
             sf = StringIO(headers)
             headers = mimetools.Message(sf)
             return addinfourl(fp, headers, req.get_full_url())
-        except ftplib.all_errors, msg:
+        except ftplib.all_errors as msg:
             raise IOError, ('ftp error', msg), sys.exc_info()[2]
 
     def connect_ftp(self, user, passwd, host, port, dirs):
index da89f7298d44f277e34a45e069d61d74b030b3de..887d99a35e0f9492cf5267c157d6a61e6900281a 100755 (executable)
--- a/Lib/uu.py
+++ b/Lib/uu.py
@@ -132,7 +132,7 @@ def decode(in_file, out_file=None, mode=None, quiet=0):
     while s and s.strip() != 'end':
         try:
             data = binascii.a2b_uu(s)
-        except binascii.Error, v:
+        except binascii.Error as v:
             # Workaround for broken uuencoders by /Fredrik Lundh
             nbytes = (((ord(s[0])-32) & 63) * 4 + 5) // 3
             data = binascii.a2b_uu(s[:nbytes])
index b7fac699766c41441f48c55c9a61c1facaee56e5..c0a96d6de49d742df5c9001bf433ac9e2e9197a5 100644 (file)
@@ -192,7 +192,7 @@ def _processoptions(args):
     for arg in args:
         try:
             _setoption(arg)
-        except _OptionError, msg:
+        except _OptionError as msg:
             print >>sys.stderr, "Invalid -W option ignored:", msg
 
 # Helper for _processoptions()
index 0d5f44f7b2bce251d7bf0af167d8e13d21104cd9..28e6bdebbea4389e1a454cc0d931f482068df7a0 100644 (file)
@@ -625,7 +625,7 @@ def main():
     -t: open new tab""" % sys.argv[0]
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'ntd')
-    except getopt.error, msg:
+    except getopt.error as msg:
         print >>sys.stderr, msg
         print >>sys.stderr, usage
         sys.exit(1)
index 796dfafd2fff6489c0e083edd38cbcebb32eaf8d..23e1ff2518b27294ab35e6bbe5ea29f090918e4e 100644 (file)
@@ -68,12 +68,12 @@ class Packer:
 
     def pack_float(self, x):
         try: self.__buf.write(struct.pack('>f', x))
-        except struct.error, msg:
+        except struct.error as msg:
             raise ConversionError, msg
 
     def pack_double(self, x):
         try: self.__buf.write(struct.pack('>d', x))
-        except struct.error, msg:
+        except struct.error as msg:
             raise ConversionError, msg
 
     def pack_fstring(self, n, s):
index d55ffb7d562718d213715fd8aec849e9b2d3c88e..242c689240196230c55dd71f531e2b55913f7cfe 100644 (file)
@@ -79,7 +79,7 @@ def make_parser(parser_list = []):
     for parser_name in parser_list + default_parser_list:
         try:
             return _create_parser(parser_name)
-        except ImportError,e:
+        except ImportError as e:
             import sys
             if parser_name in sys.modules:
                 # The parser module was found, but importing it
index bb9c294e5ed66ef54322dada145c774f4f0ae502..c4fb93040db8b94bd28816918411b2e1838b66fc 100644 (file)
@@ -205,7 +205,7 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator):
             # document. When feeding chunks, they are not normally final -
             # except when invoked from close.
             self._parser.Parse(data, isFinal)
-        except expat.error, e:
+        except expat.error as e:
             exc = SAXParseException(expat.ErrorString(e.code), e, self)
             # FIXME: when to invoke error()?
             self._err_handler.fatalError(exc)
index 2a189cdd8fe51f94d3ef94cf7cd28255cf1d1b5f..59fbcd189b8f0c09c610e3f10c330bdd1def3778 100644 (file)
@@ -896,7 +896,7 @@ def test(args = None):
     else:
         try:
             f = open(file, 'r')
-        except IOError, msg:
+        except IOError as msg:
             print file, ":", msg
             sys.exit(1)
 
@@ -914,7 +914,7 @@ def test(args = None):
             for c in data:
                 x.feed(c)
             x.close()
-    except Error, msg:
+    except Error as msg:
         t1 = time()
         print msg
         if do_time:
index da3d396aa0525af4982a392b83a29f2b51c54b4f..f584ad74b2b473f8f18a829b1353962ba8c41565 100644 (file)
@@ -1454,7 +1454,7 @@ if __name__ == "__main__":
 
     try:
         print server.currentTime.getCurrentTime()
-    except Error, v:
+    except Error as v:
         print "ERROR", v
 
     multi = MultiCall(server)
@@ -1463,5 +1463,5 @@ if __name__ == "__main__":
     try:
         for response in multi():
             print response
-    except Error, v:
+    except Error as v:
         print "ERROR", v
index 5c3fff3e74ed32c6e248f7b950415cfdb80b6452..0f3bccc3d8bb9539cd98e524a50865e080f2b0bb 100644 (file)
@@ -812,7 +812,7 @@ class PyZipFile(ZipFile):
                 print "Compiling", file_py
             try:
                 py_compile.compile(file_py, file_pyc, None, True)
-            except py_compile.PyCompileError,err:
+            except py_compile.PyCompileError as err:
                 print err.msg
             fname = file_pyc
         else:
index 8bdebe6806d0635a9f4109adfb25741276c641c6..034828b62d750c99e1ebaa95a6c9e816bfc73ab5 100755 (executable)
@@ -335,7 +335,7 @@ def parseOptions(args=None):
     try:
         options, args = getopt.getopt(args, '?hb',
                 [ 'build-dir=', 'third-party=', 'sdk-path=' , 'src-dir='])
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         sys.exit(1)
 
index 91210ee351a114a610baca7f37a593fb14312a67..013331cac60efb6a5734f6fb4bf4be904eddc2bf 100644 (file)
@@ -7,7 +7,7 @@ talker.activate()
 filespec = macfs.FSSpec('my disk image.img')
 try:
     objref = talker.create('my disk image', saving_as=filespec, leave_image_mounted=1)
-except Disk_Copy.Error, arg:
+except Disk_Copy.Error as arg:
     print "ERROR: my disk image:", arg
 else:
     print 'objref=', objref
index 28dffd376719f8e3fbaeb41a7780a16b994e2595..57cddd3eb4726ccd5f54b71b4929b940beee5e9b 100644 (file)
@@ -52,7 +52,7 @@ class imgbrowse(FrameWork.Application):
         bar = EasyDialogs.ProgressBar('Reading and converting...')
         try:
             rdr = img.reader(imgformat.macrgb16, pathname)
-        except img.error, arg:
+        except img.error as arg:
             EasyDialogs.Message(repr(arg))
             return
         w, h = rdr.width, rdr.height
index 323ea6249a6e5131043121d2f57182cc933b149a..f9ccd216eb66b1e3c570f15a33f28a17857577e8 100644 (file)
@@ -275,7 +275,7 @@ class Mlted(Application):
                 fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
                 data = fp.read()
                 fp.close()
-            except IOError, arg:
+            except IOError as arg:
                 EasyDialogs.Message("IOERROR: %r" % (arg,))
                 return
         else:
index cb1fa8e286918821d8cfe1144fde6473cfae03a0..da55b0648f2c03d5c48042b2ecab9e0ef8e38313 100644 (file)
@@ -39,7 +39,7 @@ def copyres(src, dst):
             UseResFile(output)
             try:
                 res2 = Get1Resource(type, id)
-            except (RuntimeError, Res.Error), msg:
+            except (RuntimeError, Res.Error) as msg:
                 res2 = None
             if res2:
                 print "Duplicate type+id, not copied"
index 3e91b32a6567a7ad0f61e4cd7173e29560096a16..8cd4713469d1d90ca5a3a84dc524249b329cb986 100644 (file)
@@ -273,7 +273,7 @@ class Ped(Application):
                 fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
                 data = fp.read()
                 fp.close()
-            except IOError, arg:
+            except IOError as arg:
                 EasyDialogs.Message("IOERROR: %r" % (arg,))
                 return
         else:
index e71ebc1261f0731715adc60535752c32f5a3175d..9ddcd0b2bddc424458bbb930f147e2a5cc88808c 100644 (file)
@@ -31,7 +31,7 @@ if not sys.executable.startswith(sys.exec_prefix):
 def main():
     try:
         buildapplet()
-    except buildtools.BuildError, detail:
+    except buildtools.BuildError as detail:
         EasyDialogs.Message(detail)
 
 
index e6dc4748bb3472a0f21b862b1cd225bbc7a9e7f4..e50c4058aad0bf4ed7cdb80d8a04e6305446a12b 100644 (file)
@@ -451,7 +451,7 @@ def main():
 
     try:
         opts, args = getopt.getopt(sys.argv[1:], shortOpts, longOpts)
-    except getopt.GetoptError, details:
+    except getopt.GetoptError as details:
         print details
         printUsage()
         return
index 991e608fa50c0a230f0c1a96bc376d06c33d9a65..556ddc5f6cf34ba165144fd4464989e175fff3c0 100644 (file)
@@ -127,7 +127,7 @@ class PyBuildExt(build_ext):
 
         try:
             build_ext.build_extension(self, ext)
-        except (CCompilerError, DistutilsError), why:
+        except (CCompilerError, DistutilsError) as why:
             self.announce('WARNING: building of extension "%s" failed: %s' %
                           (ext.name, sys.exc_info()[1]))
 
index d474a9ab9d426f31c4d7a69fc9ce51b099f7d921..d159b6bf065cebe3a4a5e78b267cd9f771e604d9 100644 (file)
@@ -2110,8 +2110,8 @@ validate_except_clause(node *tree)
     if (res && (nch > 1))
         res = validate_test(CHILD(tree, 1));
     if (res && (nch == 4))
-        res = (validate_comma(CHILD(tree, 2))
-               && validate_test(CHILD(tree, 3)));
+        res = (validate_name(CHILD(tree, 2), "as")
+               && validate_ntype(CHILD(tree, 3), NAME));
 
     return (res);
 }
index d2374a93f5b558b0de67d64c9f70ced45626c425..481cc858861255b42b659200b50078954cc55f7d 100644 (file)
@@ -1955,13 +1955,66 @@ compiler_try_except(struct compiler *c, stmt_ty s)
                }
                ADDOP(c, POP_TOP);
                if (handler->name) {
+            basicblock *cleanup_end, *cleanup_body;
+            expr_context_ty orig_ctx;
+            
+            assert(handler->name->kind == Name_kind);
+
+            cleanup_end = compiler_new_block(c);
+            cleanup_body = compiler_new_block(c);
+            if(!(cleanup_end || cleanup_body))
+                return 0;
+
                        VISIT(c, expr, handler->name);
+            ADDOP(c, POP_TOP);
+
+            /*
+                try:
+                    # body
+                except type as name:
+                    try:
+                        # body
+                    finally:
+                        name = None
+                        del name
+            */
+
+            /* second try: */
+            ADDOP_JREL(c, SETUP_FINALLY, cleanup_end);
+               compiler_use_next_block(c, cleanup_body);
+               if (!compiler_push_fblock(c, FINALLY_TRY, cleanup_body))
+                       return 0;
+
+            /* second # body */
+               VISIT_SEQ(c, stmt, handler->body);
+               ADDOP(c, POP_BLOCK);
+               compiler_pop_fblock(c, FINALLY_TRY, cleanup_body);
+
+            /* finally: */
+               ADDOP_O(c, LOAD_CONST, Py_None, consts);
+               compiler_use_next_block(c, cleanup_end);
+               if (!compiler_push_fblock(c, FINALLY_END, cleanup_end))
+                       return 0;
+
+            /* name = None */
+            ADDOP_O(c, LOAD_CONST, Py_None, consts);
+            orig_ctx = handler->name->v.Name.ctx;
+            handler->name->v.Name.ctx = Store;
+            VISIT(c, expr, handler->name);
+
+            /* del name */            
+            handler->name->v.Name.ctx = Del;
+            VISIT(c, expr, handler->name);
+            handler->name->v.Name.ctx = orig_ctx;
+
+               ADDOP(c, END_FINALLY);
+               compiler_pop_fblock(c, FINALLY_END, cleanup_end);
                }
                else {
-                       ADDOP(c, POP_TOP);
+            ADDOP(c, POP_TOP);
+            ADDOP(c, POP_TOP);
+                   VISIT_SEQ(c, stmt, handler->body);
                }
-               ADDOP(c, POP_TOP);
-               VISIT_SEQ(c, stmt, handler->body);
                ADDOP_JREL(c, JUMP_FORWARD, end);
                compiler_use_next_block(c, except);
                if (handler->type)
index 93ee69a87ede19efad096e3a65547b1e7398804c..3f0224045e60e3803b49ffb574ae275af89ed98b 100644 (file)
@@ -1049,7 +1049,7 @@ static arc arcs_46_1[2] = {
        {0, 1},
 };
 static arc arcs_46_2[2] = {
-       {28, 3},
+       {83, 3},
        {0, 2},
 };
 static arc arcs_46_3[1] = {
index b817c5cc05fca7c53652cd50e01e5c2ad7d8f3e7..869d87ada6da762cff71ad7b186cf2790d2e54ce 100755 (executable)
@@ -309,7 +309,7 @@ Email:   bwarsaw@python.org''' % __version__)
         info.o_gain = self.__scalevar.get()
         try:
             self.__devctl.setinfo(info)
-        except sunaudiodev.error, msg:
+        except sunaudiodev.error as msg:
             # TBD: what to do?  it's probably temporary.
             pass
 
@@ -496,7 +496,8 @@ Version: %s''' % __version__
     # now set the values
     try:
         device.setinfo(info)
-    except sunaudiodev.error, (code, msg):
+    except sunaudiodev.error as e:
+        (code, msg) = e
         if code <> errno.EINVAL:
             raise
     device.close()
index d809a65f242536d8bdae428676ca689d526b2912..bae29a0a1c0f7f64e4b3b7cc1fb2ca998252d1a1 100644 (file)
@@ -293,7 +293,7 @@ if missing: raise "Missing Types"
     def openrepairfile(self, filename = "REPAIR"):
         try:
             return open(filename, "rU")
-        except IOError, msg:
+        except IOError as msg:
             print repr(filename), ":", msg
             print "Cannot open repair file -- assume no repair needed"
             return None
@@ -419,7 +419,7 @@ if missing: raise "Missing Types"
     def openoutput(self, filename):
         try:
             file = open(filename, 'w')
-        except IOError, arg:
+        except IOError as arg:
             raise IOError, (filename, arg)
         self.setfiletype(filename)
         return file
@@ -460,7 +460,7 @@ if missing: raise "Missing Types"
         # If not on the path, or absolute, try default open()
         try:
             return open(filename, 'rU')
-        except IOError, arg:
+        except IOError as arg:
             raise IOError, (arg, filename)
 
     def getline(self):
index 9d50425d38d9a56bd78e7203b94780deec8c48b5..51a9f0c19dcb021ee19b5e929c9dd9b962283ff3 100644 (file)
@@ -40,7 +40,7 @@ def main():
                 else:
                     compileFile(filename, DISPLAY)
 
-            except SyntaxError, err:
+            except SyntaxError as err:
                 print err
                 if err.lineno is not None:
                     print err.lineno
index 4244d62c04eddea42f54d0b2daab8371c386bdb3..d86d7460550e24d509edaa560375effa091d784f 100644 (file)
@@ -42,7 +42,7 @@ def compile_files(dir):
             print file,
             try:
                 compileFile(source)
-            except SyntaxError, err:
+            except SyntaxError as err:
                 print err
                 continue
             # make sure the .pyc file is not over-written
index a26e0d60eedab3496f0cbc2264a865070d7db6dc..06db125ad30dd97db1610f7aaea8360e73cce160 100755 (executable)
@@ -24,7 +24,7 @@ try:
     os.chdir(FAQDIR)
     sys.path.insert(0, SRCDIR)
     import faqwiz
-except SystemExit, n:
+except SystemExit as n:
     sys.exit(n)
 except:
     t, v, tb = sys.exc_info()
index bdd270c380142c80aef073673923333e01365392..d8b8cd55591522dc7bf16d83b45cd10f6528118f 100644 (file)
@@ -348,7 +348,7 @@ class FaqDir:
             raise InvalidFile(file)
         try:
             fp = open(file)
-        except IOError, msg:
+        except IOError as msg:
             raise NoSuchFile(file, msg)
         try:
             return self.entryclass(fp, file, sec_num)
@@ -387,11 +387,11 @@ class FaqWizard:
         else:
             try:
                 meth()
-            except InvalidFile, exc:
+            except InvalidFile as exc:
                 self.error("Invalid entry file name %s" % exc.file)
-            except NoSuchFile, exc:
+            except NoSuchFile as exc:
                 self.error("No entry with file name %s" % exc.file)
-            except NoSuchSection, exc:
+            except NoSuchSection as exc:
                 self.error("No section number %s" % exc.section)
         self.epilogue()
 
@@ -796,7 +796,7 @@ class FaqWizard:
             pass
         try:
             f = open(file, 'w')
-        except IOError, why:
+        except IOError as why:
             self.error(CANTWRITE, file=file, why=why)
             return
         date = time.ctime(now)
index a198ecf39b9d112b1110e8bbf18b61473513ffc3..ba3853c0be59f6847618fd9f03db74deef245a00 100644 (file)
@@ -131,7 +131,7 @@ def parse_dsp(dsp):
     dsp_path, dsp_name = os.path.split(dsp)
     try:
         lines = open(dsp, "r").readlines()
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write("%s: %s\n" % (dsp, msg))
         return None
     for line in lines:
index 3e6a5802312178d77c72dbc399c34e16f792e551..786d53a6851006bccfa43232966f44e38f0c4060 100755 (executable)
@@ -145,7 +145,7 @@ def main():
         if sys.argv[pos] == '-i':
             try:
                 options = open(sys.argv[pos+1]).read().split()
-            except IOError, why:
+            except IOError as why:
                 usage("File name '%s' specified with the -i option "
                       "can not be read - %s" % (sys.argv[pos+1], why) )
             # Replace the '-i' and the filename with the read params.
@@ -156,7 +156,7 @@ def main():
     # Now parse the command line with the extras inserted.
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'r:a:dEe:hmo:p:P:qs:wX:x:l:')
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage('getopt error: ' + str(msg))
 
     # proces option arguments
@@ -311,7 +311,7 @@ def main():
         try:
             os.mkdir(odir)
             print "Created output directory", odir
-        except os.error, msg:
+        except os.error as msg:
             usage('%s: mkdir failed (%s)' % (odir, str(msg)))
     base = ''
     if odir:
@@ -333,7 +333,7 @@ def main():
         try:
             custom_entry_point, python_entry_is_main = \
                 winmakemakefile.get_custom_entry_point(subsystem)
-        except ValueError, why:
+        except ValueError as why:
             usage(why)
 
 
index 64331313cd6da95649018a8b037648650670bc81..353be8b9c6936cd22b5329954b27fb2cdb699f8b 100755 (executable)
@@ -110,7 +110,7 @@ def make(filename, outfile):
 
     try:
         lines = open(infile).readlines()
-    except IOError, msg:
+    except IOError as msg:
         print >> sys.stderr, msg
         sys.exit(1)
 
@@ -167,7 +167,7 @@ def make(filename, outfile):
 
     try:
         open(outfile,"wb").write(output)
-    except IOError,msg:
+    except IOError as msg:
         print >> sys.stderr, msg
 
 
@@ -176,7 +176,7 @@ def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'hVo:',
                                    ['help', 'version', 'output-file='])
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(1, msg)
 
     outfile = None
index eadd149ea47d7f8a15022cf2730225b8c40a3477..24f1ce1541f8c49478062321288eeab269a509ff 100755 (executable)
@@ -512,7 +512,7 @@ def main():
              'style=', 'verbose', 'version', 'width=', 'exclude-file=',
              'docstrings', 'no-docstrings',
              ])
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(1, msg)
 
     # for holding option values
@@ -635,7 +635,7 @@ def main():
             eater.set_filename(filename)
             try:
                 tokenize.tokenize(fp.readline, eater)
-            except tokenize.TokenError, e:
+            except tokenize.TokenError as e:
                 print >> sys.stderr, '%s: %s, line %d, column %d' % (
                     e[0], filename, e[1][0], e[1][1])
         finally:
index 6601be5fb5186f6619e9c97450328528c9108b86..ddf958d86ad1e758b727c9a1c32efaf752c798b2 100644 (file)
@@ -347,7 +347,7 @@ class Application:
             if rc is None:
                 rc = 0
 
-        except SystemExit,rc:
+        except SystemExit as rc:
             pass
 
         except KeyboardInterrupt:
@@ -433,7 +433,7 @@ class Application:
                 files = l
             self.optionlist = optlist
             self.files = files + self.files
-        except getopt.error,why:
+        except getopt.error as why:
             self.help(why)
             sys.exit(1)
 
index 392ff50fe2b7b8af40388969770bb71d2890de22..e0ff732471b77fb1fcd28b7b900d4c37f009a4f2 100755 (executable)
@@ -865,7 +865,7 @@ python pybench.py -s p25.pybench -c p21.pybench
                 bench.name = compare_to
                 f.close()
                 compare_to = bench
-            except IOError, reason:
+            except IOError as reason:
                 print '* Error opening/reading file %s: %s' % (
                     repr(compare_to),
                     reason)
@@ -885,7 +885,7 @@ python pybench.py -s p25.pybench -c p21.pybench
                 else:
                     bench.print_benchmark(hidenoise=hidenoise,
                                           limitnames=limitnames)
-            except IOError, reason:
+            except IOError as reason:
                 print '* Error opening/reading file %s: %s' % (
                     repr(show_bench),
                     reason)
@@ -931,9 +931,9 @@ python pybench.py -s p25.pybench -c p21.pybench
                 bench.name = reportfile
                 pickle.dump(bench,f)
                 f.close()
-            except IOError, reason:
+            except IOError as reason:
                 print '* Error opening/writing reportfile'
-            except IOError, reason:
+            except IOError as reason:
                 print '* Error opening/writing reportfile %s: %s' % (
                     reportfile,
                     reason)
index 1fa3f175c8a374856deeb2b10379300cd1e8b0d9..a0a2d81a319f9eda5f0d8e21cfe83cb0823a59aa 100644 (file)
@@ -186,7 +186,7 @@ def main():
             sys.argv[1:],
             'hd:i:Xv',
             ['database=', 'initfile=', 'ignore', 'help', 'version'])
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(1, msg)
 
     if len(args) == 0:
index 09610b00b9574cd7bbc5751b8134c4cbe9145971..998b4c0f721aab12dfda91c6e1de962af2274b8c 100755 (executable)
@@ -24,7 +24,7 @@ class Stats:
         self.addstats("<dir>", "dirs", 1)
         try:
             names = os.listdir(dir)
-        except os.error, err:
+        except os.error as err:
             sys.stderr.write("Can't list %s: %s\n" % (dir, err))
             self.addstats("<dir>", "unlistable", 1)
             return
@@ -53,7 +53,7 @@ class Stats:
         self.addstats(ext, "files", 1)
         try:
             f = open(filename, "rb")
-        except IOError, err:
+        except IOError as err:
             sys.stderr.write("Can't open %s: %s\n" % (filename, err))
             self.addstats(ext, "unopenable", 1)
             return
index ba38cafd171717955c86ebbed7105a28c7c7694a..b4d43356b953506d847901e9c8130caf00cbfd50 100755 (executable)
@@ -43,7 +43,7 @@ def main():
     for filename in sys.argv[1:]:
         try:
             st = statfunc(filename)
-        except os.error, msg:
+        except os.error as msg:
             sys.stderr.write("can't stat %r: %r\n" % (filename, msg))
             status = 1
             st = ()
index a8714d9368a6fba4d8bbda4fd9a1c0efdb36fce1..2025ba90bfa8142d6e5812d6b2f96cb4c018006c 100755 (executable)
@@ -50,7 +50,7 @@ def main():
     global verbose
     try:
         opts, args = getopt.getopt(sys.argv[1:], "v")
-    except getopt.error, msg:
+    except getopt.error as msg:
         errprint(str(msg) + "\n\n" + __doc__)
         return
     for opt, optarg in opts:
@@ -77,7 +77,7 @@ def check(file):
 
     try:
         f = open(file)
-    except IOError, msg:
+    except IOError as msg:
         errprint("%r: I/O Error: %s" % (file, msg))
         return
 
@@ -104,7 +104,7 @@ class AppendChecker:
     def run(self):
         try:
             tokenize.tokenize(self.file.readline, self.tokeneater)
-        except tokenize.TokenError, msg:
+        except tokenize.TokenError as msg:
             errprint("%r: Token Error: %s" % (self.fname, msg))
             self.nerrors = self.nerrors + 1
         return self.nerrors == 0
index d30700fbf8d1e6ce69663d52f2e1cc74197d8942..f65e63035eae9be78eb9daf547b166c3b3b1705f 100755 (executable)
@@ -62,7 +62,7 @@ def recursedown(dirname):
     bad = 0
     try:
         names = os.listdir(dirname)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: cannot list directory: %r\n' % (dirname, msg))
         return 1
     names.sort()
@@ -83,7 +83,7 @@ def fix(filename):
 ##  dbg('fix(%r)\n' % (filename,))
     try:
         f = open(filename, 'r')
-    except IOError, msg:
+    except IOError as msg:
         err('%s: cannot open: %r\n' % (filename, msg))
         return 1
     head, tail = os.path.split(filename)
@@ -106,7 +106,7 @@ def fix(filename):
             if g is None:
                 try:
                     g = open(tempname, 'w')
-                except IOError, msg:
+                except IOError as msg:
                     f.close()
                     err('%s: cannot create: %r\n' % (tempname, msg))
                     return 1
@@ -130,17 +130,17 @@ def fix(filename):
     try:
         statbuf = os.stat(filename)
         os.chmod(tempname, statbuf[ST_MODE] & 07777)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: warning: chmod failed (%r)\n' % (tempname, msg))
     # Then make a backup of the original file as filename~
     try:
         os.rename(filename, filename + '~')
-    except os.error, msg:
+    except os.error as msg:
         err('%s: warning: backup failed (%r)\n' % (filename, msg))
     # Now move the temp file to the original file
     try:
         os.rename(tempname, filename)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: rename failed (%r)\n' % (filename, msg))
         return 1
     # Return succes
index 3f2da3a9869cc0f445b21efcd4f29575b4731d82..0e90cd3d22e01f4102164668eedc511855f468ef 100644 (file)
@@ -59,7 +59,7 @@ def main():
     global verbose, recurse, dryrun
     try:
         opts, args = getopt.getopt(sys.argv[1:], "drv")
-    except getopt.error, msg:
+    except getopt.error as msg:
         errprint(msg)
         return
     for o, a in opts:
@@ -92,7 +92,7 @@ def check(file):
         print "checking", file, "...",
     try:
         f = open(file)
-    except IOError, msg:
+    except IOError as msg:
         errprint("%r: I/O Error: %s" % (file, str(msg)))
         return
 
index 53b42943ce85c9128f88c26cef860a959d6f20e3..eac59455b28b3991c8550e01730f7c9c266eea36 100755 (executable)
@@ -20,7 +20,7 @@ cutofftime = 0
 def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:], "n:")
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         print __doc__,
         return 1
index d938ae153e29669a7e437c591392a334791c107c..c9f6ea8c288fe3d8545f9a9c8ec292fe99ab8b09 100755 (executable)
@@ -18,7 +18,7 @@ def main():
         total, d = store(size, comps, total, d)
     try:
         display(total, d)
-    except IOError, e:
+    except IOError as e:
         if e.errno != errno.EPIPE:
             raise
 
index 97f63316c774acfbb5372dfbcccc1344c3b5217b..8fdc52b070c8e266f2243d2c64e3fb1efc38ae23 100755 (executable)
@@ -23,7 +23,7 @@ import tokenize
 def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:], "lh")
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(msg)
         return 2
     if not args:
@@ -52,7 +52,7 @@ def process(filename, listnames):
         return processdir(filename, listnames)
     try:
         fp = open(filename)
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write("Can't open: %s\n" % msg)
         return 1
     g = tokenize.generate_tokens(fp.readline)
@@ -70,7 +70,7 @@ def process(filename, listnames):
 def processdir(dir, listnames):
     try:
         names = os.listdir(dir)
-    except os.error, msg:
+    except os.error as msg:
         sys.stderr.write("Can't list directory: %s\n" % dir)
         return 1
     files = []
index 8dd4bfb3cb83491b42c4d8b5f73ad2b5ce9f8914..f23316d573bbe94e03bce570e226e32b1ff373bb 100755 (executable)
@@ -14,7 +14,7 @@ def main():
         opts, args = getopt.getopt(sys.argv[1:], '')
         if len(args) < 2:
             raise getopt.GetoptError('not enough arguments', None)
-    except getopt.GetoptError, msg:
+    except getopt.GetoptError as msg:
         sys.stdout = sys.stderr
         print msg
         print 'usage: findlinksto pattern directory ...'
index 537f0a18534c3de0b121cde61e645959f2c81fc7..28a299aaa00b7b914b75cc03490309ed63d22504 100755 (executable)
@@ -78,7 +78,7 @@ usage = """Usage: %s [-cd] paths...
 
 try:
     opts, args = getopt.getopt(sys.argv[1:], 'cd')
-except getopt.error, msg:
+except getopt.error as msg:
     print >>sys.stderr, msg
     print >>sys.stderr, usage
     sys.exit(1)
index 433a4254e4273b8bd8d2548371cefa4202c2d2ba..29e0e1030cf74f6f47454b137d44b0429dfc1b47 100755 (executable)
@@ -62,7 +62,7 @@ def usage():
 def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'crs:')
-    except getopt.error, msg:
+    except getopt.error as msg:
         err('Options error: ' + str(msg) + '\n')
         usage()
         sys.exit(2)
@@ -97,7 +97,7 @@ def recursedown(dirname):
     bad = 0
     try:
         names = os.listdir(dirname)
-    except os.error, msg:
+    except os.error as msg:
         err(dirname + ': cannot list directory: ' + str(msg) + '\n')
         return 1
     names.sort()
@@ -124,7 +124,7 @@ def fix(filename):
         # File replacement mode
         try:
             f = open(filename, 'r')
-        except IOError, msg:
+        except IOError as msg:
             err(filename + ': cannot open: ' + str(msg) + '\n')
             return 1
         head, tail = os.path.split(filename)
@@ -148,7 +148,7 @@ def fix(filename):
             if g is None:
                 try:
                     g = open(tempname, 'w')
-                except IOError, msg:
+                except IOError as msg:
                     f.close()
                     err(tempname+': cannot create: '+
                         str(msg)+'\n')
@@ -175,17 +175,17 @@ def fix(filename):
     try:
         statbuf = os.stat(filename)
         os.chmod(tempname, statbuf[ST_MODE] & 07777)
-    except os.error, msg:
+    except os.error as msg:
         err(tempname + ': warning: chmod failed (' + str(msg) + ')\n')
     # Then make a backup of the original file as filename~
     try:
         os.rename(filename, filename + '~')
-    except os.error, msg:
+    except os.error as msg:
         err(filename + ': warning: backup failed (' + str(msg) + ')\n')
     # Now move the temp file to the original file
     try:
         os.rename(tempname, filename)
-    except os.error, msg:
+    except os.error as msg:
         err(filename + ': rename failed (' + str(msg) + ')\n')
         return 1
     # Return succes
@@ -276,7 +276,7 @@ NotInComment = {}
 def addsubst(substfile):
     try:
         fp = open(substfile, 'r')
-    except IOError, msg:
+    except IOError as msg:
         err(substfile + ': cannot read substfile: ' + str(msg) + '\n')
         sys.exit(1)
     lineno = 0
index b2cab888a6676c5e981c5024b0bdbeb8514f9dc4..98b8a817c91a3c4cd1ed4055a2fce7cf650cbc53 100755 (executable)
@@ -140,7 +140,7 @@ multi_ok = 0
 def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:], "hm")
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(msg)
         return 2
     for o, a in opts:
@@ -181,7 +181,7 @@ def readwarnings(warningsfile):
     prog = re.compile(PATTERN)
     try:
         f = open(warningsfile)
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write("can't open: %s\n" % msg)
         return
     warnings = {}
@@ -207,7 +207,7 @@ def process(filename, list):
     assert list # if this fails, readwarnings() is broken
     try:
         fp = open(filename)
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write("can't open: %s\n" % msg)
         return 1
     print "Index:", filename
index 1bf5c526b8fc701cf78560f7a7d058e2d4f65ce9..8e8ac59cd8f1a0283e86be3694976020c37e20cd 100755 (executable)
@@ -12,7 +12,7 @@ def main():
 def process(filename):
     try:
         f = open(filename, 'r')
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write('%s: can\'t open: %s\n' % (filename, str(msg)))
         return
     data = f.read()
@@ -22,7 +22,7 @@ def process(filename):
         return
     try:
         f = open(filename, 'w')
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write('%s: can\'t write: %s\n' % (filename, str(msg)))
         return
     sys.stderr.write('Processing %s ...\n' % filename)
index 0ae4872003a0bfbd6943b6b18e4c4bbcb7ee3418..eedf5ba12b3391c34b471e28595bace8aa85b6a2 100755 (executable)
@@ -62,7 +62,7 @@ def main():
         opts, args = getopt.getopt(sys.argv[1:], 'hv',
                                    ['help', 'oldnotice=', 'newnotice=',
                                     'dry-run', 'verbose'])
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(1, msg)
 
     for opt, arg in opts:
index 2ff15f41efddb65417ae800f36532072511ca118..c858e5911f9fd2f052693c97c2b1a90bc29e7e11 100755 (executable)
@@ -11,7 +11,7 @@ def main():
     for filename in sys.argv[1:]:
         try:
             f = open(filename, 'r')
-        except IOError, msg:
+        except IOError as msg:
             print filename, ': can\'t open :', msg
             continue
         line = f.readline()
index caade165518d8349c343d25cce1310dcfb8bb93f..39ef18e661ba53fa0cc9568e5168822f421cfc71 100755 (executable)
@@ -45,7 +45,7 @@ def main():
     global verbose, interactive, mac, rmok, nologin
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'a:bil:mnp:qrs:v')
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(msg)
     login = ''
     passwd = ''
@@ -108,13 +108,13 @@ def mirrorsubdir(f, localdir):
         if verbose: print 'Creating local directory', repr(localdir)
         try:
             makedir(localdir)
-        except os.error, msg:
+        except os.error as msg:
             print "Failed to establish local directory", repr(localdir)
             return
     infofilename = os.path.join(localdir, '.mirrorinfo')
     try:
         text = open(infofilename, 'r').read()
-    except IOError, msg:
+    except IOError as msg:
         text = '{}'
     try:
         info = eval(text)
@@ -190,13 +190,13 @@ def mirrorsubdir(f, localdir):
                 print "Creating symlink %r -> %r" % (filename, linkto)
             try:
                 os.symlink(linkto, tempname)
-            except IOError, msg:
+            except IOError as msg:
                 print "Can't create %r: %s" % (tempname, msg)
                 continue
         else:
             try:
                 fp = open(tempname, 'wb')
-            except IOError, msg:
+            except IOError as msg:
                 print "Can't create %r: %s" % (tempname, msg)
                 continue
             if verbose:
@@ -209,7 +209,7 @@ def mirrorsubdir(f, localdir):
             try:
                 f.retrbinary('RETR ' + filename,
                              fp1.write, 8*1024)
-            except ftplib.error_perm, msg:
+            except ftplib.error_perm as msg:
                 print msg
             t1 = time.time()
             bytes = fp.tell()
@@ -222,7 +222,7 @@ def mirrorsubdir(f, localdir):
             pass            # Ignore the error
         try:
             os.rename(tempname, fullname)
-        except os.error, msg:
+        except os.error as msg:
             print "Can't rename %r to %r: %s" % (tempname, fullname, msg)
             continue
         info[filename] = infostuff
@@ -292,7 +292,7 @@ def mirrorsubdir(f, localdir):
             print 'Remote cwd', repr(subdir)
         try:
             f.cwd(subdir)
-        except ftplib.error_perm, msg:
+        except ftplib.error_perm as msg:
             print "Can't chdir to", repr(subdir), ":", repr(msg)
         else:
             if verbose: print 'Mirroring as', repr(localsubdir)
@@ -322,13 +322,13 @@ def remove(fullname):
             return 0
         try:
             os.rmdir(fullname)
-        except os.error, msg:
+        except os.error as msg:
             print "Can't remove local directory %r: %s" % (fullname, msg)
             return 0
     else:
         try:
             os.unlink(fullname)
-        except os.error, msg:
+        except os.error as msg:
             print "Can't remove local file %r: %s" % (fullname, msg)
             return 0
     return 1
index 995f2efa9ee5f99907e8601f95c8f4f90efd2598..7f1704645391ac3ddc78cebc9cb1870c672deb77 100755 (executable)
@@ -32,13 +32,13 @@ def main():
         return 1
     try:
         os.mkdir(newtree, 0777)
-    except os.error, msg:
+    except os.error as msg:
         print newtree + ': cannot mkdir:', msg
         return 1
     linkname = os.path.join(newtree, link)
     try:
         os.symlink(os.path.join(os.pardir, oldtree), linkname)
-    except os.error, msg:
+    except os.error as msg:
         if not link_may_fail:
             print linkname + ': cannot symlink:', msg
             return 1
@@ -51,7 +51,7 @@ def linknames(old, new, link):
     if debug: print 'linknames', (old, new, link)
     try:
         names = os.listdir(old)
-    except os.error, msg:
+    except os.error as msg:
         print old + ': warning: cannot listdir:', msg
         return
     for name in names:
index edfec2c45d3e240d2e9c9ce43e57dd66b822e626..d07dfc6a13fceaf5b37c6a0d121c7d3e56cc935c 100755 (executable)
@@ -180,6 +180,6 @@ def format_output(database):
 if __name__ == '__main__':
     try:
         main()
-    except IOError, e:
+    except IOError as e:
         if e.errno != errno.EPIPE:
             raise
index e045f1a719dd1f4178466a49a73ea4926f550210..140c0b3e1aaabe2b4b6b6ccfca8d4ed110836a3e 100644 (file)
@@ -43,7 +43,7 @@ def sum(*files):
 def printsum(filename, out=sys.stdout):
     try:
         fp = open(filename, rmode)
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg))
         return 1
     if fnfilter:
@@ -60,7 +60,7 @@ def printsumfp(fp, filename, out=sys.stdout):
             if not data:
                 break
             m.update(data)
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write('%s: I/O error: %s\n' % (filename, msg))
         return 1
     out.write('%s %s\n' % (m.hexdigest(), filename))
@@ -70,7 +70,7 @@ def main(args = sys.argv[1:], out=sys.stdout):
     global fnfilter, rmode, bufsize
     try:
         opts, args = getopt.getopt(args, 'blts:')
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stderr.write('%s: %s\n%s' % (sys.argv[0], msg, usage))
         return 2
     for o, a in opts:
index b81871ff6a348a18c1028d4c0c0dc62d951b4f13..11875a18359751a3f8e3473ed357e977b4c49513 100755 (executable)
@@ -59,7 +59,7 @@ def recursedown(dirname):
     bad = 0
     try:
         names = os.listdir(dirname)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: cannot list directory: %r\n' % (dirname, msg))
         return 1
     names.sort()
@@ -80,7 +80,7 @@ def fix(filename):
 ##  dbg('fix(%r)\n' % (filename,))
     try:
         f = open(filename, 'r')
-    except IOError, msg:
+    except IOError as msg:
         err('%s: cannot open: %r\n' % (filename, msg))
         return 1
     head, tail = os.path.split(filename)
@@ -117,7 +117,7 @@ def fix(filename):
             if g is None:
                 try:
                     g = open(tempname, 'w')
-                except IOError, msg:
+                except IOError as msg:
                     f.close()
                     err('%s: cannot create: %r\n' % (tempname, msg))
                     return 1
@@ -141,17 +141,17 @@ def fix(filename):
     try:
         statbuf = os.stat(filename)
         os.chmod(tempname, statbuf[ST_MODE] & 07777)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: warning: chmod failed (%r)\n' % (tempname, msg))
     # Then make a backup of the original file as filename~
     try:
         os.rename(filename, filename + '~')
-    except os.error, msg:
+    except os.error as msg:
         err('%s: warning: backup failed (%r)\n' % (filename, msg))
     # Now move the temp file to the original file
     try:
         os.rename(tempname, filename)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: rename failed (%r)\n' % (filename, msg))
         return 1
     # Return succes
index 88712b8140f24e5cd5bacde2e5b007e6026fd9c8..2afc1326f8e1e61d072747e82529e10d3b75957c 100755 (executable)
@@ -61,7 +61,7 @@ def fail(msg):
 def fopen(fname):
     try:
         return open(fname, 'U')
-    except IOError, detail:
+    except IOError as detail:
         return fail("couldn't open " + fname + ": " + str(detail))
 
 # open two files & spray the diff to stdout; return false iff a problem
@@ -85,7 +85,7 @@ def main(args):
     import getopt
     try:
         opts, args = getopt.getopt(args, "qr:")
-    except getopt.error, detail:
+    except getopt.error as detail:
         return fail(str(detail))
     noisy = 1
     qseen = rseen = 0
index 7f6f191bbeb18750509cfaac215cf9a47acee0e1..c59c0f21e35c5df33c7d57fa5d054dba3c46f123 100755 (executable)
@@ -37,7 +37,7 @@ def main():
              sys.argv[0])
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'i:')
-    except getopt.error, msg:
+    except getopt.error as msg:
         err(msg + '\n')
         err(usage)
         sys.exit(2)
@@ -68,7 +68,7 @@ def recursedown(dirname):
     bad = 0
     try:
         names = os.listdir(dirname)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: cannot list directory: %r\n' % (dirname, msg))
         return 1
     names.sort()
@@ -89,7 +89,7 @@ def fix(filename):
 ##  dbg('fix(%r)\n' % (filename,))
     try:
         f = open(filename, 'r')
-    except IOError, msg:
+    except IOError as msg:
         err('%s: cannot open: %r\n' % (filename, msg))
         return 1
     line = f.readline()
@@ -102,7 +102,7 @@ def fix(filename):
     tempname = os.path.join(head, '@' + tail)
     try:
         g = open(tempname, 'w')
-    except IOError, msg:
+    except IOError as msg:
         f.close()
         err('%s: cannot create: %r\n' % (tempname, msg))
         return 1
@@ -122,17 +122,17 @@ def fix(filename):
     try:
         statbuf = os.stat(filename)
         os.chmod(tempname, statbuf[ST_MODE] & 07777)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: warning: chmod failed (%r)\n' % (tempname, msg))
     # Then make a backup of the original file as filename~
     try:
         os.rename(filename, filename + '~')
-    except os.error, msg:
+    except os.error as msg:
         err('%s: warning: backup failed (%r)\n' % (filename, msg))
     # Now move the temp file to the original file
     try:
         os.rename(tempname, filename)
-    except os.error, msg:
+    except os.error as msg:
         err('%s: rename failed (%r)\n' % (filename, msg))
         return 1
     # Return succes
index 89ed9e6999805c165e276ab3afd7ed7b1c5cc268..9f444f2d2a6a4305fb08cd5865fcbda2eaebf1ac 100755 (executable)
@@ -491,7 +491,7 @@ def test():
     import getopt
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'cdrs:t:e')
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stderr.write('Error: %s\n' % msg)
         sys.stderr.write(usage)
         sys.exit(2)
index 71e0ded9cf5b53deea9fb50ddd3e799403676104..98a78f0b461ec2b6303f74811ed41dfbb19575f0 100644 (file)
@@ -33,7 +33,7 @@ def print_debug(msg):
 def _open(fullpath):
     try:
         size = os.stat(fullpath).st_size
-    except OSError, err: # Permission denied - ignore the file
+    except OSError as err: # Permission denied - ignore the file
         print_debug("%s: permission denied: %s" % (fullpath, err))
         return None
 
@@ -43,7 +43,7 @@ def _open(fullpath):
 
     try:
         return open(fullpath, 'rU')
-    except IOError, err: # Access denied, or a special file - ignore it
+    except IOError as err: # Access denied, or a special file - ignore it
         print_debug("%s: access denied: %s" % (fullpath, err))
         return None
 
@@ -81,7 +81,7 @@ def can_be_compiled(fullpath):
 
     try:
         compile(code, fullpath, "exec")
-    except Exception, err:
+    except Exception as err:
         print_debug("%s: cannot compile: %s" % (fullpath, err))
         return False
 
index de7f3c4a219680e07fcd8e67126883bc377ac782..b9bfb9668bf35ed6d4ed2b96300c4f70512545d9 100644 (file)
@@ -104,7 +104,7 @@ class ReDemo:
                                        self.getflags())
             bg = self.promptdisplay['background']
             self.statusdisplay.config(text="", background=bg)
-        except re.error, msg:
+        except re.error as msg:
             self.compiled = None
             self.statusdisplay.config(
                     text="re.error: %s" % str(msg),
index 5ac98c7f7bef2249b4aad432d7941da3f0435eb0..70242cccd720ca824b37af93f0fe48b9cd8dbffe 100644 (file)
@@ -61,7 +61,7 @@ def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:], "drvh",
                                    ["dryrun", "recurse", "verbose", "help"])
-    except getopt.error, msg:
+    except getopt.error as msg:
         usage(msg)
         return
     for o, a in opts:
@@ -99,7 +99,7 @@ def check(file):
         print "checking", file, "...",
     try:
         f = open(file)
-    except IOError, msg:
+    except IOError as msg:
         errprint("%s: I/O Error: %s" % (file, str(msg)))
         return
 
index b64420645ede1eaf7f49a096f1896d7bc20b5897..9d3d595c6b6128ff2af5636f0c964ef63d16951d 100755 (executable)
@@ -23,11 +23,11 @@ def main():
     pattern, filename = args
     try:
         prog = re.compile(pattern, reflags)
-    except re.error, msg:
+    except re.error as msg:
         usage("error in regular expression: %s" % str(msg))
     try:
         f = open(filename)
-    except IOError, msg:
+    except IOError as msg:
         usage("can't open %s: %s" % (repr(filename), str(msg)), 1)
     f.seek(0, 2)
     pos = f.tell()
index 3ecaee68fef9dc8df359daa8ad39f8ffb9ef1cf1..d849d7ccd9d59d03d727b7a6a6489ce85a8a4bff 100755 (executable)
@@ -554,7 +554,7 @@ class TexinfoParser:
         file = os.path.join(self.includedir, file)
         try:
             fp = open(file, 'r')
-        except IOError, msg:
+        except IOError as msg:
             print '*** Can\'t open include file', repr(file)
             return
         print '!'*self.debugging, '--> file', repr(file)
@@ -1797,7 +1797,7 @@ class HTMLHelp:
             print>>fp, ''
             self.dumpfiles(fp)
             fp.close()
-        except IOError, msg:
+        except IOError as msg:
             print projectfile, ':', msg
             sys.exit(1)
 
@@ -1822,7 +1822,7 @@ class HTMLHelp:
             print>>fp, '</BODY>'
             print>>fp, '</HTML>'
             fp.close()
-        except IOError, msg:
+        except IOError as msg:
             print contentfile, ':', msg
             sys.exit(1)
 
@@ -1844,7 +1844,7 @@ class HTMLHelp:
             print>>fp, '</BODY>'
             print>>fp, '</HTML>'
             fp.close()
-        except IOError, msg:
+        except IOError as msg:
             print indexfile  , ':', msg
             sys.exit(1)
 
@@ -2063,7 +2063,7 @@ def test():
 
     try:
         fp = open(file, 'r')
-    except IOError, msg:
+    except IOError as msg:
         print file, ':', msg
         sys.exit(1)
 
index 4fb1798c6033defff1f35c72934ba19a9a56ff68..a7a20987c93be33efdb98fedcadd88fe7e3d4589 100755 (executable)
@@ -78,7 +78,7 @@ def process(slave, master):
         print "creating slave directory", slave
         try:
             os.mkdir(slave)
-        except os.error, msg:
+        except os.error as msg:
             print "can't make slave directory", slave, ":", msg
             return
         else:
index 9bdf235b678446117bcdcbe9d0a645553b3faac1..e4a2cc0d59dd3774739cf8b48ddd80f83a0d7b69 100755 (executable)
@@ -12,7 +12,7 @@ def main():
         opts, args = getopt.getopt(sys.argv[1:], "t:")
         if not args:
             raise getopt.error, "At least one file argument required"
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         print "usage:", sys.argv[0], "[-t tabwidth] file ..."
         return
@@ -28,7 +28,7 @@ def process(filename, tabsize):
         f = open(filename)
         text = f.read()
         f.close()
-    except IOError, msg:
+    except IOError as msg:
         print "%r: I/O error: %s" % (filename, msg)
         return
     newtext = text.expandtabs(tabsize)
index cd417a48b09bc124394d2c60d016e1f9fb615861..a293283c8e69a07ced154ea0bdb03e05b6595c02 100644 (file)
@@ -18,11 +18,11 @@ def compare_codecs(encoding1, encoding2):
         u = unichr(i)
         try:
             c1 = u.encode(encoding1)
-        except UnicodeError, reason:
+        except UnicodeError as reason:
             c1 = '<undefined>'
         try:
             c2 = u.encode(encoding2)
-        except UnicodeError, reason:
+        except UnicodeError as reason:
             c2 = '<undefined>'
         if c1 != c2:
             print ' * encoding mismatch for 0x%04X: %-14r != %r' % \
index dabcd7238725190e07a144a782cf07125022dcaa..47d81ebf539224bb0882cf0a29a8859e2f892df1 100644 (file)
@@ -130,7 +130,7 @@ def hexrepr(t, precision=4):
     try:
         return '(' + ', '.join(['0x%0*X' % (precision, item)
                                 for item in t]) + ')'
-    except TypeError, why:
+    except TypeError as why:
         print '* failed to convert %r: %s' % (t, why)
         raise
 
@@ -393,7 +393,7 @@ def convertdir(dir, dirprefix='', nameprefix='', comments=1):
             else:
                 pymap(mappathname, map, dirprefix + codefile,name,comments)
                 marshalmap(mappathname, map, dirprefix + marshalfile)
-        except ValueError, why:
+        except ValueError as why:
             print '* conversion failed: %s' % why
             raise
 
@@ -414,7 +414,7 @@ def rewritepythondir(dir, dirprefix='', comments=1):
                 print '* map is empty; skipping'
             else:
                 pymap(mapname, map, dirprefix + codefile,name,comments)
-        except ValueError, why:
+        except ValueError as why:
             print '* conversion failed: %s' % why
 
 if __name__ == '__main__':
index 19d21e1871c3ce4da7f61f935a764c882b686643..c196cede4e320adc9ec334762a876d66290381f3 100644 (file)
@@ -22,7 +22,7 @@ def listcodecs(dir):
         except LookupError:
             # Codec not found
             continue
-        except Exception, reason:
+        except Exception as reason:
             # Probably an error from importing the codec; still it's
             # a valid code name
             if _debug:
index 144665383e988073c7675193a9e46cdc66b3f029..00ea49680b29be053ab9b198c1c72f6a2295342a 100644 (file)
@@ -49,7 +49,7 @@ def _check1version(package, url, version, verbose=0):
         print '  Checking %s'%url
     try:
         fp = urllib.urlopen(url)
-    except IOError, arg:
+    except IOError as arg:
         if verbose >= VERBOSE_EACHFILE:
             print '    Cannot open:', arg
         return -1, None, None
index 96aed0a6b28923fa1d7a43724554fc02b295ffa3..c6e216c22515834df18ba027de5ac81529c73bc2 100755 (executable)
@@ -74,7 +74,7 @@ if sys.platform == 'mac':
 def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:], 't:m:qva')
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stdout = sys.stderr
         print msg
         print __doc__%vars(webchecker)
index 923e8e666935839b28f8e06fcd53c971040aba9b..10e93c717e75711b32b520eeeb7ae38f47e5cb90 100755 (executable)
@@ -153,7 +153,7 @@ def main():
 
     try:
         opts, args = getopt.getopt(sys.argv[1:], 'Rd:m:nqr:t:vxa')
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stdout = sys.stderr
         print msg
         print __doc__%globals()
@@ -335,7 +335,7 @@ class Checker:
         rp.set_url(url)
         try:
             rp.read()
-        except (OSError, IOError), msg:
+        except (OSError, IOError) as msg:
             self.note(1, "I/O error parsing %s: %s", url, msg)
 
     def run(self):
@@ -402,7 +402,7 @@ class Checker:
             return
         try:
             page = self.getpage(url_pair)
-        except sgmllib.SGMLParseError, msg:
+        except sgmllib.SGMLParseError as msg:
             msg = self.sanitize(msg)
             self.note(0, "Error parsing %s: %s",
                           self.format_url(url_pair), msg)
@@ -541,7 +541,7 @@ class Checker:
         url, fragment = url_pair
         try:
             return self.urlopener.open(url)
-        except (OSError, IOError), msg:
+        except (OSError, IOError) as msg:
             msg = self.sanitize(msg)
             self.note(0, "Error %s", msg)
             if self.verbose > 0:
@@ -759,7 +759,7 @@ class MyURLopener(urllib.FancyURLopener):
                 return self.open_file(url + "index.html")
             try:
                 names = os.listdir(path)
-            except os.error, msg:
+            except os.error as msg:
                 exc_type, exc_value, exc_tb = sys.exc_info()
                 raise IOError, msg, exc_tb
             names.sort()
index ef2fa44d7e08a321a4094b310cebf4cbb1789403..239cb529afffbfec264017ab836411320bd15594 100755 (executable)
@@ -21,7 +21,7 @@ def main():
     verbose = webchecker.VERBOSE
     try:
         opts, args = getopt.getopt(sys.argv[1:], "qv")
-    except getopt.error, msg:
+    except getopt.error as msg:
         print msg
         print "usage:", sys.argv[0], "[-qv] ... [rooturl] ..."
         return 2
@@ -83,7 +83,7 @@ class Sucker(webchecker.Checker):
             f.write(text)
             f.close()
             self.message("saved %s", path)
-        except IOError, msg:
+        except IOError as msg:
             self.message("didn't save %s: %s", path, str(msg))
 
     def savefilename(self, url):
index 1f529e3af0114fe859c4622397a7bd08155f2d6f..b4165189e25c83b29f832ad40d72362ac15b2966 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -186,7 +186,7 @@ class PyBuildExt(build_ext):
 
         try:
             build_ext.build_extension(self, ext)
-        except (CCompilerError, DistutilsError), why:
+        except (CCompilerError, DistutilsError) as why:
             self.announce('WARNING: building of extension "%s" failed: %s' %
                           (ext.name, sys.exc_info()[1]))
             return
@@ -208,7 +208,7 @@ class PyBuildExt(build_ext):
             self.get_ext_filename(self.get_ext_fullname(ext.name)))
         try:
             imp.load_dynamic(ext.name, ext_filename)
-        except ImportError, why:
+        except ImportError as why:
             self.announce('*** WARNING: renaming "%s" since importing it'
                           ' failed: %s' % (ext.name, why), level=3)
             assert not self.inplace