Skip to content

Commit 326662b

Browse files
committed
Make use of the raise ... from syntax in Python 3
1 parent 11a890f commit 326662b

20 files changed

+63
-53
lines changed

.pylintrc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ disable =
2424
missing-docstring,
2525
no-self-use,
2626
protected-access,
27-
raise-missing-from,
2827
redefined-argument-from-local,
2928
redefined-outer-name
3029

webware/Application.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ def createSessionForTransaction(self, trans):
486486
except KeyError:
487487
trans.request().setSessionExpired(1)
488488
if not self.setting('IgnoreInvalidSession'):
489-
raise HTTPSessionExpired
489+
raise HTTPSessionExpired from None
490490
sessId = None
491491
if not sessId:
492492
session = self._sessionClass(trans)

webware/MiscUtils/Configurable.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,10 @@ def setting(self, name, default=NoDefault):
7070
if default is NoDefault:
7171
try:
7272
return self.config()[name]
73-
except KeyError:
73+
except KeyError as e:
7474
keys = ', '.join(sorted(self.config()))
75-
raise KeyError(f'{name} not found - config keys are: {keys}')
75+
raise KeyError(
76+
f'{name} not found - config keys are: {keys}') from e
7677
else:
7778
return self.config().get(name, default)
7879

@@ -154,7 +155,7 @@ def userConfig(self):
154155
del config[key]
155156
except Exception as e:
156157
raise ConfigurationError(
157-
f'Invalid configuration file, {filename} ({e}).')
158+
f'Invalid configuration file, {filename} ({e}).') from e
158159
return config
159160

160161
@staticmethod

webware/MiscUtils/DataTable.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ def setType(self, type_):
302302
except Exception:
303303
types = ', '.join(sorted(_types))
304304
raise DataTableError(f'Unknown type {type_!r}.'
305-
f' Known types are: {types}')
305+
f' Known types are: {types}') from None
306306
else:
307307
self._type = None
308308

@@ -699,9 +699,9 @@ def __init__(self, table, values=None, headings=None):
699699
else:
700700
try:
701701
self.initFromObject(values)
702-
except AttributeError:
702+
except AttributeError as e:
703703
raise DataTableError(
704-
f'Unknown type for values {values!r}.')
704+
f'Unknown type for values {values!r}.') from e
705705

706706
def initFromSequence(self, values):
707707
headings = self._headings
@@ -762,7 +762,7 @@ def __getitem__(self, key):
762762
return self._values[key]
763763
except TypeError:
764764
raise TypeError(f'key={key!r}, key type={type(key)!r},'
765-
f' values={self._values!r}')
765+
f' values={self._values!r}') from None
766766

767767
def __setitem__(self, key, value):
768768
if isinstance(key, str):

webware/MiscUtils/DateInterval.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,5 @@ def timeDecode(s):
6060
try:
6161
time += int(match[:-1]) * timeValues[char]
6262
except KeyError:
63-
raise ValueError(f'Invalid unit of time: {char}')
63+
raise ValueError(f'Invalid unit of time: {char}') from None
6464
return time

webware/MiscUtils/NamedValueAccess.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def valueForKey(obj, key, default=NoDefault):
6262
try:
6363
return obj[key]
6464
except KeyError:
65-
raise ValueForKeyError(key)
65+
raise ValueForKeyError(key) from None
6666
else:
6767
return obj.get(key, default)
6868
else:

webware/MiscUtils/PickleRPC.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -373,9 +373,9 @@ class SafeTransport(Transport):
373373

374374
def make_connection(self, host, port=None, key_file=None, cert_file=None):
375375
"""Create an HTTPS connection object from a host descriptor."""
376-
import http.client
377376
try:
378-
return http.client.HTTPSConnection(host, port, key_file, cert_file)
379-
except AttributeError:
377+
from http.client import HTTPSConnection
378+
except ImportError as e:
380379
raise NotImplementedError(
381-
"Your version of http.client doesn't support HTTPS")
380+
"Your version of http.client doesn't support HTTPS") from e
381+
return HTTPSConnection(host, port, key_file, cert_file)

webware/PSP/PSPParser.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,9 @@ def checkScript(self, handler, reader):
172172
start = reader.mark()
173173
try:
174174
stop = reader.skipUntil('%>')
175-
except EOFError:
176-
raise EOFError("Reached EOF while looking for ending script tag")
175+
except EOFError as e:
176+
raise EOFError(
177+
"Reached EOF while looking for ending script tag") from e
177178
if stop is None:
178179
raise PSPParserException('Script not terminated')
179180
handler.setTemplateInfo(self.tmplStart, self.tmplStop)
@@ -201,9 +202,10 @@ def foo(): return 'foo'
201202
if stop is None:
202203
raise PSPParserException(
203204
'Script not terminated in <psp:file> block')
204-
except EOFError:
205+
except EOFError as e:
205206
raise EOFError(
206-
'Reached EOF while looking for ending script tag </psp:file>')
207+
'Reached EOF while looking for'
208+
' ending script tag </psp:file>') from e
207209
handler.setTemplateInfo(self.tmplStart, self.tmplStop)
208210
handler.handleScriptFile(start, stop, None)
209211
return True
@@ -228,9 +230,10 @@ def foo(self):
228230
if stop is None:
229231
raise PSPParserException(
230232
'Script not terminated in <psp:class> block')
231-
except EOFError:
233+
except EOFError as e:
232234
raise EOFError(
233-
'Reached EOF while looking for ending script tag </psp:class>')
235+
'Reached EOF while looking for'
236+
' ending script tag </psp:class>') from e
234237
handler.setTemplateInfo(self.tmplStart, self.tmplStop)
235238
handler.handleScriptClass(start, stop, None)
236239
return True

webware/PSP/PSPServletFactory.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ def loadClassFromFile(self, transaction, fileName, className):
8787
return getattr(module, className)
8888
except AttributeError:
8989
raise AttributeError(
90-
f'Cannot find expected class named {className} in {fileName}.')
90+
'Cannot find expected class'
91+
f' named {className} in {fileName}.') from None
9192

9293
def loadClass(self, transaction, path):
9394
className = self.computeClassName(path)

webware/PSP/PSPUtils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def checkAttributes(tagType, attrs, validAttrs):
4242
attrs.remove(attr)
4343
except KeyError:
4444
raise PSPParserException(
45-
f'{tagType}: Mandatory attribute {attr} missing')
45+
f'{tagType}: Mandatory attribute {attr} missing') from None
4646
optionalAttrs = validAttrs[1]
4747
for attr in attrs:
4848
if attr not in optionalAttrs:

0 commit comments

Comments
 (0)