Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Passing a Proxy object to traceback.TracebackExcetion() for "exc_type" #111922

Closed
ericsnowcurrently opened this issue Nov 9, 2023 · 2 comments
Labels
3.13 bugs and security fixes stdlib Python modules in the Lib dir type-feature A feature request or enhancement

Comments

@ericsnowcurrently
Copy link
Member

ericsnowcurrently commented Nov 9, 2023

Feature or enhancement

Currently traceback.TracebackException appears to expect the "exc_type" argument to be None or an exception type object. 12

In 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 that TracebackException 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 a str were passed in then we'd parse out the info and create a types.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 to exc_type. It also matters when pickling, where you may not want to pickle a user-defined exception type.

Linked PRs

Footnotes

  1. https://github.com/python/cpython/blob/6f09f69b7f85962f66d10637c3325bbb2b2d9853/Lib/traceback.py#L722

  2. https://github.com/python/cpython/blob/6f09f69b7f85962f66d10637c3325bbb2b2d9853/Lib/traceback.py#L763

@ericsnowcurrently ericsnowcurrently added type-feature A feature request or enhancement stdlib Python modules in the Lib dir 3.13 bugs and security fixes labels Nov 9, 2023
@iritkatriel
Copy link
Member

I want to suggest an alternative which I think is more in the spirit of what TracebackException is supposed to be (a lightweight snapshot): #112333

@ericsnowcurrently
Copy link
Member Author

I'm closing this in favor of gh-112332 (and gh-112333).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.13 bugs and security fixes stdlib Python modules in the Lib dir type-feature A feature request or enhancement
Projects
None yet
Development

No branches or pull requests

2 participants