synthesize a traceback to get a normal exc_info from an exception #12187
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
main
is currently broken on 3.12:While it seems like #11394 may have been the direct trigger for the test failure, it appears the error was first introduced earlier in a hasty attempt to remove some
DeprecationWarning
s (25f4e6e). It turns out that while the documentation at https://docs.python.org/3.12/library/shutil.html#shutil.rmtree still uses the name "excinfo" for the third argument toonexc
,onexc
actually has aBaseException
for the third argument instead of asys.exc_info()
, as per https://docs.python.org/3.12/whatsnew/3.12.html#shutil.Solution
sys.exc_info()
parts anywhere, just convert anysys.exc_info()
to aBaseException
in our callback wrapper, and switch to explicitly only handlingBaseException
in our error callbacks.