How to imitate Python 3's raise ... from in Python 2?
There's a raise_from
in python-future; simply install it
pip install future
and import to use
from future.utils import raise_from# or: from six import raise_fromclass FileDatabase: def __init__(self, filename): try: self.file = open(filename) except IOError as exc: raise_from(DatabaseError('failed to open'), exc)
UPDATE
The compatibility package six also supports raise_from
, from version 1.9 (released in 2015). It is used in the same manner as above.
Instead of using six.raise_from, try to use six.reraise, as explained in this page:
http://python-future.org/compatible_idioms.html
from six import reraise as raise_ # or from future.utils import raise_traceback = sys.exc_info()[2]raise_(ValueError, "dodgy value", traceback)