Skip to content

Conversation

@leonardo-panseri
Copy link
Contributor

@leonardo-panseri leonardo-panseri commented Aug 18, 2025

Summary

Fixes #726.

This pull request aims to close issue #726 (as pull request #727 aims to do), with an approach that considers also the problem highlighted by pull request #729.

I have written a more in depth comment explaining the two problems and my proposed solutions in #727, here a short summary:

My approach solves both problems, I have included tests from both pull requests in the test suite.

The only problem with this approach is that in the Stack for the ExceptionGroup there will be an empty Trace for the exception that has been re-raised (as exemplified by the test case).

Stack(
            exc_type="ExceptionGroup",
            # ...
            exceptions=[
                # ...
                tracebacks.Trace(stacks=[])
            ]
)

If the maintainers want this handled in another way I can easily do it.

Pull Request Check List

  • Do not open pull requests from your main branch – use a separate branch!
    • There's a ton of footguns waiting if you don't heed this warning. You can still go back to your project, create a branch from your main branch, push it, and open the pull request from the new branch.
    • This is not a pre-requisite for your pull request to be accepted, but you have been warned.
  • Added tests for changed code.
    • The CI fails with less than 100% coverage.
  • New APIs are added to our typing tests in api.py.
  • Updated documentation for changed code.
    • New functions/classes have to be added to docs/api.rst by hand.
    • Changed/added classes/methods/functions have appropriate versionadded, versionchanged, or deprecated directives.
      • The next version is the second number in the current release + 1. The first number represents the current year. So if the current version on PyPI is 23.1.0, the next version is gonna be 23.2.0. If the next version is the first in the new year, it'll be 24.1.0.
  • Documentation in .rst and .md files is written using semantic newlines.
  • Changes (and possible deprecations) are documented in the changelog.
  • Consider granting push permissions to the PR branch, so maintainers can fix minor issues themselves without pestering you.

Copy link
Owner

@hynek hynek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @leonardo-panseri, thanks for you patience!

I think this should do, I've even tried to literally copy over the tests from #727 and #729 and they passed so it should be fine.

Since your solution is based on their work, I've co-authored @leiyi2000 & @hinthornw to give credit where credit is due.

I hope this settles it now.

@hynek hynek merged commit addf622 into hynek:main Sep 11, 2025
20 checks passed
@jonashaag
Copy link

I'd like to use this, can we please get a release? :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RecursionError when logging re-raised Exception from an ExceptionGroup

3 participants