Serhiy Storchaka <storchaka+cpyt...@gmail.com> added the comment:

Interesting problem.

Example which does not depend on os.environ:

import traceback
try:
    try:
        raise TypeError
    except:
        try:
            raise ValueError
        except:
            raise KeyError from None
except BaseException as exc:
    e = exc

print([e, e.__cause__, e.__context__, e.__suppress_context__])
traceback.print_exception(type(e), e, e.__traceback__)


"from None" sets __suppress_context__ to True. Currently, if 
__suppress_context__ is true, the output of __context__ will be suppressed in 
the traceback. But what if we suppress only a part __context__ and output the 
"original" exception. The problem is what is the "original" exception. Is it 
__context__.__context__? Or __context__.__cause__ if it is not None? Should we 
take __context__.__suppress_context__ into account? Maybe go down recursively?

----------
nosy: +benjamin.peterson

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue39725>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to