babylon.engine.result
Result type for total functions with explicit error channels.
Spec 040, Discipline 2: Systems return Result[WorldState, TransitionError].
Exceptions are reserved for programmer errors (shape mismatches, missing nodes).
Expected failures go through the Result channel.
Usage:
from babylon.engine.result import Ok, Err, Result
def step(state: WorldState) -> Result[WorldState, TransitionError]:
if wealth < 0:
return Err(NegativeCapitalStock(node_id="C001", field="wealth", value=wealth))
return Ok(state.model_copy(update={"tick": state.tick + 1}))
Module Attributes
Type alias for the Result union. |
Classes
|
Error variant of Result. |
|
Success variant of Result. |
- class babylon.engine.result.Ok(value)[source]
Bases:
GenericSuccess variant of Result.
Holds the successful value from a system step.
- Parameters:
value (
TypeVar(T)) – The successful result value.
- __init__(value)
- Parameters:
value (T)
- Return type:
None
- class babylon.engine.result.Err(error)[source]
Bases:
GenericError variant of Result.
Holds a modeled failure from a system step.
- Parameters:
error (
TypeVar(E)) – The error describing what went wrong.
- unwrap()[source]
Raise ValueError — cannot unwrap an Err.
- Raises:
ValueError – Always, with the error message.
- Return type:
- __init__(error)
- Parameters:
error (E)
- Return type:
None