Add partition
This commit is contained in:
parent
206c0a0ec0
commit
92d458de85
|
@ -822,6 +822,25 @@ def sequence(s: Sequence[Result[A, B]]) -> Result[Sequence[A], B]:
|
|||
o = next(filter(not_, s))
|
||||
assert isinstance(o, Err)
|
||||
return o #type:ignore
|
||||
def partition(s: Sequence[Result[A, B]]) -> tuple[Sequence[A], Sequence[B]]:
|
||||
"""
|
||||
Turn a list of results into a list of Ok values and a list of Err values
|
||||
|
||||
>>> partition([Ok(1), Ok(2), Err('Aaaaa!'), Ok(4), Err('OH GOD HELP')])
|
||||
((1, 2, 4), ('Aaaaa!', 'OH GOD HELP'))
|
||||
"""
|
||||
return (
|
||||
tuple(
|
||||
succ.val
|
||||
for succ in s
|
||||
if isinstance(succ, Ok)
|
||||
),
|
||||
tuple(
|
||||
e.err
|
||||
for e in s
|
||||
if isinstance(e, Err)
|
||||
),
|
||||
)
|
||||
|
||||
def trace(x: A) -> A:
|
||||
"""
|
||||
|
|
Loading…
Reference in a new issue