=== Demo/cgi/wiki.py ================================================================== --- Demo/cgi/wiki.py (revision 9771) +++ Demo/cgi/wiki.py (local) @@ -119,5 +119,5 @@ f.write('\n') f.close() return "" - except IOError, err: + except IOError as err: return "IOError: %s" % str(err) === Demo/comparisons/regextest.py ================================================================== --- Demo/comparisons/regextest.py (revision 9771) +++ Demo/comparisons/regextest.py (local) @@ -28,7 +28,7 @@ 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 === Demo/comparisons/systemtest.py ================================================================== --- Demo/comparisons/systemtest.py (revision 9771) +++ Demo/comparisons/systemtest.py (local) @@ -41,7 +41,7 @@ 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 @@ 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 === Demo/parser/test_parser.py ================================================================== --- Demo/parser/test_parser.py (revision 9771) +++ Demo/parser/test_parser.py (local) @@ -17,7 +17,7 @@ # 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() === Demo/parser/unparse.py ================================================================== --- Demo/parser/unparse.py (revision 9771) +++ Demo/parser/unparse.py (local) @@ -492,7 +492,7 @@ 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) === Demo/pdist/FSProxy.py ================================================================== --- Demo/pdist/FSProxy.py (revision 9771) +++ Demo/pdist/FSProxy.py (local) @@ -87,7 +87,7 @@ 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: === Demo/pdist/cmdfw.py ================================================================== --- Demo/pdist/cmdfw.py (revision 9771) +++ Demo/pdist/cmdfw.py (local) @@ -42,7 +42,7 @@ 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 @@ 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() === Demo/pdist/cmptree.py ================================================================== --- Demo/pdist/cmptree.py (revision 9771) +++ Demo/pdist/cmptree.py (local) @@ -135,7 +135,7 @@ 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_real(local, remote, name): try: local.create(name) - except (IOError, os.error), msg: + except (IOError, os.error) as msg: print "cannot create:", msg return === Demo/pdist/cvslock.py ================================================================== --- Demo/pdist/cvslock.py (revision 9771) +++ Demo/pdist/cvslock.py (local) @@ -129,7 +129,7 @@ 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 @@ for r in repositories: try: locks.append(WriteLock(r, 0)) - except Locked, instance: + except Locked as instance: del locks break else: === Demo/pdist/rrcs.py ================================================================== --- Demo/pdist/rrcs.py (revision 9771) +++ Demo/pdist/rrcs.py (local) @@ -22,7 +22,7 @@ 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 @@ 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): === Demo/pysvr/pysvr.py ================================================================== --- Demo/pysvr/pysvr.py (revision 9771) +++ Demo/pysvr/pysvr.py (local) @@ -21,14 +21,14 @@ 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 @@ 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 @@ 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 @@ 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() === Demo/rpc/nfsclient.py ================================================================== --- Demo/rpc/nfsclient.py (revision 9771) +++ Demo/rpc/nfsclient.py (local) @@ -194,8 +194,7 @@ 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) === Demo/rpc/rpc.py ================================================================== --- Demo/rpc/rpc.py (revision 9771) +++ Demo/rpc/rpc.py (local) @@ -330,7 +330,8 @@ 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 @@ 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 @@ s = S('', 0x20000000, 1, 0) try: s.unregister() - except RuntimeError, msg: + except RuntimeError as msg: print 'RuntimeError:', msg, '(ignored)' s.register() print 'Service started...' === Demo/scripts/eqfix.py ================================================================== --- Demo/scripts/eqfix.py (revision 9771) +++ Demo/scripts/eqfix.py (local) @@ -62,7 +62,7 @@ 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 @@ ## 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 @@ 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 @@ 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 === Demo/scripts/ftpstats.py ================================================================== --- Demo/scripts/ftpstats.py (revision 9771) +++ Demo/scripts/ftpstats.py (local) @@ -25,7 +25,7 @@ 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 @@ else: try: f = open(file, 'r') - except IOError, msg: + except IOError as msg: print file, ':', msg sys.exit(1) bydate = {} === Demo/scripts/mboxconvert.py ================================================================== --- Demo/scripts/mboxconvert.py (revision 9771) +++ Demo/scripts/mboxconvert.py (local) @@ -16,7 +16,7 @@ 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 @@ 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 @@ 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 === Demo/scripts/newslist.py ================================================================== --- Demo/scripts/newslist.py (revision 9771) +++ Demo/scripts/newslist.py (local) @@ -330,7 +330,7 @@ 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 === Demo/scripts/pp.py ================================================================== --- Demo/scripts/pp.py (revision 9771) +++ Demo/scripts/pp.py (local) @@ -35,7 +35,7 @@ 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) === Demo/scripts/update.py ================================================================== --- Demo/scripts/update.py (revision 9771) +++ Demo/scripts/update.py (local) @@ -19,7 +19,7 @@ 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 @@ 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 @@ 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: === Demo/sockets/gopher.py ================================================================== --- Demo/sockets/gopher.py (revision 9771) +++ Demo/sockets/gopher.py (local) @@ -142,7 +142,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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), '...' === Demo/sockets/telnet.py ================================================================== --- Demo/sockets/telnet.py (revision 9771) +++ Demo/sockets/telnet.py (local) @@ -52,7 +52,7 @@ # try: s.connect((host, port)) - except error, msg: + except error as msg: sys.stderr.write('connect failed: ' + repr(msg) + '\n') sys.exit(1) # === Demo/threads/find.py ================================================================== --- Demo/threads/find.py (revision 9771) +++ Demo/threads/find.py (local) @@ -131,7 +131,7 @@ 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 @@ 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): === Demo/threads/telnet.py ================================================================== --- Demo/threads/telnet.py (revision 9771) +++ Demo/threads/telnet.py (local) @@ -56,7 +56,7 @@ # try: s.connect((host, port)) - except error, msg: + except error as msg: sys.stderr.write('connect failed: %r\n' % (msg,)) sys.exit(1) # === Demo/tkinter/guido/AttrDialog.py ================================================================== --- Demo/tkinter/guido/AttrDialog.py (revision 9771) +++ Demo/tkinter/guido/AttrDialog.py (local) @@ -156,7 +156,7 @@ 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 @@ 'pack', 'info', self.widget)) - except TclError, msg: + except TclError as msg: print msg return dict = {} @@ -239,7 +239,7 @@ '-'+self.option, self.dialog.master.tk.merge( self.current)) - except TclError, msg: + except TclError as msg: print msg self.refresh() @@ -285,7 +285,7 @@ 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 @@ self.master.send(self.app, self.widget, 'config')) - except TclError, msg: + except TclError as msg: print msg return dict = {} @@ -398,7 +398,7 @@ 'config', '-'+self.option, self.current) - except TclError, msg: + except TclError as msg: print msg self.refresh() @@ -445,7 +445,7 @@ if widget == '.': continue try: RemotePackDialog(list, list.app, widget) - except TclError, msg: + except TclError as msg: print msg test() === Demo/tkinter/guido/ManPage.py ================================================================== --- Demo/tkinter/guido/ManPage.py (revision 9771) +++ Demo/tkinter/guido/ManPage.py (local) @@ -95,7 +95,7 @@ self._parseline('') try: self.tk.deletefilehandler(self.fp) - except TclError, msg: + except TclError as msg: pass self.fp.close() self.fp = None === Demo/tkinter/guido/mbox.py ================================================================== --- Demo/tkinter/guido/mbox.py (revision 9771) +++ Demo/tkinter/guido/mbox.py (local) @@ -27,7 +27,7 @@ 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: === Demo/tkinter/guido/tkman.py ================================================================== --- Demo/tkinter/guido/tkman.py (revision 9771) +++ Demo/tkinter/guido/tkman.py (local) @@ -216,7 +216,7 @@ 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 === Demo/tkinter/guido/wish.py ================================================================== --- Demo/tkinter/guido/wish.py (revision 9771) +++ Demo/tkinter/guido/wish.py (local) @@ -23,7 +23,7 @@ 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 === Doc/lib/email-unpack.py ================================================================== --- Doc/lib/email-unpack.py (revision 9771) +++ Doc/lib/email-unpack.py (local) @@ -35,7 +35,7 @@ try: os.mkdir(opts.directory) - except OSError, e: + except OSError as e: # Ignore directory exists error if e.errno != errno.EEXIST: raise === Doc/lib/sqlite3/complete_statement.py ================================================================== --- Doc/lib/sqlite3/complete_statement.py (revision 9771) +++ Doc/lib/sqlite3/complete_statement.py (local) @@ -23,7 +23,7 @@ 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 = "" === Doc/tools/prechm.py ================================================================== --- Doc/tools/prechm.py (revision 9771) +++ Doc/tools/prechm.py (local) @@ -448,7 +448,7 @@ 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 @@ try: optlist, args = getopt.getopt(args, 'ckpv:') - except getopt.error, msg: + except getopt.error as msg: print msg usage() === Doc/tools/sgmlconv/docfixer.py ================================================================== --- Doc/tools/sgmlconv/docfixer.py (revision 9771) +++ Doc/tools/sgmlconv/docfixer.py (local) @@ -1039,7 +1039,8 @@ # 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, === Doc/tools/sgmlconv/esis2sgml.py ================================================================== --- Doc/tools/sgmlconv/esis2sgml.py (revision 9771) +++ Doc/tools/sgmlconv/esis2sgml.py (local) @@ -255,7 +255,8 @@ if xml and xmldecl: opf.write('\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 === Doc/tools/sgmlconv/esistools.py ================================================================== --- Doc/tools/sgmlconv/esistools.py (revision 9771) +++ Doc/tools/sgmlconv/esistools.py (local) @@ -139,7 +139,7 @@ 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 === Doc/tools/sgmlconv/latex2esis.py ================================================================== --- Doc/tools/sgmlconv/latex2esis.py (revision 9771) +++ Doc/tools/sgmlconv/latex2esis.py (local) @@ -397,7 +397,8 @@ c = Conversion(ifp, ofp, table) try: c.convert() - except IOError, (err, msg): + except IOError as e: + (err, msg) = e if err != errno.EPIPE: raise === Lib/CGIHTTPServer.py ================================================================== --- Lib/CGIHTTPServer.py (revision 9771) +++ Lib/CGIHTTPServer.py (local) @@ -301,7 +301,7 @@ 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") === Lib/ConfigParser.py ================================================================== --- Lib/ConfigParser.py (revision 9771) +++ Lib/ConfigParser.py (local) @@ -567,7 +567,7 @@ 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: === Lib/SimpleXMLRPCServer.py ================================================================== --- Lib/SimpleXMLRPCServer.py (revision 9771) +++ Lib/SimpleXMLRPCServer.py (local) @@ -259,7 +259,7 @@ 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 @@ # 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} === Lib/_strptime.py ================================================================== --- Lib/_strptime.py (revision 9771) +++ Lib/_strptime.py (local) @@ -291,7 +291,7 @@ 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 = "%" === Lib/asynchat.py ================================================================== --- Lib/asynchat.py (revision 9771) +++ Lib/asynchat.py (local) @@ -87,7 +87,7 @@ 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 @@ 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 === Lib/asyncore.py ================================================================== --- Lib/asyncore.py (revision 9771) +++ Lib/asyncore.py (local) @@ -119,7 +119,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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() === Lib/base64.py ================================================================== --- Lib/base64.py (revision 9771) +++ Lib/base64.py (local) @@ -71,7 +71,7 @@ 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 @@ 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|-] === Lib/bsddb/dbtables.py ================================================================== --- Lib/bsddb/dbtables.py (revision 9771) +++ Lib/bsddb/dbtables.py (local) @@ -260,7 +260,7 @@ txn.commit() txn = None - except DBError, dberror: + except DBError as dberror: if txn: txn.abort() raise TableDBError, dberror[1] @@ -338,7 +338,7 @@ 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 @@ 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 @@ txn.abort() raise - except DBError, dberror: + except DBError as dberror: raise TableDBError, dberror[1] def Delete(self, table, conditions={}): @@ -502,11 +502,11 @@ 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 @@ 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 @@ key, data = cur.next() - except DBError, dberror: + except DBError as dberror: if dberror[0] != DB_NOTFOUND: raise continue @@ -636,7 +636,7 @@ 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 @@ if table in self.__tablecolumns: del self.__tablecolumns[table] - except DBError, dberror: + except DBError as dberror: if txn: txn.abort() raise TableDBError, dberror[1] === Lib/bsddb/test/test_basics.py ================================================================== --- Lib/bsddb/test/test_basics.py (revision 9771) +++ Lib/bsddb/test/test_basics.py (local) @@ -58,7 +58,7 @@ 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 @@ # 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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" === Lib/bsddb/test/test_compare.py ================================================================== --- Lib/bsddb/test/test_compare.py (revision 9771) +++ Lib/bsddb/test/test_compare.py (local) @@ -234,7 +234,7 @@ self.db.set_bt_compare (my_compare) assert False, "this set should fail" - except RuntimeError, msg: + except RuntimeError as msg: pass def test_suite (): === Lib/bsddb/test/test_pickle.py ================================================================== --- Lib/bsddb/test/test_pickle.py (revision 9771) +++ Lib/bsddb/test/test_pickle.py (local) @@ -11,7 +11,7 @@ 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 @@ 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) === Lib/bsddb/test/test_recno.py ================================================================== --- Lib/bsddb/test/test_recno.py (revision 9771) +++ Lib/bsddb/test/test_recno.py (local) @@ -29,7 +29,7 @@ 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 @@ 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 @@ # 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 @@ 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 @@ 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 @@ 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: === Lib/bsddb/test/test_thread.py ================================================================== --- Lib/bsddb/test/test_thread.py (revision 9771) +++ Lib/bsddb/test/test_thread.py (local) @@ -57,7 +57,7 @@ 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 @@ # 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 @@ 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 @@ 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 @@ 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() === Lib/cgi.py ================================================================== --- Lib/cgi.py (revision 9771) +++ Lib/cgi.py (local) @@ -982,7 +982,7 @@ print "

