GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-102755: Add PyErr_DisplayException(exc) by iritkatriel · Pull Request #102756 · python/cpython

Conversation

@iritkatriel

@iritkatriel iritkatriel commented Mar 16, 2023 •
edited by bedevere-bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Fixes #102755.

  • Issue: Add PyErr_DisplayException(exc) as replacement for PyErr_Display(typ, exc, tb) #102755

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@iritkatriel
pythongh-102755: Add PyErr_DisplayException(exc)
cd19310
@bedevere-bot bedevere-bot mentioned this pull request Mar 16, 2023
Add PyErr_DisplayException(exc) as replacement for PyErr_Display(typ, exc, tb) #102755
Closed
@bedevere-bot bedevere-bot added the awaiting core review label Mar 16, 2023
@iritkatriel iritkatriel added the interpreter-core (Objects, Python, Grammar, and Parser dirs) label Mar 16, 2023
@iritkatriel
add news
17a9f88
@iritkatriel
iritkatriel requested review from gvanrossum and markshannon March 16, 2023 14:48
@iritkatriel

iritkatriel commented Mar 16, 2023

Copy link
Copy Markdown
Member Author

PyErr_Display is not documented, but it is mentioned in the stable abi file:

Doc/data/stable_abi.dat:function,PyErr_Display,3.2,,

I'm not sure what this means for PyErr_DisplayException.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iritkatriel
add to stable-abi
90b2d59
@iritkatriel
iritkatriel requested a review from a team as a code owner March 16, 2023 15:33
@markshannon

markshannon commented Mar 16, 2023

Copy link
Copy Markdown
Member

It looks to me as if PyErr_Display is some sort of internal debugging function.
Is it used anywhere?

Does git blame tell you anything about why it was added to the stable ABI?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@gvanrossum

gvanrossum commented Mar 16, 2023

Copy link
Copy Markdown
Member

It looks to me as if PyErr_Display is some sort of internal debugging function.

It's what prints traceback when an uncaught exception occurs in the repl or in a script, (it's what the default sys.excepthook uses) so I'd hardly call it internal. It is the standard way of producing a standard formatted exception from C.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

gvanrossum
gvanrossum approved these changes Mar 16, 2023
View reviewed changes

@gvanrossum gvanrossum left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Nice cleanup!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread Doc/c-api/exceptions.rst Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Python/sysmodule.c
/*[clinic end generated code: output=18d99fdda21b6b5e input=ecf606fa826f19d9]*/
{
PyErr_Display(exctype, value, traceback);
PyErr_Display(NULL, value, traceback);

@gvanrossum gvanrossum Mar 16, 2023

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

So this will hit the case where PyErr_Display() stuffs the given traceback onto the exception if the latter doesn't already have one? (Else why not use PyErr_DisplayException(), right?)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@iritkatriel iritkatriel Mar 16, 2023

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Exactly. This is sys.excepthook() which anyone can call so we need to deprecate the case where traceback != value.__traceback__ before we can use PyErr_DisplayException here. (And eventually go through some kind of migration exercise for excepthook's signature, but let's survive the __exit__ discussion first).

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting core review labels Mar 16, 2023
iritkatriel added 2 commits March 16, 2023 18:38
@iritkatriel
longer doc
2c4f399
@iritkatriel
Merge remote-tracking branch 'upstream/main' into DisplayException
ab84a68
@iritkatriel iritkatriel added the 🔨 test-with-refleak-buildbots Test PR w/ refleak buildbots; report in status section label Mar 16, 2023
@bedevere-bot

bedevere-bot commented Mar 16, 2023

Copy link
Copy Markdown

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

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot removed the 🔨 test-with-refleak-buildbots Test PR w/ refleak buildbots; report in status section label Mar 16, 2023
@gvanrossum

gvanrossum commented Mar 16, 2023

Copy link
Copy Markdown
Member

All good

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iritkatriel
iritkatriel merged commit 3f9285a into python:main Mar 16, 2023
@bedevere-bot bedevere-bot removed the awaiting merge label Mar 16, 2023
carljm added a commit to carljm/cpython that referenced this pull request Mar 17, 2023
@carljm
Merge branch 'main' into inlinecomp2
1a8f4a0
* main: (34 commits)
  pythongh-102701: Fix overflow in dictobject.c (pythonGH-102750)
  pythonGH-78530: add support for generators in `asyncio.wait` (python#102761)
  Increase stack reserve size for Windows debug builds to avoid test crashes (pythonGH-102764)
  pythongh-102755: Add PyErr_DisplayException(exc) (python#102756)
  Fix outdated note about 'int' rounding or truncating (python#102736)
  pythongh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (python#102760)
  pythongh-99726: Improves correctness of stat results for Windows, and uses faster API when available (pythonGH-102149)
  pythongh-102192: remove redundant exception fields from ssl module socket (python#102466)
  pythongh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (python#102743)
  pythongh-102737: Un-ignore ceval.c in the CI globals check (pythongh-102745)
  pythonGH-102748: remove legacy support for generator based coroutines from `asyncio.iscoroutine` (python#102749)
  pythongh-102721: Improve coverage of `_collections_abc._CallableGenericAlias` (python#102722)
  pythonGH-102653: Make recipe docstring show the correct distribution (python#102742)
  Add comments to `{typing,_collections_abc}._type_repr` about each other (python#102752)
  pythongh-102594: PyErr_SetObject adds note to exception raised on normalization error (python#102675)
  pythongh-94440: Fix issue of ProcessPoolExecutor shutdown hanging (python#94468)
  pythonGH-100112:  avoid using iterable coroutines in asyncio internally (python#100128)
  pythongh-102690: Use Edge as fallback in webbrowser instead of IE (python#102691)
  pythongh-102660: Fix Refleaks in import.c (python#102744)
  pythongh-102738: remove from cases generator the code related to register instructions (python#102739)
  ...
kumaraditya303
kumaraditya303 reviewed Mar 19, 2023
View reviewed changes
Comment thread Python/pylifecycle.c Resolved

Uh oh!

There was an error while loading. Please reload this page.

@iritkatriel
iritkatriel deleted the DisplayException branch March 19, 2023 11:50
Fidget-Spinner pushed a commit to Fidget-Spinner/cpython that referenced this pull request Mar 27, 2023
@iritkatriel @Fidget-Spinner
pythongh-102755: Add PyErr_DisplayException(exc) (python#102756)
dd639e7
warsaw pushed a commit to warsaw/cpython that referenced this pull request Apr 11, 2023
@iritkatriel @warsaw
pythongh-102755: Add PyErr_DisplayException(exc) (python#102756)
9cd991f
@coderabbitai coderabbitai Bot mentioned this pull request Jul 27, 2026
thread: add CPython 3.14 ExceptHookArgs pyre-lang/pyre#843
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@kumaraditya303 kumaraditya303 kumaraditya303 left review comments
@gvanrossum gvanrossum gvanrossum approved these changes
@markshannon markshannon Awaiting requested review from markshannon

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

interpreter-core (Objects, Python, Grammar, and Parser dirs)

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Add PyErr_DisplayException(exc) as replacement for PyErr_Display(typ, exc, tb)

Uh oh!

There was an error while loading. Please reload this page.

5 participants

@iritkatriel @markshannon @gvanrossum @bedevere-bot @kumaraditya303
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.