Failure injection
The simulator injects failures; the agent or application owns the retry policy.
from python_sim import Simulation
from python_sim.errors import SimulationTimeoutError
sim = Simulation(seed=42)
sim.stripe.fail_next("timeout")
try:
sim.stripe.list_payments(order_id="123")
except SimulationTimeoutError:
payments = sim.stripe.list_payments(order_id="123")
Failures are deterministic and one-shot. Supported values include:
timeout→SimulationTimeoutErrorservice_unavailable→ServiceUnavailableErrorpermission_denied→PermissionDeniedError429orrate_limited→RateLimitError500or integer HTTP status codes →HttpError
Failures can be queued on a service with service.fail_next(...). A failed call emits service.call.failed before raising.