What is the motivation for returning `None` on empty splits? I feel like this creates an unnecessary asymmetry. I don't personally have a use case for the this feature so I may be missing something but it seems like it would force an annoying pattern:
``` try: foo() except ExceptionGroup as eg: g1, g2 = eg.split(predicate) for e in g1: handle_true(e) for e in g2: handle_false(e) ``` Would need to be written: ``` try: foo() except ExceptionGroup as eg: g1, g2 = eg.split(predicate) if g1 is not None: for e in g1: handle_true(e) if g2 is not None: for e in g2: handle_false(e) ``` Also this creates an subtle difference with subgroup: ``` g1, g2 = eg.split(predicate) h1, h2 = eg.subgroup(predicate), eg.subgroup(lambda e: not predicate(e)) assert g1 == h1 and g2 == h2 # only true if `None not in {g1, g2}` ``` On Mon, Feb 22, 2021 at 4:47 PM Irit Katriel via Python-Dev < python-dev@python.org> wrote: > > Hi all, > > We would like to request feedback on PEP 654 -- Exception Groups and > except*. > > https://www.python.org/dev/peps/pep-0654/ > > It proposes language extensions that allow programs to raise and handle > multiple unrelated > exceptions simultaneously, motivated by the needs of asyncio and other > concurrency libraries, > but with other use cases as well. > > * A new standard exception type, ExceptionGroup, to represent multiple > exceptions with > shared traceback. > * Updates to the traceback printing code to display (possibly nested) > ExceptionGroups. > * A new syntax except* for handling ExceptionGroups. > > A reference implementation (unreviewed) can be found at: > https://github.com/iritkatriel/cpython/pull/10 > > Thank you for your help > > Kind regards > Irit, Yury & Guido > > > _______________________________________________ > Python-Dev mailing list -- python-dev@python.org > To unsubscribe send an email to python-dev-le...@python.org > https://mail.python.org/mailman3/lists/python-dev.python.org/ > Message archived at > https://mail.python.org/archives/list/python-dev@python.org/message/L5Q27DVKOKZCDNCAWRIQVOZ5DZCZHLRM/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/WWJ6KLJFZ627UBB4MUTIJQVWWO6LRISO/ Code of Conduct: http://python.org/psf/codeofconduct/