Support Passing a Proxy object to traceback.TracebackExcetion() for "exc_type" #111922
Labels
3.13
bugs and security fixes
stdlib
Python modules in the Lib dir
type-feature
A feature request or enhancement
Feature or enhancement
Currently
traceback.TracebackException
appears to expect the "exc_type" argument to beNone
or an exception type object. 12In addition to exception types, I'd like to be able to pass in either a
str
(the type's__qualname__
) or an object that has the attributes thatTracebackException
need in order to do its job.For exception types the following attributes are especially important for
_PyErr_Display()
:__name__
__qualname__
__module__
So we would need those. If non-
str
were passed in then it would need to have those attrs set properly. If astr
were passed in then we'd parse out the info and create atypes.SimpleNamespace
with that info to use instead.My motivation is propagating exceptions between interpreters. I want to use
TracebackException
but have it be strictly a snapshot of an exception, whereas right now it actually still holds a reference toexc_type
. It also matters when pickling, where you may not want to pickle a user-defined exception type.Linked PRs
Footnotes
https://github.com/python/cpython/blob/6f09f69b7f85962f66d10637c3325bbb2b2d9853/Lib/traceback.py#L722 ↩
https://github.com/python/cpython/blob/6f09f69b7f85962f66d10637c3325bbb2b2d9853/Lib/traceback.py#L763 ↩
The text was updated successfully, but these errors were encountered: