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

gh-102778: Add sys.last_exc, deprecate sys.last_type, sys.last_value,sys.last_traceback #102779

Merged
merged 9 commits into from
Mar 18, 2023

Conversation

iritkatriel
Copy link
Member

@iritkatriel iritkatriel commented Mar 17, 2023

Doc/library/sys.rst Outdated Show resolved Hide resolved
Copy link
Member

@AlexWaygood AlexWaygood left a comment

Choose a reason for hiding this comment

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

A few more docs nits

Doc/whatsnew/3.12.rst Outdated Show resolved Hide resolved
Doc/whatsnew/3.12.rst Outdated Show resolved Hide resolved
@iritkatriel iritkatriel added the 🔨 test-with-refleak-buildbots Test PR w/ refleak buildbots; report in status section label Mar 17, 2023
@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit e1cc312 🤖

If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again.

@bedevere-bot bedevere-bot removed the 🔨 test-with-refleak-buildbots Test PR w/ refleak buildbots; report in status section label Mar 17, 2023
@iritkatriel iritkatriel requested a review from gvanrossum March 17, 2023 18:03
Copy link
Member

@gvanrossum gvanrossum left a comment

Choose a reason for hiding this comment

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

Shouldn’t pdb.pm() be changed to use sys.last_exc?

@iritkatriel
Copy link
Member Author

Shouldn’t pdb.pm() be changed to use sys.last_exc?

Yes, idlelib too. But I'm not sure whether we do that now or in 3.14 when it won't interfere with backports.

Doc/whatsnew/3.12.rst Outdated Show resolved Hide resolved
@gvanrossum
Copy link
Member

Shouldn’t pdb.pm() be changed to use sys.last_exc?

Yes, idlelib too. But I'm not sure whether we do that now or in 3.14 when it won't interfere with backports.

I would do it now, but look both (in case user code sets one or the other): if sys.last_exc exists, use that, else if sys.last_(type,value,traceback) exist, use those, else fail. Then in the future we can delete the code checking for the latter.

@iritkatriel iritkatriel added the 🔨 test-with-refleak-buildbots Test PR w/ refleak buildbots; report in status section label Mar 17, 2023
@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit 2ce2c26 🤖

If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again.

@bedevere-bot bedevere-bot removed the 🔨 test-with-refleak-buildbots Test PR w/ refleak buildbots; report in status section label Mar 17, 2023
@iritkatriel iritkatriel merged commit e1e9bab into python:main Mar 18, 2023
@terryjreedy
Copy link
Member

terryjreedy commented Mar 19, 2023

Please revert the changes to idlelib. (Why the rush before I could respond.) I dislike the awkward workaround changes, which IDLE does not need, and they cannot be backported. I would much prefer to make more extensive changes that get rid of nearly all references to the deprecated attributes and which can be backported.

For instance, in test_stackviewer setup, replace svs.last_type ... = svs.exec_info() with svs.last_exc = svs.exec_info()[1]. In the teardown, replace del ... with del svs.last_exc, leaving no usage of the deprecated names. In other modules, add sys.last_exc = sys.last_value and eliminate all other uses of the old names. In June 2024, eliminate the use of last_value.

Let me request again (from the previous PR that was closed) that idlelib changes be put in a separate PR that I can review and backport.

@iritkatriel
Copy link
Member Author

Sorry, will revert and fix.

@iritkatriel
Copy link
Member Author

In other modules, add sys.last_exc = sys.last_value and eliminate all other uses of the old names.

If a user tries to access sys.last_type or sys.last_traceback then it won't work. Is this not an issue?

@iritkatriel iritkatriel deleted the sys-last-exc branch March 19, 2023 11:50
@terryjreedy
Copy link
Member

terryjreedy commented Mar 19, 2023

Yes, sys.last_type, sys.last_value, sys.last_traceback = excinfo should remain as long as the REPL does the same. I should add a comment in the file. I believe other settings are only for internal use for stackviewer and its test, but will check.

Fidget-Spinner pushed a commit to Fidget-Spinner/cpython that referenced this pull request Mar 27, 2023
warsaw pushed a commit to warsaw/cpython that referenced this pull request Apr 11, 2023
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.

5 participants