Current Working Directory:

" try: pwd = os.getcwd() - except os.error, msg: + except os.error as msg: print "os.error:", escape(str(msg)) else: print escape(pwd) === Lib/codecs.py ================================================================== --- Lib/codecs.py (revision 9771) +++ Lib/codecs.py (local) @@ -13,7 +13,7 @@ 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 @@ 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) === Lib/codeop.py ================================================================== --- Lib/codeop.py (revision 9771) +++ Lib/codeop.py (local) @@ -80,18 +80,18 @@ 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 === Lib/compileall.py ================================================================== --- Lib/compileall.py (revision 9771) +++ Lib/compileall.py (local) @@ -65,12 +65,12 @@ 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 @@ 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 ...]" === Lib/compiler/pycodegen.py ================================================================== --- Lib/compiler/pycodegen.py (revision 9771) +++ Lib/compiler/pycodegen.py (local) @@ -227,7 +227,7 @@ 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 === Lib/contextlib.py ================================================================== --- Lib/contextlib.py (revision 9771) +++ Lib/contextlib.py (local) @@ -28,7 +28,7 @@ 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 === Lib/csv.py ================================================================== --- Lib/csv.py (revision 9771) +++ Lib/csv.py (local) @@ -48,7 +48,7 @@ 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)) === Lib/ctypes/macholib/dyld.py ================================================================== --- Lib/ctypes/macholib/dyld.py (revision 9771) +++ Lib/ctypes/macholib/dyld.py (local) @@ -148,7 +148,7 @@ """ 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: === Lib/ctypes/test/__init__.py ================================================================== --- Lib/ctypes/test/__init__.py (revision 9771) +++ Lib/ctypes/test/__init__.py (local) @@ -57,12 +57,12 @@ 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): === Lib/ctypes/test/test_bitfields.py ================================================================== --- Lib/ctypes/test/test_bitfields.py (revision 9771) +++ Lib/ctypes/test/test_bitfields.py (local) @@ -191,7 +191,7 @@ 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): === Lib/ctypes/test/test_structures.py ================================================================== --- Lib/ctypes/test/test_structures.py (revision 9771) +++ Lib/ctypes/test/test_structures.py (local) @@ -313,7 +313,7 @@ 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 @@ 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 @@ try: Second._fields_ = [("first", First)] - except AttributeError, details: + except AttributeError as details: self.failUnless("_fields_ is final" in str(details)) else: === Lib/ctypes/util.py ================================================================== --- Lib/ctypes/util.py (revision 9771) +++ Lib/ctypes/util.py (local) @@ -60,12 +60,12 @@ 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) === Lib/dis.py ================================================================== --- Lib/dis.py (revision 9771) +++ Lib/dis.py (local) @@ -33,7 +33,7 @@ print "Disassembly of %s:" % name try: dis(x1) - except TypeError, msg: + except TypeError as msg: print "Sorry:", msg print elif hasattr(x, 'co_code'): === Lib/distutils/bcppcompiler.py ================================================================== --- Lib/distutils/bcppcompiler.py (revision 9771) +++ Lib/distutils/bcppcompiler.py (local) @@ -115,7 +115,7 @@ # 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 @@ 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 @@ 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 @@ 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 @@ self.mkpath(os.path.dirname(output_file)) try: self.spawn(pp_args) - except DistutilsExecError, msg: + except DistutilsExecError as msg: print msg raise CompileError, msg === Lib/distutils/command/register.py ================================================================== --- Lib/distutils/command/register.py (revision 9771) +++ Lib/distutils/command/register.py (local) @@ -284,11 +284,11 @@ 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: === Lib/distutils/command/sdist.py ================================================================== --- Lib/distutils/command/sdist.py (revision 9771) +++ Lib/distutils/command/sdist.py (local) @@ -333,7 +333,7 @@ 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)) === Lib/distutils/command/upload.py ================================================================== --- Lib/distutils/command/upload.py (revision 9771) +++ Lib/distutils/command/upload.py (local) @@ -184,7 +184,7 @@ 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 === Lib/distutils/core.py ================================================================== --- Lib/distutils/core.py (revision 9771) +++ Lib/distutils/core.py (local) @@ -110,7 +110,7 @@ # (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 @@ # 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 @@ 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 @@ raise SystemExit, error except (DistutilsError, - CCompilerError), msg: + CCompilerError) as msg: if DEBUG: raise else: === Lib/distutils/cygwinccompiler.py ================================================================== --- Lib/distutils/cygwinccompiler.py (revision 9771) +++ Lib/distutils/cygwinccompiler.py (local) @@ -142,13 +142,13 @@ # 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 @@ 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, === Lib/distutils/dir_util.py ================================================================== --- Lib/distutils/dir_util.py (revision 9771) +++ Lib/distutils/dir_util.py (local) @@ -75,7 +75,7 @@ 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 @@ "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 @@ 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)) === Lib/distutils/dist.py ================================================================== --- Lib/distutils/dist.py (revision 9771) +++ Lib/distutils/dist.py (local) @@ -398,7 +398,7 @@ 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 @@ # 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 @@ 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): === Lib/distutils/emxccompiler.py ================================================================== --- Lib/distutils/emxccompiler.py (revision 9771) +++ Lib/distutils/emxccompiler.py (local) @@ -79,13 +79,13 @@ # 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 @@ 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, === Lib/distutils/fancy_getopt.py ================================================================== --- Lib/distutils/fancy_getopt.py (revision 9771) +++ Lib/distutils/fancy_getopt.py (local) @@ -256,7 +256,7 @@ 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: === Lib/distutils/file_util.py ================================================================== --- Lib/distutils/file_util.py (revision 9771) +++ Lib/distutils/file_util.py (local) @@ -32,27 +32,31 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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: === Lib/distutils/msvccompiler.py ================================================================== --- Lib/distutils/msvccompiler.py (revision 9771) +++ Lib/distutils/msvccompiler.py (local) @@ -129,7 +129,7 @@ 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 @@ 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 @@ self.spawn ([self.rc] + ["/fo" + obj] + [rc_file]) - except DistutilsExecError, msg: + except DistutilsExecError as msg: raise CompileError, msg continue else: @@ -414,7 +414,7 @@ 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 @@ 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 @@ 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: === Lib/distutils/spawn.py ================================================================== --- Lib/distutils/spawn.py (revision 9771) +++ Lib/distutils/spawn.py (local) @@ -78,7 +78,7 @@ # 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 @@ # 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 @@ #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 @@ while 1: try: (pid, status) = os.waitpid(pid, 0) - except OSError, exc: + except OSError as exc: import errno if exc.errno == errno.EINTR: continue === Lib/distutils/sysconfig.py ================================================================== --- Lib/distutils/sysconfig.py (revision 9771) +++ Lib/distutils/sysconfig.py (local) @@ -344,7 +344,7 @@ 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 @@ 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 === Lib/distutils/unixccompiler.py ================================================================== --- Lib/distutils/unixccompiler.py (revision 9771) +++ Lib/distutils/unixccompiler.py (local) @@ -162,7 +162,7 @@ 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 @@ 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 @@ 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 @@ 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) === Lib/distutils/util.py ================================================================== --- Lib/distutils/util.py (revision 9771) +++ Lib/distutils/util.py (local) @@ -229,7 +229,7 @@ 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 () === Lib/doctest.py ================================================================== --- Lib/doctest.py (revision 9771) +++ Lib/doctest.py (local) @@ -1604,8 +1604,8 @@ ... {}, '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 @@ >>> 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 @@ >>> 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 @@ >>> try: ... case.debug() - ... except DocTestFailure, failure: - ... pass + ... except DocTestFailure as f: + ... failure = f DocTestFailure objects provide access to the test: === Lib/encodings/uu_codec.py ================================================================== --- Lib/encodings/uu_codec.py (revision 9771) +++ Lib/encodings/uu_codec.py (local) @@ -81,7 +81,7 @@ 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]) === Lib/filecmp.py ================================================================== --- Lib/filecmp.py (revision 9771) +++ Lib/filecmp.py (local) @@ -148,12 +148,12 @@ 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 === Lib/ftplib.py ================================================================== --- Lib/ftplib.py (revision 9771) +++ Lib/ftplib.py (local) @@ -119,7 +119,7 @@ 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 @@ 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 @@ 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 == '': === Lib/hotshot/stones.py ================================================================== --- Lib/hotshot/stones.py (revision 9771) +++ Lib/hotshot/stones.py (local) @@ -19,7 +19,7 @@ stats.sort_stats('time', 'calls') try: stats.print_stats(20) - except IOError, e: + except IOError as e: if e.errno != errno.EPIPE: raise === Lib/htmllib.py ================================================================== --- Lib/htmllib.py (revision 9771) +++ Lib/htmllib.py (local) @@ -463,7 +463,7 @@ else: try: f = open(file, 'r') - except IOError, msg: + except IOError as msg: print file, ":", msg sys.exit(1) === Lib/httplib.py ================================================================== --- Lib/httplib.py (revision 9771) +++ Lib/httplib.py (local) @@ -667,7 +667,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ """ 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 === Lib/idlelib/ClassBrowser.py ================================================================== --- Lib/idlelib/ClassBrowser.py (revision 9771) +++ Lib/idlelib/ClassBrowser.py (local) @@ -94,7 +94,7 @@ return [] try: dict = pyclbr.readmodule_ex(name, [dir] + sys.path) - except ImportError, msg: + except ImportError as msg: return [] items = [] self.classes = {} === Lib/idlelib/EditorWindow.py ================================================================== --- Lib/idlelib/EditorWindow.py (revision 9771) +++ Lib/idlelib/EditorWindow.py (local) @@ -505,7 +505,7 @@ # 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: === Lib/idlelib/GrepDialog.py ================================================================== --- Lib/idlelib/GrepDialog.py (revision 9771) +++ Lib/idlelib/GrepDialog.py (local) @@ -82,7 +82,7 @@ for fn in list: try: f = open(fn) - except IOError, msg: + except IOError as msg: print msg continue lineno = 0 @@ -110,7 +110,7 @@ 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 = [] === Lib/idlelib/IOBinding.py ================================================================== --- Lib/idlelib/IOBinding.py (revision 9771) +++ Lib/idlelib/IOBinding.py (local) @@ -246,7 +246,7 @@ 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 @@ # 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 @@ 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 @@ try: enc = coding_spec(chars) failed = None - except LookupError, msg: + except LookupError as msg: failed = msg enc = None if enc: === Lib/idlelib/PyShell.py ================================================================== --- Lib/idlelib/PyShell.py (revision 9771) +++ Lib/idlelib/PyShell.py (local) @@ -380,7 +380,7 @@ 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 @@ 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 @@ 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 @@ 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) === Lib/idlelib/ScriptBinding.py ================================================================== --- Lib/idlelib/ScriptBinding.py (revision 9771) +++ Lib/idlelib/ScriptBinding.py (local) @@ -66,13 +66,13 @@ 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 @@ 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: === Lib/idlelib/SearchEngine.py ================================================================== --- Lib/idlelib/SearchEngine.py (revision 9771) +++ Lib/idlelib/SearchEngine.py (local) @@ -66,7 +66,7 @@ flags = flags | re.IGNORECASE try: prog = re.compile(pat, flags) - except re.error, what: + except re.error as what: try: msg, col = what except: === Lib/idlelib/run.py ================================================================== --- Lib/idlelib/run.py (revision 9771) +++ Lib/idlelib/run.py (local) @@ -114,7 +114,7 @@ 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: === Lib/imaplib.py ================================================================== --- Lib/imaplib.py (revision 9771) +++ Lib/imaplib.py (local) @@ -845,7 +845,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ try: optlist, args = getopt.getopt(sys.argv[1:], 'd:s:') - except getopt.error, val: + except getopt.error as val: optlist, args = (), () stream_command = None === Lib/lib-tk/Tkinter.py ================================================================== --- Lib/lib-tk/Tkinter.py (revision 9771) +++ Lib/lib-tk/Tkinter.py (local) @@ -85,7 +85,7 @@ 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 @@ 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() === Lib/linecache.py ================================================================== --- Lib/linecache.py (revision 9771) +++ Lib/linecache.py (local) @@ -78,7 +78,7 @@ 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 @@ 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 === Lib/logging/config.py ================================================================== --- Lib/logging/config.py (revision 9771) +++ Lib/logging/config.py (local) @@ -288,7 +288,7 @@ except: traceback.print_exc() os.remove(file) - except socket.error, e: + except socket.error as e: if type(e.args) != types.TupleType: raise else: === Lib/mailbox.py ================================================================== --- Lib/mailbox.py (revision 9771) +++ Lib/mailbox.py (local) @@ -258,7 +258,7 @@ 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 @@ self.remove(key) except KeyError: pass - except OSError, e: + except OSError as e: if e.errno != errno.ENOENT: raise @@ -437,12 +437,12 @@ 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 @@ 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+') @@ -590,7 +590,7 @@ 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) @@ -818,7 +818,7 @@ 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: @@ -840,7 +840,7 @@ 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: @@ -866,7 +866,7 @@ 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: @@ -893,7 +893,7 @@ 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: @@ -913,7 +913,7 @@ """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: @@ -1822,7 +1822,7 @@ 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) @@ -1832,7 +1832,7 @@ 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: @@ -1845,7 +1845,7 @@ 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) === Lib/mhlib.py ================================================================== --- Lib/mhlib.py (revision 9771) +++ Lib/mhlib.py (local) @@ -370,7 +370,7 @@ 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 @@ # 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 @@ 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 @@ 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 @@ '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()) === Lib/mimetypes.py ================================================================== --- Lib/mimetypes.py (revision 9771) +++ Lib/mimetypes.py (local) @@ -510,7 +510,7 @@ 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 === Lib/modulefinder.py ================================================================== --- Lib/modulefinder.py (revision 9771) +++ Lib/modulefinder.py (local) @@ -317,7 +317,7 @@ 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 @@ 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 @@ import getopt try: opts, args = getopt.getopt(sys.argv[1:], "dmp:qx:") - except getopt.error, msg: + except getopt.error as msg: print msg return === Lib/msilib/__init__.py ================================================================== --- Lib/msilib/__init__.py (revision 9771) +++ Lib/msilib/__init__.py (local) @@ -111,7 +111,7 @@ 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() === Lib/nntplib.py ================================================================== --- Lib/nntplib.py (revision 9771) +++ Lib/nntplib.py (local) @@ -127,7 +127,7 @@ 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 === Lib/optparse.py ================================================================== --- Lib/optparse.py (revision 9771) +++ Lib/optparse.py (local) @@ -1376,7 +1376,7 @@ try: stop = self._process_args(largs, rargs, values) - except (BadOptionError, OptionValueError), err: + except (BadOptionError, OptionValueError) as err: self.error(str(err)) args = largs + rargs === Lib/os.py ================================================================== --- Lib/os.py (revision 9771) +++ Lib/os.py (local) @@ -163,7 +163,7 @@ 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 @@ # 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 @@ 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): === Lib/pdb.py ================================================================== --- Lib/pdb.py (revision 9771) +++ Lib/pdb.py (local) @@ -330,7 +330,7 @@ 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 @@ 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 === Lib/pickle.py ================================================================== --- Lib/pickle.py (revision 9771) +++ Lib/pickle.py (local) @@ -816,7 +816,7 @@ 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 @@ 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) === Lib/pkgutil.py ================================================================== --- Lib/pkgutil.py (revision 9771) +++ Lib/pkgutil.py (local) @@ -532,7 +532,7 @@ 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: === Lib/plat-irix5/torgb.py ================================================================== --- Lib/plat-irix5/torgb.py (revision 9771) +++ Lib/plat-irix5/torgb.py (local) @@ -80,7 +80,7 @@ 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] === Lib/plat-irix6/torgb.py ================================================================== --- Lib/plat-irix6/torgb.py (revision 9771) +++ Lib/plat-irix6/torgb.py (local) @@ -80,7 +80,7 @@ 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] === Lib/plat-mac/EasyDialogs.py ================================================================== --- Lib/plat-mac/EasyDialogs.py (revision 9771) +++ Lib/plat-mac/EasyDialogs.py (local) @@ -651,7 +651,7 @@ 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 @@ 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 @@ 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 === Lib/plat-mac/MiniAEFrame.py ================================================================== --- Lib/plat-mac/MiniAEFrame.py (revision 9771) +++ Lib/plat-mac/MiniAEFrame.py (local) @@ -70,7 +70,7 @@ 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() === Lib/plat-mac/aetools.py ================================================================== --- Lib/plat-mac/aetools.py (revision 9771) +++ Lib/plat-mac/aetools.py (local) @@ -57,7 +57,7 @@ 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 @@ 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 === Lib/plat-mac/applesingle.py ================================================================== --- Lib/plat-mac/applesingle.py (revision 9771) +++ Lib/plat-mac/applesingle.py (local) @@ -48,7 +48,7 @@ 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 @@ 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) === Lib/plat-mac/argvemulator.py ================================================================== --- Lib/plat-mac/argvemulator.py (revision 9771) +++ Lib/plat-mac/argvemulator.py (local) @@ -52,7 +52,7 @@ 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 @@ 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() === Lib/plat-mac/buildtools.py ================================================================== --- Lib/plat-mac/buildtools.py (revision 9771) +++ Lib/plat-mac/buildtools.py (local) @@ -78,7 +78,7 @@ 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,) === Lib/plat-mac/bundlebuilder.py ================================================================== --- Lib/plat-mac/bundlebuilder.py (revision 9771) +++ Lib/plat-mac/bundlebuilder.py (local) @@ -764,7 +764,7 @@ 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 === Lib/plat-mac/gensuitemodule.py ================================================================== --- Lib/plat-mac/gensuitemodule.py (revision 9771) +++ Lib/plat-mac/gensuitemodule.py (local) @@ -114,7 +114,7 @@ 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 @@ 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 @@ 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") === Lib/plat-mac/macresource.py ================================================================== --- Lib/plat-mac/macresource.py (revision 9771) +++ Lib/plat-mac/macresource.py (local) @@ -76,14 +76,14 @@ 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 @@ 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 === Lib/plat-mac/pimp.py ================================================================== --- Lib/plat-mac/pimp.py (revision 9771) +++ Lib/plat-mac/pimp.py (local) @@ -76,7 +76,7 @@ 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 @@ 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") === Lib/plat-mac/terminalcommand.py ================================================================== --- Lib/plat-mac/terminalcommand.py (revision 9771) +++ Lib/plat-mac/terminalcommand.py (local) @@ -35,7 +35,7 @@ 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) === Lib/platform.py ================================================================== --- Lib/platform.py (revision 9771) +++ Lib/platform.py (local) @@ -404,10 +404,10 @@ 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: === Lib/poplib.py ================================================================== --- Lib/poplib.py (revision 9771) +++ Lib/poplib.py (local) @@ -86,7 +86,7 @@ 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 @@ """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 @@ 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 @@ """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 === Lib/pstats.py ================================================================== --- Lib/pstats.py (revision 9771) +++ Lib/pstats.py (local) @@ -618,7 +618,7 @@ if line: try: self.stats = Stats(line) - except IOError, args: + except IOError as args: print >> self.stream, args[1] return self.prompt = line + "% " === Lib/pty.py ================================================================== --- Lib/pty.py (revision 9771) +++ Lib/pty.py (local) @@ -56,7 +56,7 @@ 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': === Lib/py_compile.py ================================================================== --- Lib/py_compile.py (revision 9771) +++ Lib/py_compile.py (local) @@ -123,7 +123,7 @@ 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 @@ for filename in args: try: compile(filename, doraise=True) - except PyCompileError,err: + except PyCompileError as err: sys.stderr.write(err.msg) if __name__ == "__main__": === Lib/pydoc.py ================================================================== --- Lib/pydoc.py (revision 9771) +++ Lib/pydoc.py (local) @@ -1479,7 +1479,7 @@ 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 @@ 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): @@ -1917,7 +1917,7 @@ 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: @@ -2220,7 +2220,7 @@ writedoc(arg) else: help.help(arg) - except ErrorDuringImport, value: + except ErrorDuringImport as value: print value except (getopt.error, BadUsage): === Lib/quopri.py ================================================================== --- Lib/quopri.py (revision 9771) +++ Lib/quopri.py (local) @@ -194,7 +194,7 @@ 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 @@ 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 === Lib/re.py ================================================================== --- Lib/re.py (revision 9771) +++ Lib/re.py (local) @@ -229,7 +229,7 @@ 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 @@ 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() === Lib/rexec.py ================================================================== --- Lib/rexec.py (revision 9771) +++ Lib/rexec.py (local) @@ -551,7 +551,7 @@ 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 @@ 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 @@ c = compile(text, fp.name, 'exec') try: r.s_exec(c) - except SystemExit, n: + except SystemExit as n: return n except: traceback.print_exc() === Lib/sgmllib.py ================================================================== --- Lib/sgmllib.py (revision 9771) +++ Lib/sgmllib.py (local) @@ -530,7 +530,7 @@ else: try: f = open(file, 'r') - except IOError, msg: + except IOError as msg: print file, ":", msg sys.exit(1) === Lib/shutil.py ================================================================== --- Lib/shutil.py (revision 9771) +++ Lib/shutil.py (local) @@ -121,18 +121,18 @@ 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 @@ 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 @@ 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) === Lib/site.py ================================================================== --- Lib/site.py (revision 9771) +++ Lib/site.py (local) @@ -391,7 +391,7 @@ import sitecustomize except ImportError: pass - except Exception, err: + except Exception as err: if os.environ.get("PYTHONVERBOSE"): raise sys.stderr.write( === Lib/smtpd.py ================================================================== --- Lib/smtpd.py (revision 9771) +++ Lib/smtpd.py (local) @@ -357,10 +357,10 @@ 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 @@ 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 @@ 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.' === Lib/smtplib.py ================================================================== --- Lib/smtplib.py (revision 9771) +++ Lib/smtplib.py (local) @@ -306,7 +306,7 @@ 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() === Lib/sqlite3/test/dbapi.py ================================================================== --- Lib/sqlite3/test/dbapi.py (revision 9771) +++ Lib/sqlite3/test/dbapi.py (local) @@ -326,7 +326,7 @@ 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.") === Lib/sqlite3/test/hooks.py ================================================================== --- Lib/sqlite3/test/hooks.py (revision 9771) +++ Lib/sqlite3/test/hooks.py (local) @@ -36,7 +36,7 @@ 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 @@ 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 @@ 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 @@ 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") === Lib/sqlite3/test/userfunctions.py ================================================================== --- Lib/sqlite3/test/userfunctions.py (revision 9771) +++ Lib/sqlite3/test/userfunctions.py (local) @@ -205,7 +205,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 === Lib/subprocess.py ================================================================== --- Lib/subprocess.py (revision 9771) +++ Lib/subprocess.py (local) @@ -792,7 +792,7 @@ 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 @@ -1185,7 +1185,7 @@ 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:" === Lib/tabnanny.py ================================================================== --- Lib/tabnanny.py (revision 9771) +++ Lib/tabnanny.py (local) @@ -43,7 +43,7 @@ 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 @@ try: f = open(file) - except IOError, msg: + except IOError as msg: errprint("%r: I/O Error: %s" % (file, msg)) return @@ -105,15 +105,15 @@ 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: === Lib/tarfile.py ================================================================== --- Lib/tarfile.py (revision 9771) +++ Lib/tarfile.py (local) @@ -1502,7 +1502,7 @@ 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: @@ -1527,7 +1527,7 @@ try: self._extract_member(tarinfo, os.path.join(path, tarinfo.name)) - except EnvironmentError, e: + except EnvironmentError as e: if self.errorlevel > 0: raise else: @@ -1535,7 +1535,7 @@ 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: @@ -1643,7 +1643,7 @@ """ try: os.mkdir(targetpath) - except EnvironmentError, e: + except EnvironmentError as e: if e.errno != errno.EEXIST: raise @@ -1707,11 +1707,11 @@ 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): @@ -1739,7 +1739,7 @@ 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): @@ -1748,7 +1748,7 @@ 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): @@ -1762,7 +1762,7 @@ return try: os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime)) - except EnvironmentError, e: + except EnvironmentError as e: raise ExtractError("could not change modification time") #-------------------------------------------------------------------------- @@ -1795,7 +1795,7 @@ tarinfo = self.proc_member(tarinfo) - except ValueError, e: + except ValueError as e: if self.ignore_zeros: self._dbg(2, "0x%X: empty or invalid block: %s" % (self.offset, e)) === Lib/telnetlib.p