diff options
Diffstat (limited to 'Lib')
80 files changed, 502 insertions, 530 deletions
diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py index 28299bd1427..faa0930f432 100644 --- a/Lib/ConfigParser.py +++ b/Lib/ConfigParser.py @@ -344,7 +344,7 @@ class RawConfigParser: def getboolean(self, section, option): v = self.get(section, option) if v.lower() not in self._boolean_states: - raise ValueError, 'Not a boolean: %s' % v + raise ValueError('Not a boolean: %s' % v) return self._boolean_states[v.lower()] def optionxform(self, optionstr): diff --git a/Lib/UserDict.py b/Lib/UserDict.py index bcee543bab7..bc05dfb6287 100644 --- a/Lib/UserDict.py +++ b/Lib/UserDict.py @@ -127,8 +127,8 @@ class DictMixin: return default def pop(self, key, *args): if len(args) > 1: - raise TypeError, "pop expected at most 2 arguments, got "\ - + repr(1 + len(args)) + raise TypeError("pop expected at most 2 arguments, got " + + repr(1 + len(args))) try: value = self[key] except KeyError: @@ -141,7 +141,7 @@ class DictMixin: try: k, v = next(self.iteritems()) except StopIteration: - raise KeyError, 'container is empty' + raise KeyError('container is empty') del self[k] return (k, v) def update(self, other=None, **kwargs): diff --git a/Lib/UserString.py b/Lib/UserString.py index faad148b081..c55c1bf1a77 100755 --- a/Lib/UserString.py +++ b/Lib/UserString.py @@ -183,7 +183,7 @@ class MutableString(UserString): def __init__(self, string=""): self.data = string def __hash__(self): - raise TypeError, "unhashable type (it is mutable)" + raise TypeError("unhashable type (it is mutable)") def __setitem__(self, index, sub): if isinstance(index, slice): if isinstance(sub, UserString): diff --git a/Lib/aifc.py b/Lib/aifc.py index 4e882562452..085fa90863a 100644 --- a/Lib/aifc.py +++ b/Lib/aifc.py @@ -287,14 +287,14 @@ class Aifc_read: self._soundpos = 0 self._file = Chunk(file) if self._file.getname() != 'FORM': - raise Error, 'file does not start with FORM id' + raise Error('file does not start with FORM id') formdata = self._file.read(4) if formdata == 'AIFF': self._aifc = 0 elif formdata == 'AIFC': self._aifc = 1 else: - raise Error, 'not an AIFF or AIFF-C file' + raise Error('not an AIFF or AIFF-C file') self._comm_chunk_read = 0 while 1: self._ssnd_seek_needed = 1 @@ -317,10 +317,10 @@ class Aifc_read: elif chunkname in _skiplist: pass else: - raise Error, 'unrecognized chunk type '+chunk.chunkname + raise Error('unrecognized chunk type '+chunk.chunkname) chunk.skip() if not self._comm_chunk_read or not self._ssnd_chunk: - raise Error, 'COMM chunk and/or SSND chunk missing' + raise Error('COMM chunk and/or SSND chunk missing') if self._aifc and self._decomp: import cl params = [cl.ORIGINAL_FORMAT, 0, @@ -331,7 +331,7 @@ class Aifc_read: elif self._nchannels == 2: params[1] = cl.STEREO_INTERLEAVED else: - raise Error, 'cannot compress more than 2 channels' + raise Error('cannot compress more than 2 channels') self._decomp.SetParams(params) def __init__(self, f): @@ -394,11 +394,11 @@ class Aifc_read: for marker in self._markers: if id == marker[0]: return marker - raise Error, 'marker %r does not exist' % (id,) + raise Error('marker %r does not exist' % (id,)) def setpos(self, pos): if pos < 0 or pos > self._nframes: - raise Error, 'position not in range' + raise Error('position not in range') self._soundpos = pos self._ssnd_seek_needed = 1 @@ -488,7 +488,7 @@ class Aifc_read: return except ImportError: pass - raise Error, 'cannot read compressed AIFF-C files' + raise Error('cannot read compressed AIFF-C files') if self._comptype == 'ULAW': scheme = cl.G711_ULAW self._framesize = self._framesize / 2 @@ -496,7 +496,7 @@ class Aifc_read: scheme = cl.G711_ALAW self._framesize = self._framesize / 2 else: - raise Error, 'unsupported compression type' + raise Error('unsupported compression type') self._decomp = cl.OpenDecompressor(scheme) self._convert = self._decomp_data else: @@ -594,53 +594,53 @@ class Aifc_write: # def aiff(self): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') self._aifc = 0 def aifc(self): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') self._aifc = 1 def setnchannels(self, nchannels): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if nchannels < 1: - raise Error, 'bad # of channels' + raise Error('bad # of channels') self._nchannels = nchannels def getnchannels(self): if not self._nchannels: - raise Error, 'number of channels not set' + raise Error('number of channels not set') return self._nchannels def setsampwidth(self, sampwidth): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if sampwidth < 1 or sampwidth > 4: - raise Error, 'bad sample width' + raise Error('bad sample width') self._sampwidth = sampwidth def getsampwidth(self): if not self._sampwidth: - raise Error, 'sample width not set' + raise Error('sample width not set') return self._sampwidth def setframerate(self, framerate): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if framerate <= 0: - raise Error, 'bad frame rate' + raise Error('bad frame rate') self._framerate = framerate def getframerate(self): if not self._framerate: - raise Error, 'frame rate not set' + raise Error('frame rate not set') return self._framerate def setnframes(self, nframes): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') self._nframes = nframes def getnframes(self): @@ -648,9 +648,9 @@ class Aifc_write: def setcomptype(self, comptype, compname): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if comptype not in ('NONE', 'ULAW', 'ALAW', 'G722'): - raise Error, 'unsupported compression type' + raise Error('unsupported compression type') self._comptype = comptype self._compname = compname @@ -668,9 +668,9 @@ class Aifc_write: def setparams(self, params): nchannels, sampwidth, framerate, nframes, comptype, compname = params if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if comptype not in ('NONE', 'ULAW', 'ALAW', 'G722'): - raise Error, 'unsupported compression type' + raise Error('unsupported compression type') self.setnchannels(nchannels) self.setsampwidth(sampwidth) self.setframerate(framerate) @@ -679,17 +679,17 @@ class Aifc_write: def getparams(self): if not self._nchannels or not self._sampwidth or not self._framerate: - raise Error, 'not all parameters set' + raise Error('not all parameters set') return self._nchannels, self._sampwidth, self._framerate, \ self._nframes, self._comptype, self._compname def setmark(self, id, pos, name): if id <= 0: - raise Error, 'marker ID must be > 0' + raise Error('marker ID must be > 0') if pos < 0: - raise Error, 'marker position must be >= 0' + raise Error('marker position must be >= 0') if type(name) != type(''): - raise Error, 'marker name must be a string' + raise Error('marker name must be a string') for i in range(len(self._markers)): if id == self._markers[i][0]: self._markers[i] = id, pos, name @@ -700,7 +700,7 @@ class Aifc_write: for marker in self._markers: if id == marker[0]: return marker - raise Error, 'marker %r does not exist' % (id,) + raise Error('marker %r does not exist' % (id,)) def getmarkers(self): if len(self._markers) == 0: @@ -770,18 +770,18 @@ class Aifc_write: if not self._sampwidth: self._sampwidth = 2 if self._sampwidth != 2: - raise Error, 'sample width must be 2 when compressing with ULAW or ALAW' + raise Error('sample width must be 2 when compressing with ULAW or ALAW') if self._comptype == 'G722': if not self._sampwidth: self._sampwidth = 2 if self._sampwidth != 2: - raise Error, 'sample width must be 2 when compressing with G7.22 (ADPCM)' + raise Error('sample width must be 2 when compressing with G7.22 (ADPCM)') if not self._nchannels: - raise Error, '# channels not specified' + raise Error('# channels not specified') if not self._sampwidth: - raise Error, 'sample width not specified' + raise Error('sample width not specified') if not self._framerate: - raise Error, 'sampling rate not specified' + raise Error('sampling rate not specified') self._write_header(datasize) def _init_compression(self): @@ -798,13 +798,13 @@ class Aifc_write: return except ImportError: pass - raise Error, 'cannot write compressed AIFF-C files' + raise Error('cannot write compressed AIFF-C files') if self._comptype == 'ULAW': scheme = cl.G711_ULAW elif self._comptype == 'ALAW': scheme = cl.G711_ALAW else: - raise Error, 'unsupported compression type' + raise Error('unsupported compression type') self._comp = cl.OpenCompressor(scheme) params = [cl.ORIGINAL_FORMAT, 0, cl.BITS_PER_COMPONENT, self._sampwidth * 8, @@ -816,7 +816,7 @@ class Aifc_write: elif self._nchannels == 2: params[1] = cl.STEREO_INTERLEAVED else: - raise Error, 'cannot compress more than 2 channels' + raise Error('cannot compress more than 2 channels') self._comp.SetParams(params) # the compressor produces a header which we ignore dummy = self._comp.Compress(0, '') @@ -930,7 +930,7 @@ def open(f, mode=None): elif mode in ('w', 'wb'): return Aifc_write(f) else: - raise Error, "mode must be 'r', 'rb', 'w', or 'wb'" + raise Error("mode must be 'r', 'rb', 'w', or 'wb'") openfp = open # B/W compatibility diff --git a/Lib/anydbm.py b/Lib/anydbm.py index 89381841c01..41335a3e184 100644 --- a/Lib/anydbm.py +++ b/Lib/anydbm.py @@ -59,7 +59,7 @@ for _name in _names: _errors.append(_mod.error) if not _defaultmod: - raise ImportError, "no dbm clone found; tried %s" % _names + raise ImportError("no dbm clone found; tried %s" % _names) error = tuple(_errors) @@ -74,10 +74,10 @@ def open(file, flag = 'r', mode = 0o666): # flag was used so use default type mod = _defaultmod else: - raise error, "need 'c' or 'n' flag to open new db" + raise error("need 'c' or 'n' flag to open new db") elif result == "": # db type cannot be determined - raise error, "db type could not be determined" + raise error("db type could not be determined") else: mod = __import__(result) return mod.open(file, flag, mode) diff --git a/Lib/asynchat.py b/Lib/asynchat.py index 9157f339a6b..94436561618 100644 --- a/Lib/asynchat.py +++ b/Lib/asynchat.py @@ -66,10 +66,10 @@ class async_chat (asyncore.dispatcher): asyncore.dispatcher.__init__ (self, conn) def collect_incoming_data(self, data): - raise NotImplementedError, "must be implemented in subclass" + raise NotImplementedError("must be implemented in subclass") def found_terminator(self): - raise NotImplementedError, "must be implemented in subclass" + raise NotImplementedError("must be implemented in subclass") def set_terminator (self, term): "Set the input delimiter. Can be a fixed string of any length, an integer, or None" diff --git a/Lib/asyncore.py b/Lib/asyncore.py index 32f579035fa..ceaeeab9ce1 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -313,7 +313,7 @@ class dispatcher: self.connected = True self.handle_connect() else: - raise socket.error, (err, errorcode[err]) + raise socket.error(err, errorcode[err]) def accept(self): # XXX can return either an address pair or None diff --git a/Lib/bdb.py b/Lib/bdb.py index fddc3e67a8f..f0891f1fbb4 100644 --- a/Lib/bdb.py +++ b/Lib/bdb.py @@ -130,7 +130,7 @@ class Bdb: return False def do_clear(self, arg): - raise NotImplementedError, "subclass of bdb must implement do_clear()" + raise NotImplementedError("subclass of bdb must implement do_clear()") def break_anywhere(self, frame): return self.canonic(frame.f_code.co_filename) in self.breaks diff --git a/Lib/cgi.py b/Lib/cgi.py index 4cf96092995..7b457cc3e09 100755 --- a/Lib/cgi.py +++ b/Lib/cgi.py @@ -140,7 +140,7 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0): elif ctype == 'application/x-www-form-urlencoded': clength = int(environ['CONTENT_LENGTH']) if maxlen and clength > maxlen: - raise ValueError, 'Maximum content length exceeded' + raise ValueError('Maximum content length exceeded') qs = fp.read(clength) else: qs = '' # Unknown content-type @@ -215,7 +215,7 @@ def parse_qsl(qs, keep_blank_values=0, strict_parsing=0): nv = name_value.split('=', 1) if len(nv) != 2: if strict_parsing: - raise ValueError, "bad query field: %r" % (name_value,) + raise ValueError("bad query field: %r" % (name_value,)) # Handle case of a control-name with no equal sign if keep_blank_values: nv.append('') @@ -258,7 +258,7 @@ def parse_multipart(fp, pdict): if 'boundary' in pdict: boundary = pdict['boundary'] if not valid_boundary(boundary): - raise ValueError, ('Invalid boundary in multipart form: %r' + raise ValueError('Invalid boundary in multipart form: %r' % (boundary,)) nextpart = "--" + boundary @@ -280,7 +280,7 @@ def parse_multipart(fp, pdict): pass if bytes > 0: if maxlen and bytes > maxlen: - raise ValueError, 'Maximum content length exceeded' + raise ValueError('Maximum content length exceeded') data = fp.read(bytes) else: data = "" @@ -520,7 +520,7 @@ class FieldStorage: except ValueError: pass if maxlen and clen > maxlen: - raise ValueError, 'Maximum content length exceeded' + raise ValueError('Maximum content length exceeded') self.length = clen self.list = self.file = None @@ -542,7 +542,7 @@ class FieldStorage: def __getattr__(self, name): if name != 'value': - raise AttributeError, name + raise AttributeError(name) if self.file: self.file.seek(0) value = self.file.read() @@ -556,12 +556,12 @@ class FieldStorage: def __getitem__(self, key): """Dictionary style indexing.""" if self.list is None: - raise TypeError, "not indexable" + raise TypeError("not indexable") found = [] for item in self.list: if item.name == key: found.append(item) if not found: - raise KeyError, key + raise KeyError(key) if len(found) == 1: return found[0] else: @@ -603,7 +603,7 @@ class FieldStorage: def keys(self): """Dictionary style keys() method.""" if self.list is None: - raise TypeError, "not indexable" + raise TypeError("not indexable") keys = [] for item in self.list: if item.name not in keys: keys.append(item.name) @@ -612,7 +612,7 @@ class FieldStorage: def __contains__(self, key): """Dictionary style __contains__ method.""" if self.list is None: - raise TypeError, "not indexable" + raise TypeError("not indexable") for item in self.list: if item.name == key: return True return False @@ -636,7 +636,7 @@ class FieldStorage: """Internal: read a part that is itself multipart.""" ib = self.innerboundary if not valid_boundary(ib): - raise ValueError, 'Invalid boundary in multipart form: %r' % (ib,) + raise ValueError('Invalid boundary in multipart form: %r' % (ib,)) self.list = [] klass = self.FieldStorageClass or self.__class__ part = klass(self.fp, {}, ib, @@ -817,7 +817,7 @@ class SvFormContentDict(FormContentDict): """ def __getitem__(self, key): if len(self.dict[key]) > 1: - raise IndexError, 'expecting a single value' + raise IndexError('expecting a single value') return self.dict[key][0] def getlist(self, key): return self.dict[key] diff --git a/Lib/chunk.py b/Lib/chunk.py index 32aada8aef4..5863ed0846b 100644 --- a/Lib/chunk.py +++ b/Lib/chunk.py @@ -90,7 +90,7 @@ class Chunk: def isatty(self): if self.closed: - raise ValueError, "I/O operation on closed file" + raise ValueError("I/O operation on closed file") return False def seek(self, pos, whence=0): @@ -100,9 +100,9 @@ class Chunk: """ if self.closed: - raise ValueError, "I/O operation on closed file" + raise ValueError("I/O operation on closed file") if not self.seekable: - raise IOError, "cannot seek" + raise IOError("cannot seek") if whence == 1: pos = pos + self.size_read elif whence == 2: @@ -114,7 +114,7 @@ class Chunk: def tell(self): if self.closed: - raise ValueError, "I/O operation on closed file" + raise ValueError("I/O operation on closed file") return self.size_read def read(self, size=-1): @@ -124,7 +124,7 @@ class Chunk: """ if self.closed: - raise ValueError, "I/O operation on closed file" + raise ValueError("I/O operation on closed file") if self.size_read >= self.chunksize: return '' if size < 0: @@ -148,7 +148,7 @@ class Chunk: """ if self.closed: - raise ValueError, "I/O operation on closed file" + raise ValueError("I/O operation on closed file") if self.seekable: try: n = self.chunksize - self.size_read diff --git a/Lib/cmd.py b/Lib/cmd.py index 8362edc5616..a2b20201763 100644 --- a/Lib/cmd.py +++ b/Lib/cmd.py @@ -358,8 +358,8 @@ class Cmd: nonstrings = [i for i in range(len(list)) if not isinstance(list[i], basestring)] if nonstrings: - raise TypeError, ("list[i] not a string for i in %s" % - ", ".join(map(str, nonstrings))) + raise TypeError("list[i] not a string for i in %s" + % ", ".join(map(str, nonstrings))) size = len(list) if size == 1: self.stdout.write('%s\n'%str(list[0])) diff --git a/Lib/codeop.py b/Lib/codeop.py index 6abde2ede5a..780c86203d0 100644 --- a/Lib/codeop.py +++ b/Lib/codeop.py @@ -96,7 +96,7 @@ def _maybe_compile(compiler, source, filename, symbol): if code: return code if not code1 and repr(err1) == repr(err2): - raise SyntaxError, err1 + raise SyntaxError(err1) def _compile(source, filename, symbol): return compile(source, filename, symbol, PyCF_DONT_IMPLY_DEDENT) diff --git a/Lib/copy_reg.py b/Lib/copy_reg.py index 59b6b971438..d693209fe02 100644 --- a/Lib/copy_reg.py +++ b/Lib/copy_reg.py @@ -62,7 +62,7 @@ def _reduce_ex(self, proto): state = None else: if base is self.__class__: - raise TypeError, "can't pickle %s objects" % base.__name__ + raise TypeError("can't pickle %s objects" % base.__name__) state = base(self) args = (self.__class__, base, state) try: @@ -153,7 +153,7 @@ def add_extension(module, name, code): """Register an extension code.""" code = int(code) if not 1 <= code <= 0x7fffffff: - raise ValueError, "code out of range" + raise ValueError("code out of range") key = (module, name) if (_extension_registry.get(key) == code and _inverted_registry.get(code) == key): diff --git a/Lib/csv.py b/Lib/csv.py index cd0f7d34bae..32a377e8f04 100644 --- a/Lib/csv.py +++ b/Lib/csv.py @@ -104,9 +104,8 @@ class DictWriter: self.fieldnames = fieldnames # list of keys for the dict self.restval = restval # for writing short dicts if extrasaction.lower() not in ("raise", "ignore"): - raise ValueError, \ - ("extrasaction (%s) must be 'raise' or 'ignore'" % - extrasaction) + raise ValueError("extrasaction (%s) must be 'raise' or 'ignore'" + % extrasaction) self.extrasaction = extrasaction self.writer = writer(f, dialect, *args, **kwds) @@ -114,8 +113,8 @@ class DictWriter: if self.extrasaction == "raise": wrong_fields = [k for k in rowdict if k not in self.fieldnames] if wrong_fields: - raise ValueError("dict contains fields not in fieldnames: " + - ", ".join(wrong_fields)) + raise ValueError("dict contains fields not in fieldnames: " + + ", ".join(wrong_fields)) return [rowdict.get(key, self.restval) for key in self.fieldnames] def writerow(self, rowdict): @@ -155,7 +154,7 @@ class Sniffer: delimiters) if not delimiter: - raise Error, "Could not determine delimiter" + raise Error("Could not determine delimiter") class dialect(Dialect): _name = "sniffed" diff --git a/Lib/decimal.py b/Lib/decimal.py index cca0a442174..8afeb4b86f2 100644 --- a/Lib/decimal.py +++ b/Lib/decimal.py @@ -2350,7 +2350,7 @@ class Context(object): # Errors should only be risked on copies of the context # self._ignored_flags = [] - raise error, explanation + raise error(explanation) def _ignore_all_flags(self): """Ignore all flags, if they are raised""" diff --git a/Lib/difflib.py b/Lib/difflib.py index 13704158b46..82e3319858d 100644 --- a/Lib/difflib.py +++ b/Lib/difflib.py @@ -914,7 +914,7 @@ class Differ: elif tag == 'equal': g = self._dump(' ', a, alo, ahi) else: - raise ValueError, 'unknown tag %r' % (tag,) + raise ValueError('unknown tag %r' % (tag,)) for line in g: yield line @@ -1026,7 +1026,7 @@ class Differ: atags += ' ' * la btags += ' ' * lb else: - raise ValueError, 'unknown tag %r' % (tag,) + raise ValueError('unknown tag %r' % (tag,)) for line in self._qformat(aelt, belt, atags, btags): yield line else: @@ -2005,7 +2005,7 @@ def restore(delta, which): try: tag = {1: "- ", 2: "+ "}[int(which)] except KeyError: - raise ValueError, ('unknown delta choice (must be 1 or 2): %r' + raise ValueError('unknown delta choice (must be 1 or 2): %r' % which) prefixes = (" ", tag) for line in delta: diff --git a/Lib/dis.py b/Lib/dis.py index 1ef4b338814..200dee22f83 100644 --- a/Lib/dis.py +++ b/Lib/dis.py @@ -47,7 +47,7 @@ def distb(tb=None): try: tb = sys.last_traceback except AttributeError: - raise RuntimeError, "no last traceback to disassemble" + raise RuntimeError("no last traceback to disassemble") while tb.tb_next: tb = tb.tb_next disassemble(tb.tb_frame.f_code, tb.tb_lasti) diff --git a/Lib/doctest.py b/Lib/doctest.py index 3fd4ecd6702..2374d44f5d8 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -326,9 +326,9 @@ class _OutputRedirectingPdb(pdb.Pdb): # [XX] Normalize with respect to os.path.pardir? def _module_relative_path(module, path): if not inspect.ismodule(module): - raise TypeError, 'Expected a module: %r' % module + raise TypeError('Expected a module: %r' % module) if path.startswith('/'): - raise ValueError, 'Module-relative files may not have absolute paths' + raise ValueError('Module-relative files may not have absolute paths') # Find the base directory for the path. if hasattr(module, '__file__'): diff --git a/Lib/encodings/__init__.py b/Lib/encodings/__init__.py index 221ba8243bc..ed25e9142f9 100644 --- a/Lib/encodings/__init__.py +++ b/Lib/encodings/__init__.py @@ -116,18 +116,16 @@ def search_function(encoding): entry = getregentry() if not isinstance(entry, codecs.CodecInfo): if not 4 <= len(entry) <= 7: - raise CodecRegistryError,\ - 'module "%s" (%s) failed to register' % \ - (mod.__name__, mod.__file__) + raise CodecRegistryError('module "%s" (%s) failed to register' + % (mod.__name__, mod.__file__)) if not hasattr(entry[0], '__call__') or \ not hasattr(entry[1], '__call__') or \ (entry[2] is not None and not hasattr(entry[2], '__call__')) or \ (entry[3] is not None and not hasattr(entry[3], '__call__')) or \ (len(entry) > 4 and entry[4] is not None and not hasattr(entry[4], '__call__')) or \ (len(entry) > 5 and entry[5] is not None and not hasattr(entry[5], '__call__')): - raise CodecRegistryError,\ - 'incompatible codecs in module "%s" (%s)' % \ - (mod.__name__, mod.__file__) + raise CodecRegistryError('incompatible codecs in module "%s" (%s)' + % (mod.__name__, mod.__file__)) if len(entry)<7 or entry[6] is None: entry += (None,)*(6-len(entry)) + (mod.__name__.split(".", 1)[1],) entry = codecs.CodecInfo(*entry) diff --git a/Lib/encodings/punycode.py b/Lib/encodings/punycode.py index f650f6c22c9..f08c807cd9f 100644 --- a/Lib/encodings/punycode.py +++ b/Lib/encodings/punycode.py @@ -135,7 +135,7 @@ def decode_generalized_number(extended, extpos, bias, errors): char = ord(extended[extpos]) except IndexError: if errors == "strict": - raise UnicodeError, "incomplete punicode string" + raise UnicodeError("incomplete punicode string") return extpos + 1, None extpos += 1 if 0x41 <= char <= 0x5A: # A-Z @@ -172,7 +172,7 @@ def insertion_sort(base, extended, errors): char += pos // (len(base) + 1) if char > 0x10FFFF: if errors == "strict": - raise UnicodeError, ("Invalid character U+%x" % char) + raise UnicodeError("Invalid character U+%x" % char) char = ord('?') pos = pos % (len(base) + 1) base = base[:pos] + chr(char) + base[pos:] @@ -202,7 +202,7 @@ class Codec(codecs.Codec): def decode(self, input, errors='strict'): if errors not in ('strict', 'replace', 'ignore'): - raise UnicodeError, "Unsupported error handling "+errors + raise UnicodeError("Unsupported error handling "+errors) res = punycode_decode(input, errors) return res, len(input) @@ -213,7 +213,7 @@ class IncrementalEncoder(codecs.IncrementalEncoder): class IncrementalDecoder(codecs.IncrementalDecoder): def decode(self, input, final=False): if self.errors not in ('strict', 'replace', 'ignore'): - raise UnicodeError, "Unsupported error handling "+self.errors + raise UnicodeError("Unsupported error handling "+self.errors) return punycode_decode(input, self.errors) class StreamWriter(Codec,codecs.StreamWriter): diff --git a/Lib/encodings/utf_16.py b/Lib/encodings/utf_16.py index cf096b57324..5500c0623c9 100644 --- a/Lib/encodings/utf_16.py +++ b/Lib/encodings/utf_16.py @@ -132,7 +132,7 @@ class StreamReader(codecs.StreamReader): elif byteorder == 1: self.decode = codecs.utf_16_be_decode elif consumed>=2: - raise UnicodeError,"UTF-16 stream does not start with BOM" + raise UnicodeError("UTF-16 stream does not start with BOM") return (object, consumed) ### encodings module API diff --git a/Lib/filecmp.py b/Lib/filecmp.py index ac016134791..1f599ce3920 100644 --- a/Lib/filecmp.py +++ b/Lib/filecmp.py @@ -235,7 +235,7 @@ class dircmp: def __getattr__(self, attr): if attr not in self.methodmap: - raise AttributeError, attr + raise AttributeError(attr) self.methodmap[attr](self) return getattr(self, attr) diff --git a/Lib/fileinput.py b/Lib/fileinput.py index 0080f78957e..5a423a1cfae 100644 --- a/Lib/fileinput.py +++ b/Lib/fileinput.py @@ -99,7 +99,7 @@ def input(files=None, inplace=0, backup="", bufsize=0, """ global _state if _state and _state._file: - raise RuntimeError, "input() already active" + raise RuntimeError("input() already active") _state = FileInput(files, inplace, backup, bufsize, mode, openhook) return _state @@ -122,7 +122,7 @@ def nextfile(): last file has been read, this function has no effect. """ if not _state: - raise RuntimeError, "no active input()" + raise RuntimeError("no active input()") return _state.nextfile() def filename(): @@ -131,7 +131,7 @@ def filename(): Before the first line has been read, returns None. """ if not _state: - raise RuntimeError, "no active input()" + raise RuntimeError("no active input()") return _state.filename() def lineno(): @@ -141,7 +141,7 @@ def lineno(): of the last file has been read, returns the line number of that line. """ if not _state: - raise RuntimeError, "no active input()" + raise RuntimeError("no active input()") return _state.lineno() def filelineno(): @@ -151,7 +151,7 @@ def filelineno(): been read, returns the line number of that line within the file. """ if not _state: - raise RuntimeError, "no active input()" + raise RuntimeError("no active input()") return _state.filelineno() def fileno(): @@ -160,7 +160,7 @@ def fileno(): opened, returns -1. """ if not _state: - raise RuntimeError, "no active input()" + raise RuntimeError("no active input()") return _state.fileno() def isfirstline(): @@ -169,7 +169,7 @@ def isfirstline(): otherwise returns false. """ if not _state: - raise RuntimeError, "no active input()" + raise RuntimeError("no active input()") return _state.isfirstline() def isstdin(): @@ -178,7 +178,7 @@ def isstdin(): otherwise returns false. """ if not _state: - raise RuntimeError, "no active input()" + raise RuntimeError("no active input()") return _state.isstdin() class FileInput: @@ -257,11 +257,11 @@ class FileInput: def __getitem__(self, i): if i != self._lineno: - raise RuntimeError, "accessing lines out of order" + raise RuntimeError("accessing lines out of order") try: return self.__next__() except StopIteration: - raise IndexError, "end of input reached" + raise IndexError("end of input reached") def nextfile(self): savestdout = self._savestdout diff --git a/Lib/fpformat.py b/Lib/fpformat.py index 485c39b292b..c1964361a43 100644 --- a/Lib/fpformat.py +++ b/Lib/fpformat.py @@ -36,7 +36,7 @@ def extract(s): fraction is 0 or more digits expo is an integer""" res = decoder.match(s) - if res is None: raise NotANumber, s + if res is None: raise NotANumber(s) sign, intpart, fraction, exppart = res.group(1,2,3,4) if sign == '+': sign = '' if fraction: fraction = fraction[1:] diff --git a/Lib/ftplib.py b/Lib/ftplib.py index 634bbde7ade..cfc51ba26f8 100644 --- a/Lib/ftplib.py +++ b/Lib/ftplib.py @@ -212,16 +212,16 @@ class FTP: if c in ('1', '2', '3'): return resp if c == '4': - raise error_temp, resp + raise error_temp(resp) if c == '5': - raise error_perm, resp - raise error_proto, resp + raise error_perm(resp) + raise error_proto(resp) def voidresp(self): """Expect a response beginning with '2'.""" resp = self.getresp() if resp[0] != '2': - raise error_reply, resp + raise error_reply(resp) return resp def abort(self): @@ -234,7 +234,7 @@ class FTP: self.sock.sendall(line, MSG_OOB) resp = self.getmultiline() if resp[:3] not in ('426', '226'): - raise error_proto, resp + raise error_proto(resp) def sendcmd(self, cmd): '''Send a command and return the response.''' @@ -264,7 +264,7 @@ class FTP: if self.af == socket.AF_INET6: af = 2 if af == 0: - raise error_proto, 'unsupported address family' + raise error_proto('unsupported address family') fields = ['', repr(af), host, repr(port), ''] cmd = 'EPRT ' + '|'.join(fields) return self.voidcmd(cmd) @@ -285,7 +285,7 @@ class FTP: continue break if not sock: - raise socket.error, msg + raise socket.error(msg) sock.listen(1) port = sock.getsockname()[1] # Get proper port host = self.sock.getsockname()[0] # Get proper host @@ -333,7 +333,7 @@ class FTP: if resp[0] == '2': resp = self.getresp() if resp[0] != '1': - raise error_reply, resp + raise error_reply(resp) else: sock = self.makeport() if rest is not None: @@ -343,7 +343,7 @@ class FTP: if resp[0] == '2': resp = self.getresp() if resp[0] != '1': - raise error_reply, resp + raise error_reply(resp) conn, sockaddr = sock.accept() if resp[:3] == '150': # this is conditional in case we received a 125 @@ -372,7 +372,7 @@ class FTP: if resp[0] == '3': resp = self.sendcmd('PASS ' + passwd) if resp[0] == '3': resp = self.sendcmd('ACCT ' + acct) if resp[0] != '2': - raise error_reply, resp + raise error_reply(resp) return resp def retrbinary(self, cmd, callback, blocksize=8192, rest=None): @@ -477,7 +477,7 @@ class FTP: '''Rename a file.''' resp = self.sendcmd('RNFR ' + fromname) if resp[0] != '3': - raise error_reply, resp + raise error_reply(resp) return self.voidcmd('RNTO ' + toname) def delete(self, filename): @@ -486,9 +486,9 @@ class FTP: if resp[:3] in ('250', '200'): return resp elif resp[:1] == '5': - raise error_perm, resp + raise error_perm(resp) else: - raise error_reply, resp + raise error_reply(resp) def cwd(self, dirname): '''Change to a directory.''' @@ -550,7 +550,7 @@ def parse150(resp): be present in the 150 message. ''' if resp[:3] != '150': - raise error_reply, resp + raise error_reply(resp) global _150_re if _150_re is None: import re @@ -573,14 +573,14 @@ def parse227(resp): Return ('host.addr.as.numbers', port#) tuple.''' if resp[:3] != '227': - raise error_reply, resp + raise error_reply(resp) global _227_re if _227_re is None: import re _227_re = re.compile(r'(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)') m = _227_re.search(resp) if not m: - raise error_proto, resp + raise error_proto(resp) numbers = m.groups() host = '.'.join(numbers[:4]) port = (int(numbers[4]) << 8) + int(numbers[5]) @@ -593,17 +593,17 @@ def parse229(resp, peer): Return ('host.addr.as.numbers', port#) tuple.''' if resp[:3] != '229': - raise error_reply, resp + raise error_reply(resp) left = resp.find('(') - if left < 0: raise error_proto, resp + if left < 0: raise error_proto(resp) right = resp.find(')', left + 1) if right < 0: - raise error_proto, resp # should contain '(|||port|)' + raise error_proto(resp) # should contain '(|||port|)' if resp[left + 1] != resp[right - 1]: - raise error_proto, resp + raise error_proto(resp) parts = resp[left + 1:right].split(resp[left+1]) if len(parts) != 5: - raise error_proto, resp + raise error_proto(resp) host = peer[0] port = int(parts[3]) return host, port @@ -615,7 +615,7 @@ def parse257(resp): Returns the directoryname in the 257 reply.''' if resp[:3] != '257': - raise error_reply, resp + raise error_reply(resp) if resp[3:5] != ' "': return '' # Not compliant to RFC 959, but UNIX ftpd does this dirname = '' @@ -674,8 +674,7 @@ class Netrc: filename = os.path.join(os.environ["HOME"], ".netrc") else: - raise IOError, \ - "specify file to load or set $HOME" + raise IOError("specify file to load or set $HOME") self.__hosts = {} self.__macros = {} fp = open(filename, "r") diff --git a/Lib/gettext.py b/Lib/gettext.py index 37ebf8a82bc..533be3dbac3 100644 --- a/Lib/gettext.py +++ b/Lib/gettext.py @@ -83,11 +83,10 @@ def c2py(plural): try: danger = [x for x in tokens if x[0] == token.NAME and x[1] != 'n'] except tokenize.TokenError: - raise ValueError, \ - 'plural forms expression error, maybe unbalanced parenthesis' + raise ValueError('plural forms expression error, maybe unbalanced parenthesis') else: if danger: - raise ValueError, 'plural forms expression could be dangerous' + raise ValueError('plural forms expression could be dangerous') # Replace some C operators by their Python equivalents plural = plural.replace('&&', ' and ') @@ -113,7 +112,7 @@ def c2py(plural): # Actually, we never reach this code, because unbalanced # parentheses get caught in the security check at the # beginning. - raise ValueError, 'unbalanced parenthesis in plural form' + raise ValueError('unbalanced parenthesis in plural form') s = expr.sub(repl, stack.pop()) stack[-1] += '(%s)' % s else: diff --git a/Lib/gzip.py b/Lib/gzip.py index 73bc550f1b0..4f750c068db 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -119,7 +119,7 @@ class GzipFile: zlib.DEF_MEM_LEVEL, 0) else: - raise IOError, "Mode " + mode + " not supported" + raise IOError("Mode " + mode + " not supported") self.fileobj = fileobj self.offset = 0 @@ -174,10 +174,10 @@ class GzipFile: def _read_gzip_header(self): magic = self.fileobj.read(2) if magic != b'\037\213': - raise IOError, 'Not a gzipped file' + raise IOError('Not a gzipped file') method = ord( self.fileobj.read(1) ) if method != 8: - raise IOError, 'Unknown compression method' + raise IOError('Unknown compression method') flag = ord( self.fileobj.read(1) ) # modtime = self.fileobj.read(4) # extraflag = self.fileobj.read(1) @@ -211,7 +211,7 @@ class GzipFile: raise IOError(errno.EBADF, "write() on read-only GzipFile object") if self.fileobj is None: - raise ValueError, "write() on closed GzipFile object" + raise ValueError("write() on closed GzipFile object") if len(data) > 0: self.size = self.size + len(data) self.crc = zlib.crc32(data, self.crc) @@ -257,7 +257,7 @@ class GzipFile: def _read(self, size=1024): if self.fileobj is None: - raise EOFError, "Reached EOF" + raise EOFError("Reached EOF") if self._new_member: # If the _new_member flag is set, we have to @@ -268,7 +268,7 @@ class GzipFile: pos = self.fileobj.tell() # Save current position self.fileobj.seek(0, 2) # Seek to end of file if pos == self.fileobj.tell(): - raise EOFError, "Reached EOF" + raise EOFError("Reached EOF") else: self.fileobj.seek( pos ) # Return to original position @@ -287,7 +287,7 @@ class GzipFile: uncompress = self.decompress.flush() self._read_eof() self._add_read_data( uncompress ) - raise EOFError, 'Reached EOF' + raise EOFError('Reached EOF') uncompress = self.decompress.decompress(buf) self._add_read_data( uncompress ) @@ -321,9 +321,9 @@ class GzipFile: crc32 = read32(self.fileobj) isize = U32(read32(self.fileobj)) # may exceed 2GB if U32(crc32) != U32(self.crc): - raise IOError, "CRC check failed" + raise IOError("CRC check failed") elif isize != LOWU32(self.size): - raise IOError, "Incorrect length of data produced" + raise IOError("Incorrect length of data produced") def close(self): if self.mode == WRITE: diff --git a/Lib/hashlib.py b/Lib/hashlib.py index 1d0e647cab6..e24d5a11cfb 100644 --- a/Lib/hashlib.py +++ b/Lib/hashlib.py @@ -74,7 +74,7 @@ def __get_builtin_constructor(name): elif bs == '384': return _sha512.sha384 - raise ValueError, "unsupported hash type" + raise ValueError("unsupported hash type") def __py_new(name, data=b''): diff --git a/Lib/ihooks.py b/Lib/ihooks.py index 14a20a6020f..d2eabc4cdd9 100644 --- a/Lib/ihooks.py +++ b/Lib/ihooks.py @@ -271,8 +271,8 @@ class ModuleLoader(BasicModuleLoader): elif type == PKG_DIRECTORY: m = self.hooks.load_package(name, filename, file) else: - raise ImportError, "Unrecognized module type (%r) for %s" % \ - (type, name) + raise ImportError("Unrecognized module type (%r) for %s" + % (type, name)) finally: if file: file.close() m.__file__ = filename @@ -291,14 +291,13 @@ class FancyModuleLoader(ModuleLoader): if type == PKG_DIRECTORY: initstuff = self.find_module_in_dir("__init__", filename, 0) if not initstuff: - raise ImportError, "No __init__ module in package %s" % name + raise ImportError("No __init__ module in package %s" % name) initfile, initfilename, initinfo = initstuff initsuff, initmode, inittype = initinfo if inittype not in (PY_COMPILED, PY_SOURCE): if initfile: initfile.close() - raise ImportError, \ - "Bad type (%r) for __init__ module in package %s" % ( - inittype, name) + raise ImportError("Bad type (%r) for __init__ module" + " in package %s" % (inittype, name)) path = [filename] file = initfile realfilename = initfilename @@ -361,14 +360,14 @@ class BasicModuleImporter(_Verbose): return self.modules[name] # Fast path stuff = self.loader.find_module(name) if not stuff: - raise ImportError, "No module named %s" % name + raise ImportError("No module named %s" % name) return self.loader.load_module(name, stuff) def reload(self, module, path = None): name = str(module.__name__) stuff = self.loader.find_module(name, path) if not stuff: - raise ImportError, "Module %s not found for reload" % name + raise ImportError("Module %s not found for reload" % name) return self.loader.load_module(name, stuff) def unload(self, module): @@ -439,7 +438,7 @@ class ModuleImporter(BasicModuleImporter): parent = None q = self.import_it(head, qname, parent) if q: return q, tail - raise ImportError, "No module named " + qname + raise ImportError("No module named " + qname) def load_tail(self, q, tail): m = q @@ -450,7 +449,7 @@ class ModuleImporter(BasicModuleImporter): mname = "%s.%s" % (m.__name__, head) m = self.import_it(head, mname, m) if not m: - raise ImportError, "No module named " + mname + raise ImportError("No module named " + mname) return m def ensure_fromlist(self, m, fromlist, recursive=0): @@ -468,11 +467,11 @@ class ModuleImporter(BasicModuleImporter): subname = "%s.%s" % (m.__name__, sub) submod = self.import_it(sub, subname, m) if not submod: - raise ImportError, "No module named " + subname + raise ImportError("No module named " + subname) def import_it(self, partname, fqname, parent, force_load=0): if not partname: - raise ValueError, "Empty module name" + raise ValueError("Empty module name") if not force_load: try: return self.modules[fqname] diff --git a/Lib/imputil.py b/Lib/imputil.py index 8cd492c2b02..1d09ba53085 100644 --- a/Lib/imputil.py +++ b/Lib/imputil.py @@ -99,7 +99,7 @@ class ImportManager: top_module = self._import_top_module(parts[0]) if not top_module: # the topmost module wasn't found at all. - raise ImportError, 'No module named ' + fqname + raise ImportError('No module named ' + fqname) # fast-path simple imports if len(parts) == 1: @@ -137,7 +137,7 @@ class ImportManager: # If the importer does not exist, then we have to bail. A missing # importer means that something else imported the module, and we have # no knowledge of how to get sub-modules out of the thing. - raise ImportError, 'No module named ' + fqname + raise ImportError('No module named ' + fqname) def _determine_import_context(self, globals): """Returns the context in which a module should be imported. @@ -306,7 +306,7 @@ class Importer: fqname = "%s.%s" % (m.__name__, part) m = self._import_one(m, part, fqname) if not m: - raise ImportError, "No module named " + fqname + raise ImportError("No module named " + fqname) return m def _import_fromlist(self, package, fromlist): @@ -325,7 +325,7 @@ class Importer: subname = "%s.%s" % (package.__name__, sub) submod = self._import_one(package, sub, subname) if not submod: - raise ImportError, "cannot import name " + subname + raise ImportError("cannot import name " + subname) def _do_import(self, parent, parts, fromlist): """Attempt to import the module relative to parent. @@ -377,7 +377,7 @@ class Importer: object, then these names/values will be inserted *after* the module has been loaded/initialized. """ - raise RuntimeError, "get_code not implemented" + raise RuntimeError("get_code not implemented") ###################################################################### @@ -452,7 +452,7 @@ def _os_bootstrap(): a = a + ':' return a + b else: - raise ImportError, 'no os specific module found' + raise ImportError('no os specific module found') if join is None: def join(a, b, sep=sep): diff --git a/Lib/inspect.py b/Lib/inspect.py index 45db8eefc23..35d6e596a93 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -724,8 +724,8 @@ def getargspec(func): args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, ann = \ getfullargspec(func) if kwonlyargs or ann: - raise ValueError, ("Function has keyword-only arguments or annotations" - ", use getfullargspec() API which can support them") + raise ValueError("Function has keyword-only arguments or annotations" + ", use getfullargspec() API which can support them") return (args, varargs, varkw, defaults) def getfullargspec(func): diff --git a/Lib/lib-tk/Tix.py b/Lib/lib-tk/Tix.py index a91b003ebe8..f523d7aca6d 100755 --- a/Lib/lib-tk/Tix.py +++ b/Lib/lib-tk/Tix.py @@ -31,7 +31,7 @@ from Tkinter import _flatten, _cnfmerge, _default_root # WARNING - TkVersion is a limited precision floating point number if TkVersion < 3.999: - raise ImportError, "This version of Tix.py requires Tk 4.0 or higher" + raise ImportError("This version of Tix.py requires Tk 4.0 or higher") import _tkinter # If this fails your Python may not be configured for Tk @@ -323,7 +323,7 @@ class TixWidget(Tkinter.Widget): def __getattr__(self, name): if name in self.subwidget_list: return self.subwidget_list[name] - raise AttributeError, name + raise AttributeError(name) def set_silent(self, value): """Set a variable without calling its action routine""" @@ -334,7 +334,7 @@ class TixWidget(Tkinter.Widget): the sub-class).""" n = self._subwidget_name(name) if not n: - raise TclError, "Subwidget " + name + " not child of " + self._name + raise TclError("Subwidget " + name + " not child of " + self._name) # Remove header of name and leading dot n = n[len(self._w)+1:] return self._nametowidget(n) @@ -385,7 +385,7 @@ class TixWidget(Tkinter.Widget): if not master: master = Tkinter._default_root if not master: - raise RuntimeError, 'Too early to create image' + raise RuntimeError('Too early to create image') if kw and cnf: cnf = _cnfmerge((cnf, kw)) elif kw: cnf = kw options = () @@ -475,7 +475,7 @@ class DisplayStyle: master = _default_root # global from Tkinter if not master and 'refwindow' in cnf: master=cnf['refwindow'] elif not master and 'refwindow' in kw: master= kw['refwindow'] - elif not master: raise RuntimeError, "Too early to create display style: no root window" + elif not master: raise RuntimeError("Too early to create display style: no root window") self.tk = master.tk self.stylename = self.tk.call('tixDisplayStyle', itemtype, *self._options(cnf,kw) ) diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py index 144be0a1a88..f6c1ab4646b 100644 --- a/Lib/lib-tk/Tkinter.py +++ b/Lib/lib-tk/Tkinter.py @@ -158,7 +158,7 @@ def _tkerror(err): def _exit(code='0'): """Internal function. Calling it will throw the exception SystemExit.""" - raise SystemExit, code + raise SystemExit(code) _varnum = 0 class Variable: @@ -1401,7 +1401,7 @@ class CallWrapper: args = self.subst(*args) return self.func(*args) except SystemExit as msg: - raise SystemExit, msg + raise SystemExit(msg) except: self.widget._report_exception() @@ -1652,19 +1652,16 @@ class Tk(Misc, Wm): # Version sanity checks tk_version = self.tk.getvar('tk_version') if tk_version != _tkinter.TK_VERSION: - raise RuntimeError, \ - "tk.h version (%s) doesn't match libtk.a version (%s)" \ - % (_tkinter.TK_VERSION, tk_version) + raise RuntimeError("tk.h version (%s) doesn't match libtk.a version (%s)" + % (_tkinter.TK_VERSION, tk_version)) # Under unknown circumstances, tcl_version gets coerced to float tcl_version = str(self.tk.getvar('tcl_version')) if tcl_version != _tkinter.TCL_VERSION: - raise RuntimeError, \ - "tcl.h version (%s) doesn't match libtcl.a version (%s)" \ - % (_tkinter.TCL_VERSION, tcl_version) + raise RuntimeError("tcl.h version (%s) doesn't match libtcl.a version (%s)" \ + % (_tkinter.TCL_VERSION, tcl_version)) if TkVersion < 4.0: - raise RuntimeError, \ - "Tk 4.0 or higher is required; found Tk %s" \ - % str(TkVersion) + raise RuntimeError("Tk 4.0 or higher is required; found Tk %s" + % str(TkVersion)) # Create and register the tkerror and exit commands # We need to inline parts of _register here, _ register # would register differently-named commands. @@ -3182,7 +3179,7 @@ class OptionMenu(Menubutton): if 'command' in kwargs: del kwargs['command'] if kwargs: - raise TclError, 'unknown option -'+kwargs.keys()[0] + raise TclError('unknown option -'+kwargs.keys()[0]) menu.add_command(label=value, command=_setit(variable, value, callback)) for v in values: @@ -3208,7 +3205,7 @@ class Image: if not master: master = _default_root if not master: - raise RuntimeError, 'Too early to create image' + raise RuntimeError('Too early to create image') self.tk = master.tk if not name: Image._last_id += 1 diff --git a/Lib/lib-tk/tkCommonDialog.py b/Lib/lib-tk/tkCommonDialog.py index 2cd9be4eac0..a5815c660b7 100644 --- a/Lib/lib-tk/tkCommonDialog.py +++ b/Lib/lib-tk/tkCommonDialog.py @@ -18,7 +18,7 @@ class Dialog: # FIXME: should this be placed on the module level instead? if TkVersion < 4.2: - raise TclError, "this module requires Tk 4.2 or newer" + raise TclError("this module requires Tk 4.2 or newer") self.master = master self.options = options diff --git a/Lib/lib-tk/tkFont.py b/Lib/lib-tk/tkFont.py index ce50397bffc..4b4dc671975 100644 --- a/Lib/lib-tk/tkFont.py +++ b/Lib/lib-tk/tkFont.py @@ -79,7 +79,7 @@ class Font: self.delete_font = False # confirm font exists if self.name not in root.tk.call("font", "names"): - raise Tkinter._tkinter.TclError, "named font %s does not already exist" % (self.name,) + raise Tkinter._tkinter.TclError("named font %s does not already exist" % (self.name,)) # if font config info supplied, apply it if font: root.tk.call("font", "configure", self.name, *font) diff --git a/Lib/lib-tk/turtle.py b/Lib/lib-tk/turtle.py index fcde9af4ed4..434579e508a 100644 --- a/Lib/lib-tk/turtle.py +++ b/Lib/lib-tk/turtle.py @@ -231,7 +231,7 @@ class RawPen: >>> turtle.color(0, .5, 0) """ if not args: - raise Error, "no color arguments" + raise Error("no color arguments") if len(args) == 1: color = args[0] if type(color) == type(""): @@ -239,18 +239,18 @@ class RawPen: try: id = self._canvas.create_line(0, 0, 0, 0, fill=color) except Tkinter.TclError: - raise Error, "bad color string: %r" % (color,) + raise Error("bad color string: %r" % (color,)) self._set_color(color) return try: r, g, b = color except: - raise Error, "bad color sequence: %r" % (color,) + raise Error("bad color sequence: %r" % (color,)) else: try: r, g, b = args except: - raise Error, "bad color arguments: %r" % (args,) + raise Error("bad color arguments: %r" % (args,)) assert 0 <= r <= 1 assert 0 <= g <= 1 assert 0 <= b <= 1 @@ -520,12 +520,12 @@ class RawPen: try: x, y = args[0] except: - raise Error, "bad point argument: %r" % (args[0],) + raise Error("bad point argument: %r" % (args[0],)) else: try: x, y = args except: - raise Error, "bad coordinates: %r" % (args[0],) + raise Error("bad coordinates: %r" % (args[0],)) x0, y0 = self._origin self._goto(x0+x, y0-y) @@ -752,25 +752,25 @@ def setup(**geometry): if width >= 0 or width == None: _width = width else: - raise ValueError, "width can not be less than 0" + raise ValueError("width can not be less than 0") height = geometry.get('height',_height) if height >= 0 or height == None: _height = height else: - raise ValueError, "height can not be less than 0" + raise ValueError("height can not be less than 0") startx = geometry.get('startx', _startx) if startx >= 0 or startx == None: _startx = _startx else: - raise ValueError, "startx can not be less than 0" + raise ValueError("startx can not be less than 0") starty = geometry.get('starty', _starty) if starty >= 0 or starty == None: _starty = starty else: - raise ValueError, "startx can not be less than 0" + raise ValueError("startx can not be less than 0") if _root and _width and _height: diff --git a/Lib/locale.py b/Lib/locale.py index dea0ab77052..b8bc5672163 100644 --- a/Lib/locale.py +++ b/Lib/locale.py @@ -72,7 +72,7 @@ except ImportError: Activates/queries locale processing. """ if value not in (None, '', 'C'): - raise Error, '_locale emulation only supports "C" locale' + raise Error('_locale emulation only supports "C" locale') return 'C' def strcoll(a,b): @@ -372,7 +372,7 @@ def _parse_localename(localename): return tuple(code.split('.')[:2]) elif code == 'C': return None, None - raise ValueError, 'unknown locale: %s' % localename + raise ValueError('unknown locale: %s' % localename) def _build_localename(localetuple): @@ -458,7 +458,7 @@ def getlocale(category=LC_CTYPE): """ localename = _setlocale(category) if category == LC_ALL and ';' in localename: - raise TypeError, 'category LC_ALL is not supported' + raise TypeError('category LC_ALL is not supported') return _parse_localename(localename) def setlocale(category, locale=None): diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index ef784222272..e714760a048 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -638,8 +638,8 @@ class Handler(Filterer): This version is intended to be implemented by subclasses and so raises a NotImplementedError. """ - raise NotImplementedError, 'emit must be implemented '\ - 'by Handler subclasses' + raise NotImplementedError('emit must be implemented ' + 'by Handler subclasses') def handle(self, record): """ @@ -834,8 +834,8 @@ def setLoggerClass(klass): """ if klass != Logger: if not issubclass(klass, Logger): - raise TypeError, "logger not derived from logging.Logger: " + \ - klass.__name__ + raise TypeError("logger not derived from logging.Logger: " + + klass.__name__) global _loggerClass _loggerClass = klass @@ -1047,7 +1047,7 @@ class Logger(Filterer): """ if not isinstance(level, int): if raiseExceptions: - raise TypeError, "level must be an integer" + raise TypeError("level must be an integer") else: return if self.isEnabledFor(level): diff --git a/Lib/logging/config.py b/Lib/logging/config.py index 99755e2ec9c..ed14052acb4 100644 --- a/Lib/logging/config.py +++ b/Lib/logging/config.py @@ -246,7 +246,7 @@ def listen(port=DEFAULT_LOGGING_CONFIG_PORT): stopListening(). """ if not thread: - raise NotImplementedError, "listen() needs threading to work" + raise NotImplementedError("listen() needs threading to work") class ConfigStreamHandler(StreamRequestHandler): """ diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index 2279db2bb0a..893fbe64bf2 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -920,7 +920,7 @@ class HTTPHandler(logging.Handler): logging.Handler.__init__(self) method = method.upper() if method not in ["GET", "POST"]: - raise ValueError, "method must be GET or POST" + raise ValueError("method must be GET or POST") self.host = host self.url = url self.method = method diff --git a/Lib/macpath.py b/Lib/macpath.py index f54ffa07d71..5125f6b3ea7 100644 --- a/Lib/macpath.py +++ b/Lib/macpath.py @@ -143,7 +143,7 @@ def normpath(s): i = i - 1 else: # best way to handle this is to raise an exception - raise norm_error, 'Cannot use :: immediately after volume name' + raise norm_error('Cannot use :: immediately after volume name') else: i = i + 1 diff --git a/Lib/macurl2path.py b/Lib/macurl2path.py index b18f2b2713b..0c8b64f6af1 100644 --- a/Lib/macurl2path.py +++ b/Lib/macurl2path.py @@ -15,12 +15,12 @@ def url2pathname(pathname): # tp = urllib.splittype(pathname)[0] if tp and tp != 'file': - raise RuntimeError, 'Cannot convert non-local URL to pathname' + raise RuntimeError('Cannot convert non-local URL to pathname') # Turn starting /// into /, an empty hostname means current host if pathname[:3] == '///': pathname = pathname[2:] elif pathname[:2] == '//': - raise RuntimeError, 'Cannot convert non-local URL to pathname' + raise RuntimeError('Cannot convert non-local URL to pathname') components = pathname.split('/') # Remove . and embedded .. i = 0 @@ -53,7 +53,7 @@ def pathname2url(pathname): """OS-specific conversion from a file system path to a relative URL of the 'file' scheme; not recommended for general use.""" if '/' in pathname: - raise RuntimeError, "Cannot convert pathname containing slashes" + raise RuntimeError("Cannot convert pathname containing slashes") components = pathname.split(':') # Remove empty first and/or last component if components[0] == '': diff --git a/Lib/mhlib.py b/Lib/mhlib.py index c06e1a65664..955862b008e 100644 --- a/Lib/mhlib.py +++ b/Lib/mhlib.py @@ -104,7 +104,7 @@ class MH: if not os.path.isabs(path) and path[0] != '~': path = os.path.join('~', path) path = os.path.expanduser(path) - if not os.path.isdir(path): raise Error, 'MH() path not found' + if not os.path.isdir(path): raise Error('MH() path not found') self.path = path def __repr__(self): @@ -243,7 +243,7 @@ class Folder: self.mh = mh self.name = name if not os.path.isdir(self.getfullname()): - raise Error, 'no folder %s' % name + raise Error('no folder %s' % name) def __repr__(self): """String representation.""" @@ -332,7 +332,7 @@ class Folder: try: return max(seqs['cur']) except (ValueError, KeyError): - raise Error, "no cur message" + raise Error("no cur message") def setcurrent(self, n): """Set the current message.""" @@ -350,7 +350,7 @@ class Folder: all = self.listmessages() # Observed behavior: test for empty folder is done first if not all: - raise Error, "no messages in %s" % self.name + raise Error("no messages in %s" % self.name) # Common case first: all is frequently the default if seq == 'all': return all @@ -361,7 +361,7 @@ class Folder: if tail[:1] in '-+': dir, tail = tail[:1], tail[1:] if not isnumeric(tail): - raise Error, "bad message list %s" % seq + raise Error("bad message list %s" % seq) try: count = int(tail) except (ValueError, OverflowError): @@ -374,10 +374,10 @@ class Folder: if not head in seqs: if not msg: msg = "bad message list %s" % seq - raise Error, msg, sys.exc_info()[2] + raise Error(msg).with_traceback(sys.exc_info()[2]) msgs = seqs[head] if not msgs: - raise Error, "sequence %s empty" % head + raise Error("sequence %s empty" % head) if dir == '-': return msgs[-count:] else: @@ -401,7 +401,7 @@ class Folder: j = bisect(all, end) r = all[i:j] if not r: - raise Error, "bad message list %s" % seq + raise Error("bad message list %s" % seq) return r # Neither X:Y nor X-Y; must be a number or a (pseudo-)sequence try: @@ -411,14 +411,14 @@ class Folder: if not seq in seqs: if not msg: msg = "bad message list %s" % seq - raise Error, msg + raise Error(msg) return seqs[seq] else: if n not in all: if isnumeric(seq): - raise Error, "message %d doesn't exist" % n + raise Error("message %d doesn't exist" % n) else: - raise Error, "no %s message" % seq + raise Error("no %s message" % seq) else: return [n] @@ -441,17 +441,17 @@ class Folder: try: return all[i] except IndexError: - raise Error, "no next message" + raise Error("no next message") if seq == 'prev': n = self.getcurrent() i = bisect(all, n-1) if i == 0: - raise Error, "no prev message" + raise Error("no prev message") try: return all[i-1] except IndexError: - raise Error, "no prev message" - raise Error, None + raise Error("no prev message") + raise Error() def openmessage(self, n): """Open a message -- returns a Message object.""" @@ -478,9 +478,9 @@ class Folder: self.removefromallsequences(deleted) if errors: if len(errors) == 1: - raise os.error, errors[0] + raise os.error(errors[0]) else: - raise os.error, ('multiple errors:', errors) + raise os.error('multiple errors:', errors) def refilemessages(self, list, tofolder, keepsequences=0): """Refile one or more messages -- may raise os.error. @@ -513,9 +513,9 @@ class Folder: self.removefromallsequences(refiled.keys()) if errors: if len(errors) == 1: - raise os.error, errors[0] + raise os.error(errors[0]) else: - raise os.error, ('multiple errors:', errors) + raise os.error('multiple errors:', errors) def _copysequences(self, fromfolder, refileditems): """Helper for refilemessages() to copy sequences.""" @@ -706,10 +706,10 @@ class Message(mimetools.Message): list of SubMessage objects. Each submessage object behaves (almost) as a Message object.""" if self.getmaintype() != 'multipart': - raise Error, 'Content-Type is not multipart/*' + raise Error('Content-Type is not multipart/*') bdry = self.getparam('boundary') if not bdry: - raise Error, 'multipart/* without boundary param' + raise Error('multipart/* without boundary param') self.fp.seek(self.startofbody) mf = multifile.MultiFile(self.fp) mf.push(bdry) @@ -890,7 +890,7 @@ class IntSet: elif len(list) == 2 and list[0] <= list[1]: new.append((list[0], list[1])) else: - raise ValueError, 'bad data passed to IntSet' + raise ValueError('bad data passed to IntSet') self.pairs = self.pairs + new self.normalize() diff --git a/Lib/mimetools.py b/Lib/mimetools.py index 0553989cb45..0112f481f0c 100644 --- a/Lib/mimetools.py +++ b/Lib/mimetools.py @@ -162,8 +162,7 @@ def decode(input, output, encoding): if encoding in decodetab: pipethrough(input, decodetab[encoding], output) else: - raise ValueError, \ - 'unknown Content-Transfer-Encoding: %s' % encoding + raise ValueError('unknown Content-Transfer-Encoding: %s' % encoding) def encode(input, output, encoding): """Encode common content-transfer-encodings (base64, quopri, uuencode).""" @@ -181,8 +180,7 @@ def encode(input, output, encoding): if encoding in encodetab: pipethrough(input, encodetab[encoding], output) else: - raise ValueError, \ - 'unknown Content-Transfer-Encoding: %s' % encoding + raise ValueError('unknown Content-Transfer-Encoding: %s' % encoding) # The following is no longer used for standard encodings diff --git a/Lib/modulefinder.py b/Lib/modulefinder.py index d5328bccd54..a57911c1b2d 100644 --- a/Lib/modulefinder.py +++ b/Lib/modulefinder.py @@ -146,7 +146,7 @@ class ModuleFinder: self.msgout(4, "determine_parent ->", parent) return parent if pname.count(".") < level: - raise ImportError, "relative importpath too deep" + raise ImportError("relative importpath too deep") pname = ".".join(pname.split(".")[:-level]) parent = self.modules[pname] self.msgout(4, "determine_parent ->", parent) @@ -191,7 +191,7 @@ class ModuleFinder: self.msgout(4, "find_head_package ->", (q, tail)) return q, tail self.msgout(4, "raise ImportError: No module named", qname) - raise ImportError, "No module named " + qname + raise ImportError("No module named " + qname) def load_tail(self, q, tail): self.msgin(4, "load_tail", q, tail) @@ -204,7 +204,7 @@ class ModuleFinder: m = self.import_module(head, mname, m) if not m: self.msgout(4, "raise ImportError: No module named", mname) - raise ImportError, "No module named " + mname + raise ImportError("No module named " + mname) self.msgout(4, "load_tail ->", m) return m @@ -220,7 +220,7 @@ class ModuleFinder: subname = "%s.%s" % (m.__name__, sub) submod = self.import_module(sub, subname, m) if not submod: - raise ImportError, "No module named " + subname + raise ImportError("No module named " + subname) def find_all_submodules(self, m): if not m.__path__: @@ -291,7 +291,7 @@ class ModuleFinder: elif type == imp.PY_COMPILED: if fp.read(4) != imp.get_magic(): self.msgout(2, "raise ImportError: Bad magic number", pathname) - raise ImportError, "Bad magic number in %s" % pathname + raise ImportError("Bad magic number in %s" % pathname) fp.read(4) co = marshal.load(fp) else: @@ -470,7 +470,7 @@ class ModuleFinder: fullname = name if fullname in self.excludes: self.msgout(3, "find_module -> Excluded", fullname) - raise ImportError, name + raise ImportError(name) if path is None: if name in sys.builtin_module_names: diff --git a/Lib/msilib/__init__.py b/Lib/msilib/__init__.py index e2ea8145fdc..9595413b62b 100644 --- a/Lib/msilib/__init__.py +++ b/Lib/msilib/__init__.py @@ -89,7 +89,7 @@ def change_sequence(seq, action, seqno=_Unspecified, cond = _Unspecified): seqno = seq[i][2] seq[i] = (action, cond, seqno) return - raise ValueError, "Action not found in sequence" + raise ValueError("Action not found in sequence") def add_data(db, table, values): v = db.OpenView("SELECT * FROM `%s`" % table) @@ -108,7 +108,7 @@ def add_data(db, table, values): elif isinstance(field, Binary): r.SetStream(i+1, field.name) else: - raise TypeError, "Unsupported type %s" % field.__class__.__name__ + raise TypeError("Unsupported type %s" % field.__class__.__name__) try: v.Modify(MSIMODIFY_INSERT, r) except Exception as e: diff --git a/Lib/multifile.py b/Lib/multifile.py index e82a3fdeafb..c94d06bb361 100644 --- a/Lib/multifile.py +++ b/Lib/multifile.py @@ -60,10 +60,10 @@ class MultiFile: if self.level > 0: pos = pos + self.lastpos else: - raise Error, "can't use whence=2 yet" + raise Error("can't use whence=2 yet") if not 0 <= pos <= here or \ self.level > 0 and pos > self.lastpos: - raise Error, 'bad MultiFile.seek() call' + raise Error('bad MultiFile.seek() call') self.fp.seek(pos + self.start) self.level = 0 self.last = 0 @@ -77,7 +77,7 @@ class MultiFile: self.level = len(self.stack) self.last = (self.level > 0) if self.last: - raise Error, 'sudden EOF in MultiFile.readline()' + raise Error('sudden EOF in MultiFile.readline()') return '' assert self.level == 0 # Fast check to see if this is just data @@ -102,7 +102,7 @@ class MultiFile: self.lastpos = self.tell() - len(line) self.level = i+1 if self.level > 1: - raise Error,'Missing endmarker in MultiFile.readline()' + raise Error('Missing endmarker in MultiFile.readline()') return '' def readlines(self): @@ -128,7 +128,7 @@ class MultiFile: def push(self, sep): if self.level > 0: - raise Error, 'bad MultiFile.push() call' + raise Error('bad MultiFile.push() call') self.stack.append(sep) if self.seekable: self.posstack.append(self.start) @@ -136,7 +136,7 @@ class MultiFile: def pop(self): if self.stack == []: - raise Error, 'bad MultiFile.pop() call' + raise Error('bad MultiFile.pop() call') if self.level <= 1: self.last = 0 else: diff --git a/Lib/nturl2path.py b/Lib/nturl2path.py index 31064044e73..9dde29966b1 100644 --- a/Lib/nturl2path.py +++ b/Lib/nturl2path.py @@ -23,7 +23,7 @@ def url2pathname(url): comp = url.split('|') if len(comp) != 2 or comp[0][-1] not in string.ascii_letters: error = 'Bad URL: ' + url - raise IOError, error + raise IOError(error) drive = comp[0][-1].upper() components = comp[1].split('/') path = drive + ':' @@ -52,7 +52,7 @@ def pathname2url(p): comp = p.split(':') if len(comp) != 2 or len(comp[0]) > 1: error = 'Bad path: ' + p - raise IOError, error + raise IOError(error) drive = urllib.quote(comp[0].upper()) components = comp[1].split('\\') diff --git a/Lib/optparse.py b/Lib/optparse.py index bae10500d34..b3de41157bf 100644 --- a/Lib/optparse.py +++ b/Lib/optparse.py @@ -239,10 +239,10 @@ class HelpFormatter: self.level -= 1 def format_usage(self, usage): - raise NotImplementedError, "subclasses must implement" + raise NotImplementedError("subclasses must implement") def format_heading(self, heading): - raise NotImplementedError, "subclasses must implement" + raise NotImplementedError("subclasses must implement") def _format_text(self, text): """ @@ -805,7 +805,7 @@ class Option: parser.print_version() parser.exit() else: - raise RuntimeError, "unknown action %r" % self.action + raise RuntimeError("unknown action %r" % self.action) return 1 @@ -865,7 +865,7 @@ class Values: elif mode == "loose": self._update_loose(dict) else: - raise ValueError, "invalid update mode: %r" % mode + raise ValueError("invalid update mode: %r" % mode) def read_module(self, modname, mode="careful"): __import__(modname) @@ -944,7 +944,7 @@ class OptionContainer: def set_conflict_handler(self, handler): if handler not in ("error", "resolve"): - raise ValueError, "invalid conflict_resolution value %r" % handler + raise ValueError("invalid conflict_resolution value %r" % handler) self.conflict_handler = handler def set_description(self, description): @@ -999,9 +999,9 @@ class OptionContainer: elif len(args) == 1 and not kwargs: option = args[0] if not isinstance(option, Option): - raise TypeError, "not an Option instance: %r" % option + raise TypeError("not an Option instance: %r" % option) else: - raise TypeError, "invalid arguments" + raise TypeError("invalid arguments") self._check_conflict(option) @@ -1310,11 +1310,11 @@ class OptionParser (OptionContainer): elif len(args) == 1 and not kwargs: group = args[0] if not isinstance(group, OptionGroup): - raise TypeError, "not an OptionGroup instance: %r" % group + raise TypeError("not an OptionGroup instance: %r" % group) if group.parser is not self: - raise ValueError, "invalid OptionGroup (wrong parser)" + raise ValueError("invalid OptionGroup (wrong parser)") else: - raise TypeError, "invalid arguments" + raise TypeError("invalid arguments") self.option_groups.append(group) return group diff --git a/Lib/pipes.py b/Lib/pipes.py index 07ee60c2757..dc18404f66d 100644 --- a/Lib/pipes.py +++ b/Lib/pipes.py @@ -111,45 +111,33 @@ class Template: def append(self, cmd, kind): """t.append(cmd, kind) adds a new step at the end.""" if type(cmd) is not type(''): - raise TypeError, \ - 'Template.append: cmd must be a string' + raise TypeError('Template.append: cmd must be a string') if kind not in stepkinds: - raise ValueError, \ - 'Template.append: bad kind %r' % (kind,) + raise ValueError('Template.append: bad kind %r' % (kind,)) if kind == SOURCE: - raise ValueError, \ - 'Template.append: SOURCE can only be prepended' + raise ValueError('Template.append: SOURCE can only be prepended') if self.steps and self.steps[-1][1] == SINK: - raise ValueError, \ - 'Template.append: already ends with SINK' + raise ValueError('Template.append: already ends with SINK') if kind[0] == 'f' and not re.search(r'\$IN\b', cmd): - raise ValueError, \ - 'Template.append: missing $IN in cmd' + raise ValueError('Template.append: missing $IN in cmd') if kind[1] == 'f' and not re.search(r'\$OUT\b', cmd): - raise ValueError, \ - 'Template.append: missing $OUT in cmd' + raise ValueError('Template.append: missing $OUT in cmd') self.steps.append((cmd, kind)) def prepend(self, cmd, kind): """t.prepend(cmd, kind) adds a new step at the front.""" if type(cmd) is not type(''): - raise TypeError, \ - 'Template.prepend: cmd must be a string' + raise TypeError('Template.prepend: cmd must be a string') if kind not in stepkinds: - raise ValueError, \ - 'Template.prepend: bad kind %r' % (kind,) + raise ValueError('Template.prepend: bad kind %r' % (kind,)) if kind == SINK: - raise ValueError, \ - 'Template.prepend: SINK can only be appended' + raise ValueError('Template.prepend: SINK can only be appended') if self.steps and self.steps[0][1] == SOURCE: - raise ValueError, \ - 'Template.prepend: already begins with SOURCE' + raise ValueError('Template.prepend: already begins with SOURCE') if kind[0] == 'f' and not re.search(r'\$IN\b', cmd): - raise ValueError, \ - 'Template.prepend: missing $IN in cmd' + raise ValueError('Template.prepend: missing $IN in cmd') if kind[1] == 'f' and not re.search(r'\$OUT\b', cmd): - raise ValueError, \ - 'Template.prepend: missing $OUT in cmd' + raise ValueError('Template.prepend: missing $OUT in cmd') self.steps.insert(0, (cmd, kind)) def open(self, file, rw): @@ -159,8 +147,8 @@ class Template: return self.open_r(file) if rw == 'w': return self.open_w(file) - raise ValueError, \ - 'Template.open: rw must be \'r\' or \'w\', not %r' % (rw,) + raise ValueError('Template.open: rw must be \'r\' or \'w\', not %r' + % (rw,)) def open_r(self, file): """t.open_r(file) and t.open_w(file) implement @@ -168,8 +156,7 @@ class Template: if not self.steps: return open(file, 'r') if self.steps[-1][1] == SINK: - raise ValueError, \ - 'Template.open_r: pipeline ends width SINK' + raise ValueError('Template.open_r: pipeline ends width SINK') cmd = self.makepipeline(file, '') return os.popen(cmd, 'r') @@ -177,8 +164,7 @@ class Template: if not self.steps: return open(file, 'w') if self.steps[0][1] == SOURCE: - raise ValueError, \ - 'Template.open_w: pipeline begins with SOURCE' + raise ValueError('Template.open_w: pipeline begins with SOURCE') cmd = self.makepipeline('', file) return os.popen(cmd, 'w') diff --git a/Lib/platform.py b/Lib/platform.py index 25daadd06ca..7b4258ffed6 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -378,7 +378,7 @@ class _popen: def __init__(self,cmd,mode='r',bufsize=None): if mode != 'r': - raise ValueError,'popen()-emulation only supports read mode' + raise ValueError('popen()-emulation only supports read mode') import tempfile self.tmpfile = tmpfile = tempfile.mktemp() os.system(cmd + ' > %s' % tmpfile) @@ -490,7 +490,7 @@ def _syscmd_ver(system='', release='', version='', pipe = popen(cmd) info = pipe.read() if pipe.close(): - raise os.error,'command failed' + raise os.error('command failed') # XXX How can I supress shell errors from being written # to stderr ? except os.error as why: diff --git a/Lib/poplib.py b/Lib/poplib.py index 4e2c03b5296..ef60c7412a2 100644 --- a/Lib/poplib.py +++ b/Lib/poplib.py @@ -340,7 +340,7 @@ class POP3_SSL(POP3): continue break if not self.sock: - raise socket.error, msg + raise socket.error(msg) self.file = self.sock.makefile('rb') self.sslobj = socket.ssl(self.sock, self.keyfile, self.certfile) self._debugging = 0 diff --git a/Lib/pstats.py b/Lib/pstats.py index 59c84fe9834..cc0a7ac4334 100644 --- a/Lib/pstats.py +++ b/Lib/pstats.py @@ -83,7 +83,7 @@ class Stats: keys = kwds.keys() keys.sort() extras = ", ".join(["%s=%s" % (k, kwds[k]) for k in keys]) - raise ValueError, "unrecognized keyword args: %s" % extras + raise ValueError("unrecognized keyword args: %s" % extras) if not len(args): arg = None else: @@ -131,8 +131,8 @@ class Stats: self.stats = arg.stats arg.stats = {} if not self.stats: - raise TypeError, "Cannot create or construct a %r object from '%r''" % ( - self.__class__, arg) + raise TypeError("Cannot create or construct a %r object from '%r''" + % (self.__class__, arg)) return def get_top_level_stats(self): diff --git a/Lib/pty.py b/Lib/pty.py index 5d588e49a31..487382725e2 100644 --- a/Lib/pty.py +++ b/Lib/pty.py @@ -57,7 +57,7 @@ def _open_terminal(): try: tty_name, master_fd = sgi._getpty(os.O_RDWR, 0o666, 0) except IOError as msg: - raise os.error, msg + raise os.error(msg) return master_fd, tty_name for x in 'pqrstuvwxyzPQRST': for y in '0123456789abcdef': @@ -67,7 +67,7 @@ def _open_terminal(): except os.error: continue return (fd, '/dev/tty' + x + y) - raise os.error, 'out of pty devices' + raise os.error('out of pty devices') def slave_open(tty_name): """slave_open(tty_name) -> slave_fd diff --git a/Lib/pydoc.py b/Lib/pydoc.py index eea9853ad65..3cffa065cfb 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -328,7 +328,7 @@ class Doc: """Raise an exception for unimplemented types.""" message = "don't know how to document object%s of type %s" % ( name and ' ' + repr(name), type(object).__name__) - raise TypeError, message + raise TypeError(message) docmodule = docclass = docroutine = docother = docproperty = docdata = fail @@ -1463,7 +1463,7 @@ def resolve(thing, forceload=0): if isinstance(thing, str): object = locate(thing, forceload) if not object: - raise ImportError, 'no Python documentation found for %r' % thing + raise ImportError('no Python documentation found for %r' % thing) return object, thing else: return thing, getattr(thing, '__name__', None) diff --git a/Lib/random.py b/Lib/random.py index 8a471785667..e2bfcfd3203 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -157,18 +157,18 @@ class Random(_random.Random): # common case while still doing adequate error checking. istart = int(start) if istart != start: - raise ValueError, "non-integer arg 1 for randrange()" + raise ValueError("non-integer arg 1 for randrange()") if stop is default: if istart > 0: if istart >= maxwidth: return self._randbelow(istart) return int(self.random() * istart) - raise ValueError, "empty range for randrange()" + raise ValueError("empty range for randrange()") # stop argument supplied. istop = int(stop) if istop != stop: - raise ValueError, "non-integer stop for randrange()" + raise ValueError("non-integer stop for randrange()") width = istop - istart if step == 1 and width > 0: # Note that @@ -188,21 +188,21 @@ class Random(_random.Random): return int(istart + self._randbelow(width)) return int(istart + int(self.random()*width)) if step == 1: - raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width) + raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width)) # Non-unit step argument supplied. istep = int(step) if istep != step: - raise ValueError, "non-integer step for randrange()" + raise ValueError("non-integer step for randrange()") if istep > 0: n = (width + istep - 1) // istep elif istep < 0: n = (width + istep + 1) // istep else: - raise ValueError, "zero step for randrange()" + raise ValueError("zero step for randrange()") if n <= 0: - raise ValueError, "empty range for randrange()" + raise ValueError("empty range for randrange()") if n >= maxwidth: return istart + istep*self._randbelow(n) @@ -300,7 +300,7 @@ class Random(_random.Random): n = len(population) if not 0 <= k <= n: - raise ValueError, "sample larger than population" + raise ValueError("sample larger than population") random = self.random _int = int result = [None] * k @@ -459,7 +459,7 @@ class Random(_random.Random): # Warning: a few older sources define the gamma distribution in terms # of alpha > -1.0 if alpha <= 0.0 or beta <= 0.0: - raise ValueError, 'gammavariate: alpha and beta must be > 0.0' + raise ValueError('gammavariate: alpha and beta must be > 0.0') random = self.random if alpha > 1.0: diff --git a/Lib/re.py b/Lib/re.py index 534ab237a32..4c5622b968d 100644 --- a/Lib/re.py +++ b/Lib/re.py @@ -226,11 +226,8 @@ def _compile(*key): if isinstance(pattern, _pattern_type): return pattern if not sre_compile.isstring(pattern): - raise TypeError, "first argument must be string or compiled pattern" - try: - p = sre_compile.compile(pattern, flags) - except error as v: - raise error, v # invalid expression + raise TypeError("first argument must be string or compiled pattern") + p = sre_compile.compile(pattern, flags) if len(_cache) >= _MAXCACHE: _cache.clear() _cache[cachekey] = p @@ -242,10 +239,7 @@ def _compile_repl(*key): if p is not None: return p repl, pattern = key - try: - p = sre_parse.parse_template(repl, pattern) - except error as v: - raise error, v # invalid expression + p = sre_parse.parse_template(repl, pattern) if len(_cache_repl) >= _MAXCACHE: _cache_repl.clear() _cache_repl[key] = p diff --git a/Lib/rfc822.py b/Lib/rfc822.py index c4b7d373b0c..1ad2d010d62 100644 --- a/Lib/rfc822.py +++ b/Lib/rfc822.py @@ -112,7 +112,7 @@ class Message: def rewindbody(self): """Rewind the file to the start of the body (if seekable).""" if not self.seekable: - raise IOError, "unseekable file" + raise IOError("unseekable file") self.fp.seek(self.startofbody) def readheaders(self): diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py index 4d11aecb046..1c5750baa02 100644 --- a/Lib/rlcompleter.py +++ b/Lib/rlcompleter.py @@ -55,7 +55,7 @@ class Completer: """ if namespace and not isinstance(namespace, dict): - raise TypeError,'namespace must be a dictionary' + raise TypeError('namespace must be a dictionary') # Don't bind to namespace quite yet, but flag whether the user wants a # specific namespace or to use __main__.__dict__. This will allow us diff --git a/Lib/shlex.py b/Lib/shlex.py index f034ab06294..70feb892afd 100644 --- a/Lib/shlex.py +++ b/Lib/shlex.py @@ -166,7 +166,7 @@ class shlex: if self.debug >= 2: print("shlex: I see EOF in quotes state") # XXX what error should be raised here? - raise ValueError, "No closing quotation" + raise ValueError("No closing quotation") if nextchar == self.state: if not self.posix: self.token = self.token + nextchar @@ -185,7 +185,7 @@ class shlex: if self.debug >= 2: print("shlex: I see EOF in escape state") # XXX what error should be raised here? - raise ValueError, "No escaped character" + raise ValueError("No escaped character") # In posix shells, only the quote itself or the escape # character may be escaped within quotes. if escapedstate in self.quotes and \ diff --git a/Lib/shutil.py b/Lib/shutil.py index 5ed72b3a9a1..f3d6fa9c508 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -38,7 +38,7 @@ def _samefile(src, dst): def copyfile(src, dst): """Copy data from src to dst""" if _samefile(src, dst): - raise Error, "`%s` and `%s` are the same file" % (src, dst) + raise Error("`%s` and `%s` are the same file" % (src, dst)) fsrc = None fdst = None @@ -137,7 +137,7 @@ def copytree(src, dst, symlinks=False): except OSError as why: errors.extend((src, dst, str(why))) if errors: - raise Error, errors + raise Error(errors) def rmtree(path, ignore_errors=False, onerror=None): """Recursively delete a directory tree. @@ -194,7 +194,7 @@ def move(src, dst): except OSError: if os.path.isdir(src): if destinsrc(src, dst): - raise Error, "Cannot move a directory '%s' into itself '%s'." % (src, dst) + raise Error("Cannot move a directory '%s' into itself '%s'." % (src, dst)) copytree(src, dst, symlinks=True) rmtree(src) else: diff --git a/Lib/sre_compile.py b/Lib/sre_compile.py index 3c9035fcc68..505af922a46 100644 --- a/Lib/sre_compile.py +++ b/Lib/sre_compile.py @@ -69,7 +69,7 @@ def _compile(code, pattern, flags): emit(OPCODES[ANY]) elif op in REPEATING_CODES: if flags & SRE_FLAG_TEMPLATE: - raise error, "internal: unsupported template operator" + raise error("internal: unsupported template operator") emit(OPCODES[REPEAT]) skip = _len(code); emit(0) emit(av[0]) @@ -118,7 +118,7 @@ def _compile(code, pattern, flags): else: lo, hi = av[1].getwidth() if lo != hi: - raise error, "look-behind requires fixed-width pattern" + raise error("look-behind requires fixed-width pattern") emit(lo) # look behind _compile(code, av[1], flags) emit(OPCODES[SUCCESS]) @@ -179,7 +179,7 @@ def _compile(code, pattern, flags): else: code[skipyes] = _len(code) - skipyes + 1 else: - raise ValueError, ("unsupported operand type", op) + raise ValueError("unsupported operand type", op) def _compile_charset(charset, flags, code, fixup=None): # compile charset subprogram @@ -207,7 +207,7 @@ def _compile_charset(charset, flags, code, fixup=None): else: emit(CHCODES[av]) else: - raise error, "internal: unsupported set operator" + raise error("internal: unsupported set operator") emit(OPCODES[FAILURE]) def _optimize_charset(charset, fixup): @@ -362,7 +362,7 @@ def _simple(av): # check if av is a "simple" operator lo, hi = av[2].getwidth() if lo == 0 and hi == MAXREPEAT: - raise error, "nothing to repeat" + raise error("nothing to repeat") return lo == hi == 1 and av[2][0][0] != SUBPATTERN def _compile_info(code, pattern, flags): diff --git a/Lib/sre_parse.py b/Lib/sre_parse.py index 99f33fc4e93..7d5c0d61540 100644 --- a/Lib/sre_parse.py +++ b/Lib/sre_parse.py @@ -81,8 +81,8 @@ class Pattern: if name is not None: ogid = self.groupdict.get(name, None) if ogid is not None: - raise error, ("redefinition of group name %s as group %d; " - "was group %d" % (repr(name), gid, ogid)) + raise error("redefinition of group name %s as group %d; " + "was group %d" % (repr(name), gid, ogid)) self.groupdict[name] = gid self.open.append(gid) return gid @@ -196,7 +196,7 @@ class Tokenizer: try: c = self.string[self.index + 1] except IndexError: - raise error, "bogus escape (end of line)" + raise error("bogus escape (end of line)") char = char + c self.index = self.index + len(char) self.next = char @@ -246,7 +246,7 @@ def _class_escape(source, escape): escape = escape + source.get() escape = escape[2:] if len(escape) != 2: - raise error, "bogus escape: %s" % repr("\\" + escape) + raise error("bogus escape: %s" % repr("\\" + escape)) return LITERAL, int(escape, 16) & 0xff elif c in OCTDIGITS: # octal escape (up to three digits) @@ -255,12 +255,12 @@ def _class_escape(source, escape): escape = escape[1:] return LITERAL, int(escape, 8) & 0xff elif c in DIGITS: - raise error, "bogus escape: %s" % repr(escape) + raise error("bogus escape: %s" % repr(escape)) if len(escape) == 2: return LITERAL, ord(escape[1]) except ValueError: pass - raise error, "bogus escape: %s" % repr(escape) + raise error("bogus escape: %s" % repr(escape)) def _escape(source, escape, state): # handle escape code in expression @@ -297,14 +297,14 @@ def _escape(source, escape, state): group = int(escape[1:]) if group < state.groups: if not state.checkgroup(group): - raise error, "cannot refer to open group" + raise error("cannot refer to open group") return GROUPREF, group raise ValueError if len(escape) == 2: return LITERAL, ord(escape[1]) except ValueError: pass - raise error, "bogus escape: %s" % repr(escape) + raise error("bogus escape: %s" % repr(escape)) def _parse_sub(source, state, nested=1): # parse an alternation: a|b|c @@ -321,7 +321,7 @@ def _parse_sub(source, state, nested=1): if not source.next or sourcematch(")", 0): break else: - raise error, "pattern not properly closed" + raise error("pattern not properly closed") if len(items) == 1: return items[0] @@ -370,11 +370,11 @@ def _parse_sub_cond(source, state, condgroup): if source.match("|"): item_no = _parse(source, state) if source.match("|"): - raise error, "conditional backref with more than two branches" + raise error("conditional backref with more than two branches") else: item_no = None if source.next and not source.match(")", 0): - raise error, "pattern not properly closed" + raise error("pattern not properly closed") subpattern = SubPattern(state) subpattern.append((GROUPREF_EXISTS, (condgroup, item_yes, item_no))) return subpattern @@ -439,7 +439,7 @@ def _parse(source, state): elif this: code1 = LITERAL, ord(this) else: - raise error, "unexpected end of regular expression" + raise error("unexpected end of regular expression") if sourcematch("-"): # potential range this = sourceget() @@ -455,14 +455,14 @@ def _parse(source, state): else: code2 = LITERAL, ord(this) if code1[0] != LITERAL or code2[0] != LITERAL: - raise error, "bad character range" + raise error("bad character range") lo = code1[1] hi = code2[1] if hi < lo: - raise error, "bad character range" + raise error("bad character range") setappend((RANGE, (lo, hi))) else: - raise error, "unexpected end of regular expression" + raise error("unexpected end of regular expression") else: if code1[0] is IN: code1 = code1[1][0] @@ -509,18 +509,18 @@ def _parse(source, state): if hi: max = int(hi) if max < min: - raise error, "bad repeat interval" + raise error("bad repeat interval") else: - raise error, "not supported" + raise error("not supported") # figure out which item to repeat if subpattern: item = subpattern[-1:] else: item = None if not item or (_len(item) == 1 and item[0][0] == AT): - raise error, "nothing to repeat" + raise error("nothing to repeat") if item[0][0] in REPEATCODES: - raise error, "multiple repeat" + raise error("multiple repeat") if sourcematch("?"): subpattern[-1] = (MIN_REPEAT, (min, max, item)) else: @@ -544,35 +544,35 @@ def _parse(source, state): while 1: char = sourceget() if char is None: - raise error, "unterminated name" + raise error("unterminated name") if char == ">": break name = name + char group = 1 if not isname(name): - raise error, "bad character in group name" + raise error("bad character in group name") elif sourcematch("="): # named backreference name = "" while 1: char = sourceget() if char is None: - raise error, "unterminated name" + raise error("unterminated name") if char == ")": break name = name + char if not isname(name): - raise error, "bad character in group name" + raise error("bad character in group name") gid = state.groupdict.get(name) if gid is None: - raise error, "unknown group name" + raise error("unknown group name") subpatternappend((GROUPREF, gid)) continue else: char = sourceget() if char is None: - raise error, "unexpected end of pattern" - raise error, "unknown specifier: ?P%s" % char + raise error("unexpected end of pattern") + raise error("unknown specifier: ?P%s" % char) elif sourcematch(":"): # non-capturing group group = 2 @@ -583,7 +583,7 @@ def _parse(source, state): break sourceget() if not sourcematch(")"): - raise error, "unbalanced parenthesis" + raise error("unbalanced parenthesis") continue elif source.next in ASSERTCHARS: # lookahead assertions @@ -591,12 +591,12 @@ def _parse(source, state): dir = 1 if char == "<": if source.next not in LOOKBEHINDASSERTCHARS: - raise error, "syntax error" + raise error("syntax error") dir = -1 # lookbehind char = sourceget() p = _parse_sub(source, state) if not sourcematch(")"): - raise error, "unbalanced parenthesis" + raise error("unbalanced parenthesis") if char == "=": subpatternappend((ASSERT, (dir, p))) else: @@ -608,7 +608,7 @@ def _parse(source, state): while 1: char = sourceget() if char is None: - raise error, "unterminated name" + raise error("unterminated name") if char == ")": break condname = condname + char @@ -616,16 +616,16 @@ def _parse(source, state): if isname(condname): condgroup = state.groupdict.get(condname) if condgroup is None: - raise error, "unknown group name" + raise error("unknown group name") else: try: condgroup = int(condname) except ValueError: - raise error, "bad character in group name" + raise error("bad character in group name") else: # flags if not source.next in FLAGS: - raise error, "unexpected end of pattern" + raise error("unexpected end of pattern") while source.next in FLAGS: state.flags = state.flags | FLAGS[sourceget()] if group: @@ -640,7 +640,7 @@ def _parse(source, state): else: p = _parse_sub(source, state) if not sourcematch(")"): - raise error, "unbalanced parenthesis" + raise error("unbalanced parenthesis") if group is not None: state.closegroup(group) subpatternappend((SUBPATTERN, (group, p))) @@ -648,10 +648,10 @@ def _parse(source, state): while 1: char = sourceget() if char is None: - raise error, "unexpected end of pattern" + raise error("unexpected end of pattern") if char == ")": break - raise error, "unknown extension" + raise error("unknown extension") elif this == "^": subpatternappend((AT, AT_BEGINNING)) @@ -664,7 +664,7 @@ def _parse(source, state): subpatternappend(code) else: - raise error, "parser error" + raise error("parser error") return subpattern @@ -682,9 +682,9 @@ def parse(str, flags=0, pattern=None): tail = source.get() if tail == ")": - raise error, "unbalanced parenthesis" + raise error("unbalanced parenthesis") elif tail: - raise error, "bogus characters at end of regular expression" + raise error("bogus characters at end of regular expression") if flags & SRE_FLAG_DEBUG: p.dump() @@ -726,23 +726,23 @@ def parse_template(source, pattern): while 1: char = sget() if char is None: - raise error, "unterminated group name" + raise error("unterminated group name") if char == ">": break name = name + char if not name: - raise error, "bad group name" + raise error("bad group name") try: index = int(name) if index < 0: - raise error, "negative group number" + raise error("negative group number") except ValueError: if not isname(name): - raise error, "bad character in group name" + raise error("bad character in group name") try: index = pattern.groupindex[name] except KeyError: - raise IndexError, "unknown group name" + raise IndexError("unknown group name") a((MARK, index)) elif c == "0": if s.next in OCTDIGITS: @@ -792,7 +792,7 @@ def expand_template(template, match): for index, group in groups: literals[index] = s = g(group) if s is None: - raise error, "unmatched group" + raise error("unmatched group") except IndexError: - raise error, "invalid group reference" + raise error("invalid group reference") return sep.join(literals) diff --git a/Lib/string.py b/Lib/string.py index de364de56b5..ad2146c6da0 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -55,7 +55,7 @@ def maketrans(fromstr, tostr): """ if len(fromstr) != len(tostr): - raise ValueError, "maketrans arguments must have same length" + raise ValueError("maketrans arguments must have same length") global _idmapL if not _idmapL: _idmapL = list(_idmap) diff --git a/Lib/sunau.py b/Lib/sunau.py index 648506cbc69..f2555025d9c 100644 --- a/Lib/sunau.py +++ b/Lib/sunau.py @@ -166,18 +166,18 @@ class Au_read: self._soundpos = 0 magic = int(_read_u32(file)) if magic != AUDIO_FILE_MAGIC: - raise Error, 'bad magic number' + raise Error('bad magic number') self._hdr_size = int(_read_u32(file)) if self._hdr_size < 24: - raise Error, 'header size too small' + raise Error('header size too small') if self._hdr_size > 100: - raise Error, 'header size ridiculously large' + raise Error('header size ridiculously large') self._data_size = _read_u32(file) if self._data_size != AUDIO_UNKNOWN_SIZE: self._data_size = int(self._data_size) self._encoding = int(_read_u32(file)) if self._encoding not in _simple_encodings: - raise Error, 'encoding not (yet) supported' + raise Error('encoding not (yet) supported') if self._encoding in (AUDIO_FILE_ENCODING_MULAW_8, AUDIO_FILE_ENCODING_ALAW_8): self._sampwidth = 2 @@ -191,7 +191,7 @@ class Au_read: elif self._encoding == AUDIO_FILE_ENCODING_LINEAR_32: self._framesize = self._sampwidth = 4 else: - raise Error, 'unknown encoding' + raise Error('unknown encoding') self._framerate = int(_read_u32(file)) self._nchannels = int(_read_u32(file)) self._framesize = self._framesize * self._nchannels @@ -248,7 +248,7 @@ class Au_read: return None def getmark(self, id): - raise Error, 'no marks' + raise Error('no marks') def readframes(self, nframes): if self._encoding in _simple_encodings: @@ -271,7 +271,7 @@ class Au_read: def setpos(self, pos): if pos < 0 or pos > self.getnframes(): - raise Error, 'position not in range' + raise Error('position not in range') self._file.seek(pos * self._framesize + self._hdr_size) self._soundpos = pos @@ -305,43 +305,43 @@ class Au_write: def setnchannels(self, nchannels): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if nchannels not in (1, 2, 4): - raise Error, 'only 1, 2, or 4 channels supported' + raise Error('only 1, 2, or 4 channels supported') self._nchannels = nchannels def getnchannels(self): if not self._nchannels: - raise Error, 'number of channels not set' + raise Error('number of channels not set') return self._nchannels def setsampwidth(self, sampwidth): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if sampwidth not in (1, 2, 4): - raise Error, 'bad sample width' + raise Error('bad sample width') self._sampwidth = sampwidth def getsampwidth(self): if not self._framerate: - raise Error, 'sample width not specified' + raise Error('sample width not specified') return self._sampwidth def setframerate(self, framerate): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') self._framerate = framerate def getframerate(self): if not self._framerate: - raise Error, 'frame rate not set' + raise Error('frame rate not set') return self._framerate def setnframes(self, nframes): if self._nframeswritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if nframes < 0: - raise Error, '# of frames cannot be negative' + raise Error('# of frames cannot be negative') self._nframes = nframes def getnframes(self): @@ -351,7 +351,7 @@ class Au_write: if type in ('NONE', 'ULAW'): self._comptype = type else: - raise Error, 'unknown compression type' + raise Error('unknown compression type') def getcomptype(self): return self._comptype @@ -411,11 +411,11 @@ class Au_write: def _ensure_header_written(self): if not self._nframeswritten: if not self._nchannels: - raise Error, '# of channels not specified' + raise Error('# of channels not specified') if not self._sampwidth: - raise Error, 'sample width not specified' + raise Error('sample width not specified') if not self._framerate: - raise Error, 'frame rate not specified' + raise Error('frame rate not specified') self._write_header() def _write_header(self): @@ -430,12 +430,12 @@ class Au_write: encoding = AUDIO_FILE_ENCODING_LINEAR_32 self._framesize = 4 else: - raise Error, 'internal error' + raise Error('internal error') elif self._comptype == 'ULAW': encoding = AUDIO_FILE_ENCODING_MULAW_8 self._framesize = 1 else: - raise Error, 'internal error' + raise Error('internal error') self._framesize = self._framesize * self._nchannels _write_u32(self._file, AUDIO_FILE_MAGIC) header_size = 25 + len(self._info) @@ -470,6 +470,6 @@ def open(f, mode=None): elif mode in ('w', 'wb'): return Au_write(f) else: - raise Error, "mode must be 'r', 'rb', 'w', or 'wb'" + raise Error("mode must be 'r', 'rb', 'w', or 'wb'") openfp = open diff --git a/Lib/sunaudio.py b/Lib/sunaudio.py index ab4a8fa7e6f..6c1bba13258 100644 --- a/Lib/sunaudio.py +++ b/Lib/sunaudio.py @@ -14,7 +14,7 @@ def get_long_be(s): def gethdr(fp): """Read a sound header from an open file.""" if fp.read(4) != MAGIC: - raise error, 'gethdr: bad magic word' + raise error('gethdr: bad magic word') hdr_size = get_long_be(fp.read(4)) data_size = get_long_be(fp.read(4)) encoding = get_long_be(fp.read(4)) @@ -22,7 +22,7 @@ def gethdr(fp): channels = get_long_be(fp.read(4)) excess = hdr_size - 24 if excess < 0: - raise error, 'gethdr: bad hdr_size' + raise error('gethdr: bad hdr_size') if excess > 0: info = fp.read(excess) else: diff --git a/Lib/symtable.py b/Lib/symtable.py index e3c5b52ced1..089c8dcbc03 100644 --- a/Lib/symtable.py +++ b/Lib/symtable.py @@ -240,7 +240,7 @@ class Symbol: Raises ValueError if the name is bound to multiple namespaces. """ if len(self.__namespaces) != 1: - raise ValueError, "name is bound to multiple namespaces" + raise ValueError("name is bound to multiple namespaces") return self.__namespaces[0] if __name__ == "__main__": diff --git a/Lib/tarfile.py b/Lib/tarfile.py index ffe711a1ab9..a840a1a7fc2 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -57,7 +57,7 @@ if sys.platform == 'mac': # handling. In many places it is assumed a simple substitution of / by the # local os.path.sep is good enough to convert pathnames, but this does not # work with the mac rooted:path:name versus :nonrooted:path:name syntax - raise ImportError, "tarfile does not work for platform==mac" + raise ImportError("tarfile does not work for platform==mac") try: import grp, pwd diff --git a/Lib/telnetlib.py b/Lib/telnetlib.py index 1040e3cab30..db372000d3a 100644 --- a/Lib/telnetlib.py +++ b/Lib/telnetlib.py @@ -394,7 +394,7 @@ class Telnet: buf = self.cookedq self.cookedq = '' if not buf and self.eof and not self.rawq: - raise EOFError, 'telnet connection closed' + raise EOFError('telnet connection closed') return buf def read_sb_data(self): diff --git a/Lib/tempfile.py b/Lib/tempfile.py index b6b3b9650c5..ae2b77ff431 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -204,8 +204,8 @@ def _get_default_tempdir(): if e[0] != _errno.EEXIST: break # no point trying more names in this directory pass - raise IOError, (_errno.ENOENT, - ("No usable temporary directory found in %s" % dirlist)) + raise IOError(_errno.ENOENT, + "No usable temporary directory found in %s" % dirlist) _name_sequence = None @@ -240,7 +240,7 @@ def _mkstemp_inner(dir, pre, suf, flags): continue # try again raise - raise IOError, (_errno.EEXIST, "No usable temporary file name found") + raise IOError(_errno.EEXIST, "No usable temporary file name found") # User visible interfaces. @@ -331,7 +331,7 @@ def mkdtemp(suffix="", prefix=template, dir=None): continue # try again raise - raise IOError, (_errno.EEXIST, "No usable temporary directory name found") + raise IOError(_errno.EEXIST, "No usable temporary directory name found") def mktemp(suffix="", prefix=template, dir=None): """mktemp([suffix, [prefix, [dir]]]) @@ -361,7 +361,7 @@ def mktemp(suffix="", prefix=template, dir=None): if not _exists(file): return file - raise IOError, (_errno.EEXIST, "No usable temporary filename found") + raise IOError(_errno.EEXIST, "No usable temporary filename found") class _TemporaryFileWrapper: """Temporary file wrapper diff --git a/Lib/threading.py b/Lib/threading.py index 1ad5664a846..ce95e403573 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -326,7 +326,7 @@ class _BoundedSemaphore(_Semaphore): def release(self): if self._value >= self._initial_value: - raise ValueError, "Semaphore released too many times" + raise ValueError("Semaphore released too many times") return _Semaphore.release(self) diff --git a/Lib/tokenize.py b/Lib/tokenize.py index 9ea57b6b680..a2048569b9a 100644 --- a/Lib/tokenize.py +++ b/Lib/tokenize.py @@ -269,7 +269,7 @@ def generate_tokens(readline): if contstr: # continued string if not line: - raise TokenError, ("EOF in multi-line string", strstart) + raise TokenError("EOF in multi-line string", strstart) endmatch = endprog.match(line) if endmatch: pos = end = endmatch.end(0) @@ -325,7 +325,7 @@ def generate_tokens(readline): else: # continued statement if not line: - raise TokenError, ("EOF in multi-line statement", (lnum, 0)) + raise TokenError("EOF in multi-line statement", (lnum, 0)) continued = 0 while pos < max: diff --git a/Lib/unittest.py b/Lib/unittest.py index 931d2f6f72a..7dac499b162 100644 --- a/Lib/unittest.py +++ b/Lib/unittest.py @@ -130,7 +130,8 @@ class TestResult: if exctype is test.failureException: # Skip assert*() traceback levels length = self._count_relevant_tb_levels(tb) - return ''.join(traceback.format_exception(exctype, value, tb, length)) + return ''.join(traceback.format_exception(exctype, value, + tb, length)) return ''.join(traceback.format_exception(exctype, value, tb)) def _is_relevant_tb_level(self, tb): @@ -186,8 +187,8 @@ class TestCase: testMethod = getattr(self, methodName) self._testMethodDoc = testMethod.__doc__ except AttributeError: - raise ValueError, "no such test method in %s: %s" % \ - (self.__class__, methodName) + raise ValueError("no such test method in %s: %s" + % (self.__class__, methodName)) def setUp(self): "Hook method for setting up the test fixture before exercising it." @@ -288,15 +289,15 @@ class TestCase: def fail(self, msg=None): """Fail immediately, with the given message.""" - raise self.failureException, msg + raise self.failureException(msg) def failIf(self, expr, msg=None): "Fail the test if the expression is true." - if expr: raise self.failureException, msg + if expr: raise self.failureException(msg) def failUnless(self, expr, msg=None): """Fail the test unless the expression is true.""" - if not expr: raise self.failureException, msg + if not expr: raise self.failureException(msg) def failUnlessRaises(self, excClass, callableObj, *args, **kwargs): """Fail unless an exception of class excClass is thrown @@ -313,24 +314,22 @@ class TestCase: else: excName = str(getattr(excClass, '__name__', excClass)) objName = str(getattr(callableObj, '__name__', callableObj)) - raise self.failureException, "%s not raised by %s" % (excName, - objName) + raise self.failureException("%s not raised by %s" % (excName, + objName)) def failUnlessEqual(self, first, second, msg=None): """Fail if the two objects are unequal as determined by the '==' operator. """ if not first == second: - raise self.failureException, \ - (msg or '%r != %r' % (first, second)) + raise self.failureException(msg or '%r != %r' % (first, second)) def failIfEqual(self, first, second, msg=None): """Fail if the two objects are equal as determined by the '==' operator. """ if first == second: - raise self.failureException, \ - (msg or '%r == %r' % (first, second)) + raise self.failureException(msg or '%r == %r' % (first, second)) def failUnlessAlmostEqual(self, first, second, places=7, msg=None): """Fail if the two objects are unequal as determined by their @@ -341,8 +340,8 @@ class TestCase: as significant digits (measured from the most signficant digit). """ if round(second-first, places) != 0: - raise self.failureException, \ - (msg or '%r != %r within %r places' % (first, second, places)) + raise self.failureException(msg or '%r != %r within %r places' + % (first, second, places)) def failIfAlmostEqual(self, first, second, places=7, msg=None): """Fail if the two objects are equal as determined by their @@ -353,8 +352,8 @@ class TestCase: as significant digits (measured from the most signficant digit). """ if round(second-first, places) == 0: - raise self.failureException, \ - (msg or '%r == %r within %r places' % (first, second, places)) + raise self.failureException(msg or '%r == %r within %r places' + % (first, second, places)) # Synonyms for assertion methods @@ -484,13 +483,15 @@ class FunctionTestCase(TestCase): def __hash__(self): return hash((type(self), self.__setUpFunc, self.__tearDownFunc, - self.__testFunc, self.__description)) + self.__testFunc, self.__description)) def __str__(self): - return "%s (%s)" % (_strclass(self.__class__), self.__testFunc.__name__) + return "%s (%s)" % (_strclass(self.__class__), + self.__testFunc.__name__) def __repr__(self): - return "<%s testFunc=%s>" % (_strclass(self.__class__), self.__testFunc) + return "<%s testFunc=%s>" % (_strclass(self.__class__), + self.__testFunc) def shortDescription(self): if self.__description is not None: return self.__description @@ -514,7 +515,8 @@ class TestLoader: def loadTestsFromTestCase(self, testCaseClass): """Return a suite of all tests cases contained in testCaseClass""" if issubclass(testCaseClass, TestSuite): - raise TypeError("Test cases should not be derived from TestSuite. Maybe you meant to derive from TestCase?") + raise TypeError("Test cases should not be derived from TestSuite." + "Maybe you meant to derive from TestCase?") testCaseNames = self.getTestCaseNames(testCaseClass) if not testCaseNames and hasattr(testCaseClass, 'runTest'): testCaseNames = ['runTest'] @@ -585,8 +587,10 @@ class TestLoader: def getTestCaseNames(self, testCaseClass): """Return a sorted sequence of method names found within testCaseClass """ - def isTestMethod(attrname, testCaseClass=testCaseClass, prefix=self.testMethodPrefix): - return attrname.startswith(prefix) and hasattr(getattr(testCaseClass, attrname), '__call__') + def isTestMethod(attrname, testCaseClass=testCaseClass, + prefix=self.testMethodPrefix): + return attrname.startswith(prefix) \ + and hasattr(getattr(testCaseClass, attrname), '__call__') testFnNames = list(filter(isTestMethod, dir(testCaseClass))) if self.sortTestMethodsUsing: testFnNames.sort(self.sortTestMethodsUsing) diff --git a/Lib/urllib.py b/Lib/urllib.py index bbcd00e21d4..6bf89ee8f9a 100644 --- a/Lib/urllib.py +++ b/Lib/urllib.py @@ -196,12 +196,12 @@ class URLopener: def open_unknown(self, fullurl, data=None): """Overridable interface to open unknown URL type.""" type, url = splittype(fullurl) - raise IOError, ('url error', 'unknown url type', type) + raise IOError('url error', 'unknown url type', type) def open_unknown_proxy(self, proxy, fullurl, data=None): """Overridable interface to open unknown URL type.""" type, url = splittype(fullurl) - raise IOError, ('url error', 'invalid proxy for %s' % type, proxy) + raise IOError('url error', 'invalid proxy for %s' % type, proxy) # External interface def retrieve(self, url, filename=None, reporthook=None, data=None): @@ -308,7 +308,7 @@ class URLopener: host = realhost #print "proxy via http:", host, selector - if not host: raise IOError, ('http error', 'no host given') + if not host: raise IOError('http error', 'no host given') if proxy_passwd: import base64 @@ -380,7 +380,7 @@ class URLopener: """Default error handler: close the connection and raise IOError.""" void = fp.read() fp.close() - raise IOError, ('http error', errcode, errmsg, headers) + raise IOError('http error', errcode, errmsg, headers) if hasattr(socket, "ssl"): def _https_connection(self, host): @@ -395,7 +395,7 @@ class URLopener: def open_file(self, url): """Use local file or FTP depending on form of URL.""" if not isinstance(url, str): - raise IOError, ('file error', 'proxy support for file protocol currently not implemented') + raise IOError('file error', 'proxy support for file protocol currently not implemented') if url[:2] == '//' and url[2:3] != '/' and url[2:12].lower() != 'localhost/': return self.open_ftp(url) else: @@ -441,16 +441,16 @@ class URLopener: urlfile = 'file://' + file return addinfourl(open(localname, 'rb'), headers, urlfile) - raise IOError, ('local file error', 'not on local host') + raise IOError('local file error', 'not on local host') def open_ftp(self, url): """Use FTP protocol.""" if not isinstance(url, str): - raise IOError, ('ftp error', 'proxy support for ftp protocol currently not implemented') + raise IOError('ftp error', 'proxy support for ftp protocol currently not implemented') import mimetypes, mimetools from io import StringIO host, path = splithost(url) - if not host: raise IOError, ('ftp error', 'no host given') + if not host: raise IOError('ftp error', 'no host given') host, port = splitport(host) user, host = splituser(host) if user: user, passwd = splitpasswd(user) @@ -505,7 +505,7 @@ class URLopener: def open_data(self, url, data=None): """Use "data" URL.""" if not isinstance(url, str): - raise IOError, ('data error', 'proxy support for data protocol currently not implemented') + raise IOError('data error', 'proxy support for data protocol currently not implemented') # ignore POSTed data # # syntax of data URLs: @@ -518,7 +518,7 @@ class URLopener: try: [type, data] = url.split(',', 1) except ValueError: - raise IOError, ('data error', 'bad data URL') + raise IOError('data error', 'bad data URL') if not type: type = 'text/plain;charset=US-ASCII' semi = type.rfind(';') @@ -1032,7 +1032,7 @@ def splitnport(host, defport=-1): if match: host, port = match.group(1, 2) try: - if not port: raise ValueError, "no digits" + if not port: raise ValueError("no digits") nport = int(port) except ValueError: nport = None diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 0995aeb4fbf..32fb2054994 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -210,7 +210,7 @@ class Request: if hasattr(Request, 'get_' + name): getattr(self, 'get_' + name)() return getattr(self, attr) - raise AttributeError, attr + raise AttributeError(attr) def get_method(self): if self.has_data(): @@ -236,7 +236,7 @@ class Request: if self.type is None: self.type, self.__r_type = splittype(self.__original) if self.type is None: - raise ValueError, "unknown url type: %s" % self.__original + raise ValueError("unknown url type: %s" % self.__original) return self.type def get_host(self): @@ -1250,7 +1250,7 @@ class FTPHandler(BaseHandler): import mimetypes host = req.get_host() if not host: - raise IOError, ('ftp error', 'no host given') + raise IOError('ftp error', 'no host given') host, port = splitport(host) if port is None: port = ftplib.FTP_PORT diff --git a/Lib/wave.py b/Lib/wave.py index 42bf8bfe8ed..4fc1bf1851c 100644 --- a/Lib/wave.py +++ b/Lib/wave.py @@ -127,9 +127,9 @@ class Wave_read: self._soundpos = 0 self._file = Chunk(file, bigendian = 0) if self._file.getname() != b'RIFF': - raise Error, 'file does not start with RIFF id' + raise Error('file does not start with RIFF id') if self._file.read(4) != b'WAVE': - raise Error, 'not a WAVE file' + raise Error('not a WAVE file') self._fmt_chunk_read = 0 self._data_chunk = None while 1: @@ -144,14 +144,14 @@ class Wave_read: self._fmt_chunk_read = 1 elif chunkname == b'data': if not self._fmt_chunk_read: - raise Error, 'data chunk before fmt chunk' + raise Error('data chunk before fmt chunk') self._data_chunk = chunk self._nframes = chunk.chunksize // self._framesize self._data_seek_needed = 0 break chunk.skip() if not self._fmt_chunk_read or not self._data_chunk: - raise Error, 'fmt chunk and/or data chunk missing' + raise Error('fmt chunk and/or data chunk missing') def __init__(self, f): self._i_opened_the_file = None @@ -214,11 +214,11 @@ class Wave_read: return None def getmark(self, id): - raise Error, 'no marks' + raise Error('no marks') def setpos(self, pos): if pos < 0 or pos > self._nframes: - raise Error, 'position not in range' + raise Error('position not in range') self._soundpos = pos self._data_seek_needed = 1 @@ -266,7 +266,7 @@ class Wave_read: sampwidth = struct.unpack_from('<h', chunk.read(2))[0] self._sampwidth = (sampwidth + 7) // 8 else: - raise Error, 'unknown format: %r' % (wFormatTag,) + raise Error('unknown format: %r' % (wFormatTag,)) self._framesize = self._nchannels * self._sampwidth self._comptype = 'NONE' self._compname = 'not compressed' @@ -328,43 +328,43 @@ class Wave_write: # def setnchannels(self, nchannels): if self._datawritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if nchannels < 1: - raise Error, 'bad # of channels' + raise Error('bad # of channels') self._nchannels = nchannels def getnchannels(self): if not self._nchannels: - raise Error, 'number of channels not set' + raise Error('number of channels not set') return self._nchannels def setsampwidth(self, sampwidth): if self._datawritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if sampwidth < 1 or sampwidth > 4: - raise Error, 'bad sample width' + raise Error('bad sample width') self._sampwidth = sampwidth def getsampwidth(self): if not self._sampwidth: - raise Error, 'sample width not set' + raise Error('sample width not set') return self._sampwidth def setframerate(self, framerate): if self._datawritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if framerate <= 0: - raise Error, 'bad frame rate' + raise Error('bad frame rate') self._framerate = framerate def getframerate(self): if not self._framerate: - raise Error, 'frame rate not set' + raise Error('frame rate not set') return self._framerate def setnframes(self, nframes): if self._datawritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') self._nframes = nframes def getnframes(self): @@ -372,9 +372,9 @@ class Wave_write: def setcomptype(self, comptype, compname): if self._datawritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') if comptype not in ('NONE',): - raise Error, 'unsupported compression type' + raise Error('unsupported compression type') self._comptype = comptype self._compname = compname @@ -387,7 +387,7 @@ class Wave_write: def setparams(self, params): nchannels, sampwidth, framerate, nframes, comptype, compname = params if self._datawritten: - raise Error, 'cannot change parameters after starting to write' + raise Error('cannot change parameters after starting to write') self.setnchannels(nchannels) self.setsampwidth(sampwidth) self.setframerate(framerate) @@ -396,15 +396,15 @@ class Wave_write: def getparams(self): if not self._nchannels or not self._sampwidth or not self._framerate: - raise Error, 'not all parameters set' + raise Error('not all parameters set') return self._nchannels, self._sampwidth, self._framerate, \ self._nframes, self._comptype, self._compname def setmark(self, id, pos, name): - raise Error, 'setmark() not supported' + raise Error('setmark() not supported') def getmark(self, id): - raise Error, 'no marks' + raise Error('no marks') def getmarkers(self): return None @@ -451,11 +451,11 @@ class Wave_write: def _ensure_header_written(self, datasize): if not self._datawritten: if not self._nchannels: - raise Error, '# channels not specified' + raise Error('# channels not specified') if not self._sampwidth: - raise Error, 'sample width not specified' + raise Error('sample width not specified') if not self._framerate: - raise Error, 'sampling rate not specified' + raise Error('sampling rate not specified') self._write_header(datasize) def _write_header(self, initlength): @@ -495,6 +495,6 @@ def open(f, mode=None): elif mode in ('w', 'wb'): return Wave_write(f) else: - raise Error, "mode must be 'r', 'rb', 'w', or 'wb'" + raise Error("mode must be 'r', 'rb', 'w', or 'wb'") openfp = open # B/W compatibility diff --git a/Lib/weakref.py b/Lib/weakref.py index bdb89fbba42..c5e524722c6 100644 --- a/Lib/weakref.py +++ b/Lib/weakref.py @@ -51,7 +51,7 @@ class WeakValueDictionary(UserDict.UserDict): def __getitem__(self, key): o = self.data[key]() if o is None: - raise KeyError, key + raise KeyError(key) else: return o @@ -142,7 +142,7 @@ class WeakValueDictionary(UserDict.UserDict): return args[0] raise if o is None: - raise KeyError, key + raise KeyError(key) else: return o diff --git a/Lib/xdrlib.py b/Lib/xdrlib.py index 98bdedb67d0..b293e06a108 100644 --- a/Lib/xdrlib.py +++ b/Lib/xdrlib.py @@ -66,16 +66,16 @@ class Packer: def pack_float(self, x): try: self.__buf.write(struct.pack('>f', x)) except struct.error as msg: - raise ConversionError, msg + raise ConversionError(msg) def pack_double(self, x): try: self.__buf.write(struct.pack('>d', x)) except struct.error as msg: - raise ConversionError, msg + raise ConversionError(msg) def pack_fstring(self, n, s): if n < 0: - raise ValueError, 'fstring size must be nonnegative' + raise ValueError('fstring size must be nonnegative') data = s[:n] n = ((n+3)//4)*4 data = data + (n - len(data)) * b'\0' @@ -99,7 +99,7 @@ class Packer: def pack_farray(self, n, list, pack_item): if len(list) != n: - raise ValueError, 'wrong array size' + raise ValueError('wrong array size') for item in list: pack_item(item) @@ -187,7 +187,7 @@ class Unpacker: def unpack_fstring(self, n): if n < 0: - raise ValueError, 'fstring size must be nonnegative' + raise ValueError('fstring size must be nonnegative') i = self.__pos j = i + (n+3)//4*4 if j > len(self.__buf): @@ -210,7 +210,7 @@ class Unpacker: x = self.unpack_uint() if x == 0: break if x != 1: - raise ConversionError, '0 or 1 expected, got %r' % (x,) + raise ConversionError('0 or 1 expected, got %r' % (x,)) item = unpack_item() list.append(item) return list diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py index ac36b62ca32..60b05b9711f 100644 --- a/Lib/xmlrpclib.py +++ b/Lib/xmlrpclib.py @@ -570,13 +570,13 @@ class Marshaller: try: value.__dict__ except: - raise TypeError, "cannot marshal %s objects" % type(value) + raise TypeError("cannot marshal %s objects" % type(value)) # check if this class is a sub-class of a basic type, # because we don't know how to marshal these types # (e.g. a string sub-class) for type_ in type(value).__mro__: if type_ in self.dispatch.keys(): - raise TypeError, "cannot marshal %s objects" % type(value) + raise TypeError("cannot marshal %s objects" % type(value)) # XXX(twouters): using "_arbitrary_instance" as key as a quick-fix # for the p3yk merge, this should probably be fixed more neatly. f = self.dispatch["_arbitrary_instance"] @@ -584,14 +584,14 @@ class Marshaller: def dump_nil (self, value, write): if not self.allow_none: - raise TypeError, "cannot marshal None unless allow_none is enabled" + raise TypeError("cannot marshal None unless allow_none is enabled") write("<value><nil/></value>") dispatch[type(None)] = dump_nil def dump_int(self, value, write): # in case ints are > 32 bits if value > MAXINT or value < MININT: - raise OverflowError, "int exceeds XML-RPC limits" + raise OverflowError("int exceeds XML-RPC limits") write("<value><int>") write(str(value)) write("</int></value>\n") @@ -606,7 +606,7 @@ class Marshaller: def dump_long(self, value, write): if value > MAXINT or value < MININT: - raise OverflowError, "long int exceeds XML-RPC limits" + raise OverflowError("long int exceeds XML-RPC limits") write("<value><int>") write(str(int(value))) write("</int></value>\n") @@ -633,7 +633,7 @@ class Marshaller: def dump_array(self, value, write): i = id(value) if i in self.memo: - raise TypeError, "cannot marshal recursive sequences" + raise TypeError("cannot marshal recursive sequences") self.memo[i] = None dump = self.__dump write("<value><array><data>\n") @@ -647,14 +647,14 @@ class Marshaller: def dump_struct(self, value, write, escape=escape): i = id(value) if i in self.memo: - raise TypeError, "cannot marshal recursive dictionaries" + raise TypeError("cannot marshal recursive dictionaries") self.memo[i] = None dump = self.__dump write("<value><struct>\n") for k, v in value.items(): write("<member>\n") if not isinstance(k, basestring): - raise TypeError, "dictionary key must be string" + raise TypeError("dictionary key must be string") write("<name>%s</name>\n" % escape(k)) dump(v, write) write("</member>\n") @@ -724,7 +724,7 @@ class Unmarshaller: self.append = self._stack.append self._use_datetime = use_datetime if use_datetime and not datetime: - raise ValueError, "the datetime module is not available" + raise ValueError("the datetime module is not available") def close(self): # return response tuple and target method @@ -791,7 +791,7 @@ class Unmarshaller: elif data == "1": self.append(True) else: - raise TypeError, "bad boolean value" + raise TypeError("bad boolean value") self._value = 0 dispatch["boolean"] = end_boolean @@ -897,8 +897,7 @@ class MultiCallIterator: elif type(item) == type([]): return item[0] else: - raise ValueError,\ - "unexpected type in multicall result" + raise ValueError("unexpected type in multicall result") class MultiCall: """server -> a object used to boxcar method calls @@ -952,7 +951,7 @@ def getparser(use_datetime=0): to an unmarshalling object. Return both objects. """ if use_datetime and not datetime: - raise ValueError, "the datetime module is not available" + raise ValueError("the datetime module is not available") if FastParser and FastUnmarshaller: if use_datetime: mkdatetime = _datetime_type @@ -1321,7 +1320,7 @@ class ServerProxy: import urllib type, uri = urllib.splittype(uri) if type not in ("http", "https"): - raise IOError, "unsupported XML-RPC protocol" + raise IOError("unsupported XML-RPC protocol") self.__host, self.__handler = urllib.splithost(uri) if not self.__handler: self.__handler = "/RPC2" diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 4cd90e5ccef..c72c315f495 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -277,7 +277,7 @@ class ZipInfo (object): elif ln == 0: counts = () else: - raise RuntimeError, "Corrupt extra field %s"%(ln,) + raise RuntimeError("Corrupt extra field %s"%(ln,)) idx = 0 @@ -581,10 +581,10 @@ class ZipFile: pass elif compression == ZIP_DEFLATED: if not zlib: - raise RuntimeError,\ - "Compression requires the (missing) zlib module" + raise RuntimeError( + "Compression requires the (missing) zlib module") else: - raise RuntimeError, "That compression method is not supported" + raise RuntimeError("That compression method is not supported") self._allowZip64 = allowZip64 self._didModify = False @@ -629,7 +629,7 @@ class ZipFile: if not self._filePassed: self.fp.close() self.fp = None - raise RuntimeError, 'Mode must be "r", "w" or "a"' + raise RuntimeError('Mode must be "r", "w" or "a"') def _GetContents(self): """Read the directory, making sure we close the file if the format @@ -647,7 +647,7 @@ class ZipFile: fp = self.fp endrec = _EndRecData(fp) if not endrec: - raise BadZipfile, "File is not a zip file" + raise BadZipfile("File is not a zip file") if self.debug > 1: print(endrec) size_cd = endrec[5] # bytes in central directory @@ -672,7 +672,7 @@ class ZipFile: centdir = fp.read(46) total = total + 46 if centdir[0:4] != stringCentralDir: - raise BadZipfile, "Bad magic number for central directory" + raise BadZipfile("Bad magic number for central directory") centdir = struct.unpack(structCentralDir, centdir) if self.debug > 2: print(centdir) @@ -752,10 +752,10 @@ class ZipFile: def open(self, name, mode="r", pwd=None): """Return file-like object for 'name'.""" if mode not in ("r", "U", "rU"): - raise RuntimeError, 'open() requires mode "r", "U", or "rU"' + raise RuntimeError('open() requires mode "r", "U", or "rU"') if not self.fp: - raise RuntimeError, \ - "Attempt to read ZIP archive that was already closed" + raise RuntimeError( + "Attempt to read ZIP archive that was already closed") # Only open a new file for instances where we were not # given a file object in the constructor @@ -774,7 +774,7 @@ class ZipFile: # Skip the file header: fheader = zef_file.read(30) if fheader[0:4] != stringFileHeader: - raise BadZipfile, "Bad magic number for file header" + raise BadZipfile("Bad magic number for file header") fheader = struct.unpack(structFileHeader, fheader) fname = zef_file.read(fheader[_FH_FILENAME_LENGTH]) @@ -782,9 +782,9 @@ class ZipFile: zef_file.read(fheader[_FH_EXTRA_FIELD_LENGTH]) if fname != zinfo.orig_filename.encode("utf-8"): - raise BadZipfile, \ - 'File name in directory %r and header %r differ.' % ( - zinfo.orig_filename, fname) + raise BadZipfile( + 'File name in directory %r and header %r differ.' + % (zinfo.orig_filename, fname)) # check for encrypted flag & handle password is_encrypted = zinfo.flag_bits & 0x1 @@ -793,8 +793,8 @@ class ZipFile: if not pwd: pwd = self.pwd if not pwd: - raise RuntimeError, "File %s is encrypted, " \ - "password required for extraction" % name + raise RuntimeError("File %s is encrypted, " + "password required for extraction" % name) zd = _ZipDecrypter(pwd) # The first 12 bytes in the cypher stream is an encryption header @@ -804,7 +804,7 @@ class ZipFile: bytes = zef_file.read(12) h = list(map(zd, bytes[0:12])) if h[11] != ((zinfo.CRC>>24) & 255): - raise RuntimeError, "Bad password for file %s" % name + raise RuntimeError("Bad password for file %s" % name) # build and return a ZipExtFile if zd is None: @@ -823,22 +823,22 @@ class ZipFile: if self.debug: # Warning for duplicate names print("Duplicate name:", zinfo.filename) if self.mode not in ("w", "a"): - raise RuntimeError, 'write() requires mode "w" or "a"' + raise RuntimeError('write() requires mode "w" or "a"') if not self.fp: - raise RuntimeError, \ - "Attempt to write ZIP archive that was already closed" + raise RuntimeError( + "Attempt to write ZIP archive that was already closed") if zinfo.compress_type == ZIP_DEFLATED and not zlib: - raise RuntimeError, \ - "Compression requires the (missing) zlib module" + raise RuntimeError( + "Compression requires the (missing) zlib module") if zinfo.compress_type not in (ZIP_STORED, ZIP_DEFLATED): - raise RuntimeError, \ - "That compression method is not supported" + raise RuntimeError("That compression method is not supported") if zinfo.file_size > ZIP64_LIMIT: if not self._allowZip64: raise LargeZipFile("Filesize would require ZIP64 extensions") if zinfo.header_offset > ZIP64_LIMIT: if not self._allowZip64: - raise LargeZipFile("Zipfile size would require ZIP64 extensions") + raise LargeZipFile( + "Zipfile size would require ZIP64 extensions") def write(self, filename, arcname=None, compress_type=None): """Put the bytes from filename into the archive under the name @@ -1103,8 +1103,8 @@ class PyZipFile(ZipFile): self.write(fname, arcname) else: if pathname[-3:] != ".py": - raise RuntimeError, \ - 'Files added with writepy() must end with ".py"' + raise RuntimeError( + 'Files added with writepy() must end with ".py"') fname, arcname = self._get_codename(pathname[0:-3], basename) if self.debug: print("Adding file", arcname) |