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.
| Attribute | Type | Description |
|---|---|---|
A_co | = TypeVar('A_co', covariant=True) | |
E_co | = TypeVar('E_co', covariant=True) |
Classes#
Functions#
succeed#
succeed(value) -> Success[A]| Parameter | Type | Description |
|---|---|---|
value | A |
Returns Success[A]
def succeed[A](value: A) -> Success[A]:
return Success(value)fail#
fail(error) -> Failure[E]| Parameter | Type | Description |
|---|---|---|
error | E |
Returns Failure[E]
def fail[E](error: E) -> Failure[E]:
return Failure(_fail_cause(error))die#
die(defect) -> Failure[Never]| Parameter | Type | Description |
|---|---|---|
defect | BaseException |
Returns Failure[Never]
def die(defect: BaseException) -> Failure[Never]:
return Failure(_die_cause(defect))interrupt#
interrupt(fiber_id=None) -> Failure[Never]| Parameter | Type | Description |
|---|---|---|
fiber_id | int | 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]]| Parameter | Type | Description |
|---|---|---|
ex | Exit[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]]| Parameter | Type | Description |
|---|---|---|
ex | Exit[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.
| Parameter | Type | Description |
|---|---|---|
exits | Iterable[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)