python / exceptiongroups

An early draft of a PEP around Exception Groups in Python
21 stars 4 forks source link

Raw notes from the meeting #1

Open ambv opened 4 years ago

ambv commented 4 years ago

Approach

Requirements from AsyncIO Requirements from Trio Narrow down to find one that works for both Extra syntax? A few API functions to unpack information? How do you represent tracebacks?

Challenge: it's a complicated problem space, it's important to have clear explanations for users.

Motivation

Explain the problem in general. Use cases:

async/await

Task groups/nurseries is the way to structure code.

multiprocessing

Collect results from many workers.

unittest

actual exception + tearDown() exception

Hypothesis

Approaches

Modify the try-except statement

run except: clauses multiple times to unpack all exceptions it's subtle: is it backwards-compatible? new code wrapped around old code or vice versa: what will happen?

Has to be within the current syntax: otherwise none of the existing code will adopt it CancelledError part of ExceptionGroup: existing asyncio code will break

Make ExceptionGroup a container of Exception

how to tie together: correctly handling extraction of a particular exception correctly handling tracebacks

1st1 commented 4 years ago

I wrote a bit more detailed overview of what we want to have in the first draft: https://github.com/python/exceptiongroups/issues/2