GitHub

API reference for exit.

The outcome of running an effect: Success[A] | Failure[E].

Test which one you have with match (case Success(v) / case Failure(cause)), isinstance, or the is_success / is_failure guards. The methods exist on both classes, so they work on an Exit without narrowing first.

AttributeTypeDescription
A_co= TypeVar('A_co', covariant=True)
E_co= TypeVar('E_co', covariant=True)

Classes

Functions

succeed

succeed(value) -> Success[A]
ParameterTypeDescription
valueA

Returns Success[A]

def succeed[A](value: A) -> Success[A]:
    return Success(value)

fail

fail(error) -> Failure[E]
ParameterTypeDescription
errorE

Returns Failure[E]

def fail[E](error: E) -> Failure[E]:
    return Failure(_fail_cause(error))

die

die(defect) -> Failure[Never]
ParameterTypeDescription
defectBaseException

Returns Failure[Never]

def die(defect: BaseException) -> Failure[Never]:
    return Failure(_die_cause(defect))

interrupt

interrupt(fiber_id=None) -> Failure[Never]
ParameterTypeDescription
fiber_idint | None = None

Returns Failure[Never]

def interrupt(fiber_id: int | None = None) -> Failure[Never]:
    return Failure(_interrupt_cause(fiber_id))

is_success

is_success(ex) -> TypeIs[Success[A]]
ParameterTypeDescription
exExit[A, E]

Returns TypeIs[Success[A]]

def is_success[A, E](ex: Exit[A, E]) -> TypeIs[Success[A]]:
    return isinstance(ex, Success)

is_failure

is_failure(ex) -> TypeIs[Failure[E]]
ParameterTypeDescription
exExit[A, E]

Returns TypeIs[Failure[E]]

def is_failure[A, E](ex: Exit[A, E]) -> TypeIs[Failure[E]]:
    return isinstance(ex, Failure)

as_void_all

as_void_all(exits) -> Exit[None, E]

Success(None) if every exit succeeded, otherwise one failure holding every failed exit's reasons, in order.

ParameterTypeDescription
exitsIterable[Exit[object, E]]

Returns Exit[None, E]

def as_void_all[E = Never](exits: Iterable[Exit[object, E]]) -> Exit[None, E]:
    """``Success(None)`` if every exit succeeded, otherwise one failure
    holding every failed exit's reasons, in order."""
    reasons = tuple(r for ex in exits if isinstance(ex, Failure) for r in ex.cause.reasons)
    return Failure(Cause(reasons)) if reasons else Success(None)