Skip to content

colors are missing on (Base)ExceptionGroup tracebacks in the pyrepl #125593

Closed
@graingert

Description

@graingert

Bug description:

import sys

class InvalidFruitException(Exception):
    pass


def eat_fruit(fruit):
    if fruit == "banana":
        raise InvalidFruitException("no herbs please, only fruit")
    if fruit == "rock":
        raise InvalidFruitException("too tough")


def demo_continue_loop():
    food = ["apple", "rock", "orange", "banana"]
    exceptions = []
    try:
        for i, f in enumerate(food):
            try:
                eat_fruit(f)
            except Exception as e:
                e.add_note(f"failed on loop {i=} {f=}")
                exceptions.append(e)
        if exceptions:
            raise ExceptionGroup("multiple errors eating food", exceptions)
    finally:
        del exceptions  # no refcycles please!

def main():
    demo_continue_loop()
    return 0

if __name__ == "__main__":
    sys.exit(main())

here's the output:
https://asciinema.org/a/681263
681263

I'd expect the eat_fruit() parts to be highlighted in red

CPython versions tested on:

3.13, 3.14

Operating systems tested on:

Linux, macOS

This was added in #112730 but it looks like ExceptionGroups were missed

Linked PRs

Metadata

Metadata

Assignees

Labels

3.13bugs and security fixes3.14bugs and security fixestype-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions