summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lib/ConfigParser.py2
-rw-r--r--Lib/UserDict.py6
-rwxr-xr-xLib/UserString.py2
-rw-r--r--Lib/aifc.py78
-rw-r--r--Lib/anydbm.py6
-rw-r--r--Lib/asynchat.py4
-rw-r--r--Lib/asyncore.py2
-rw-r--r--Lib/bdb.py2
-rwxr-xr-xLib/cgi.py24
-rw-r--r--Lib/chunk.py12
-rw-r--r--Lib/cmd.py4
-rw-r--r--Lib/codeop.py2
-rw-r--r--Lib/copy_reg.py4
-rw-r--r--Lib/csv.py11
-rw-r--r--Lib/decimal.py2
-rw-r--r--Lib/difflib.py6
-rw-r--r--Lib/dis.py2
-rw-r--r--Lib/doctest.py4
-rw-r--r--Lib/encodings/__init__.py10
-rw-r--r--Lib/encodings/punycode.py8
-rw-r--r--Lib/encodings/utf_16.py2
-rw-r--r--Lib/filecmp.py2
-rw-r--r--Lib/fileinput.py20
-rw-r--r--Lib/fpformat.py2
-rw-r--r--Lib/ftplib.py47
-rw-r--r--Lib/gettext.py7
-rw-r--r--Lib/gzip.py18
-rw-r--r--Lib/hashlib.py2
-rw-r--r--Lib/ihooks.py23
-rw-r--r--Lib/imputil.py12
-rw-r--r--Lib/inspect.py4
-rwxr-xr-xLib/lib-tk/Tix.py10
-rw-r--r--Lib/lib-tk/Tkinter.py23
-rw-r--r--Lib/lib-tk/tkCommonDialog.py2
-rw-r--r--Lib/lib-tk/tkFont.py2
-rw-r--r--Lib/lib-tk/turtle.py20
-rw-r--r--Lib/locale.py6
-rw-r--r--Lib/logging/__init__.py10
-rw-r--r--Lib/logging/config.py2
-rw-r--r--Lib/logging/handlers.py2
-rw-r--r--Lib/macpath.py2
-rw-r--r--Lib/macurl2path.py6
-rw-r--r--Lib/mhlib.py44
-rw-r--r--Lib/mimetools.py6
-rw-r--r--Lib/modulefinder.py12
-rw-r--r--Lib/msilib/__init__.py4
-rw-r--r--Lib/multifile.py12
-rw-r--r--Lib/nturl2path.py4
-rw-r--r--Lib/optparse.py20
-rw-r--r--Lib/pipes.py46
-rwxr-xr-xLib/platform.py4
-rw-r--r--Lib/poplib.py2
-rw-r--r--Lib/pstats.py6
-rw-r--r--Lib/pty.py4
-rwxr-xr-xLib/pydoc.py4
-rw-r--r--Lib/random.py18
-rw-r--r--Lib/re.py12
-rw-r--r--Lib/rfc822.py2
-rw-r--r--Lib/rlcompleter.py2
-rw-r--r--Lib/shlex.py4
-rw-r--r--Lib/shutil.py6
-rw-r--r--Lib/sre_compile.py10
-rw-r--r--Lib/sre_parse.py92
-rw-r--r--Lib/string.py2
-rw-r--r--Lib/sunau.py48
-rw-r--r--Lib/sunaudio.py4
-rw-r--r--Lib/symtable.py2
-rw-r--r--Lib/tarfile.py2
-rw-r--r--Lib/telnetlib.py2
-rw-r--r--Lib/tempfile.py10
-rw-r--r--Lib/threading.py2
-rw-r--r--Lib/tokenize.py4
-rw-r--r--Lib/unittest.py48
-rw-r--r--Lib/urllib.py22
-rw-r--r--Lib/urllib2.py6
-rw-r--r--Lib/wave.py54
-rw-r--r--Lib/weakref.py4
-rw-r--r--Lib/xdrlib.py12
-rw-r--r--Lib/xmlrpclib.py27
-rw-r--r--Lib/zipfile.py54
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)