From 8c864953a4620b89a285bac043669b23c36b2c5e Mon Sep 17 00:00:00 2001 From: Jonas Schneider Date: Sat, 30 Apr 2016 22:37:33 -0700 Subject: [PATCH] Disable Python 3's exception chaining when reraising --- gym/utils/reraise.py | 4 ++-- gym/utils/reraise_impl_py3.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gym/utils/reraise.py b/gym/utils/reraise.py index 08994c82d..219374a16 100644 --- a/gym/utils/reraise.py +++ b/gym/utils/reraise.py @@ -1,7 +1,7 @@ import sys -# We keep the actual reraising in different modules since the -# Python 2 version SyntaxError's in Python 3. +# We keep the actual reraising in different modules, since the +# reraising code uses syntax mutually exclusive to Python 2/3. if sys.version_info[0] < 3: from .reraise_impl_py2 import reraise_impl else: diff --git a/gym/utils/reraise_impl_py3.py b/gym/utils/reraise_impl_py3.py index 270b3e421..1fc8db55b 100644 --- a/gym/utils/reraise_impl_py3.py +++ b/gym/utils/reraise_impl_py3.py @@ -1,2 +1,4 @@ +# http://stackoverflow.com/a/33822606 -- `from None` disables Python 3' +# semi-smart exception chaining, which we don't want in this case. def reraise_impl(e, traceback): - raise e.with_traceback(traceback) + raise e.with_traceback(traceback) from None