diff options
| author | Benjamin Peterson <benjamin@python.org> | 2012-05-14 22:09:31 -0700 | 
|---|---|---|
| committer | Benjamin Peterson <benjamin@python.org> | 2012-05-14 22:09:31 -0700 | 
| commit | d5a1c44455d969968f453f029727bfc45e4ce0a9 (patch) | |
| tree | 98e91aa8130d600df0b1fdf329bbdc9d60d4b14c /Python/pythonrun.c | |
| parent | d91dc623791fd9973b914a57540d89cb986da7c9 (diff) | |
| download | cpython-git-d5a1c44455d969968f453f029727bfc45e4ce0a9.tar.gz | |
PEP 415: Implement suppression of __context__ display with an exception attribute
This replaces the original PEP 409 implementation. See #14133.
Diffstat (limited to 'Python/pythonrun.c')
| -rw-r--r-- | Python/pythonrun.c | 9 | 
1 files changed, 3 insertions, 6 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c index cd3cf5c53c..d9eb5e7d9f 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -1761,11 +1761,7 @@ print_exception_recursive(PyObject *f, PyObject *value, PyObject *seen)          else if (PyExceptionInstance_Check(value)) {              cause = PyException_GetCause(value);              context = PyException_GetContext(value); -            if (cause && cause == Py_None) { -                /* print neither cause nor context */ -                ; -            } -            else if (cause) { +            if (cause) {                  res = PySet_Contains(seen, cause);                  if (res == -1)                      PyErr_Clear(); @@ -1776,7 +1772,8 @@ print_exception_recursive(PyObject *f, PyObject *value, PyObject *seen)                          cause_message, f);                  }              } -            else if (context) { +            else if (context && +                !((PyBaseExceptionObject *)value)->suppress_context) {                  res = PySet_Contains(seen, context);                  if (res == -1)                      PyErr_Clear();  | 
