Python examples
These patterns use the public biosimulant distribution.
Blocking
from biosimulant import Client
with Client() as client:
result = client.run("demi/microbiology-hello-world-growth@1.0.0", timeout=300)Async
import asyncio
from biosimulant import AsyncClient
async def main():
async with AsyncClient() as client:
result = await client.run(
"demi/microbiology-hello-world-growth@1.0.0",
timeout=300,
)
print(result.outputs)
asyncio.run(main())Background run
from biosimulant import Client
with Client() as client:
run = client.runs.create(
ref="demi/microbiology-hello-world-growth@1.0.0",
metadata={"batch": "2026-07-19"},
)
save_run_id(run.id)Cancellation
with Client() as client:
run = client.runs.retrieve(load_run_id())
run.cancel()Timeout recovery
from biosimulant import Client, RunTimeout
with Client() as client:
run = client.runs.create(ref="demi/microbiology-hello-world-growth@1.0.0")
try:
result = run.wait(timeout=10)
except RunTimeout as exc:
save_run_id(exc.run.id) # the server job was not cancelledParallel runs
import asyncio
from biosimulant import AsyncClient
async def main():
async with AsyncClient() as client:
results = await asyncio.gather(*[
client.run(
"demi/microbiology-hello-world-growth@1.0.0",
inputs={"initial_cells": cells},
timeout=300,
)
for cells in (10, 20, 40)
])
return [result.outputs for result in results]The account’s compute-concurrency limit still applies; excess jobs remain queued.
Webhook verification
from biosimulant import verify_webhook_signature
def receive_webhook(raw_body: bytes, signature: str) -> None:
verify_webhook_signature(
raw_body,
signature,
secret_from_your_secret_manager(),
)
process_event(raw_body)Pass the raw, unmodified request bytes and the Biosimulant-Signature header.