Skip to main content

CLI and Python client for SWECC BenchAnything / Mesocosm (mesocosm + bench commands).

Project description

swecc-mesocosm

CLI and Python client for SWECC's BenchAnything / Mesocosm platform.

pip install swecc-mesocosm
mesocosm --help

One package, one command (mesocosm). There is no separate bench binary or swecc-bench on PyPI.

Env author quick start

pip install swecc-mesocosm   # once — covers CLI, bench_common, adapter HTTP stack
mkdir my-env && cd my-env
mesocosm init

ollama pull llama3.2
mesocosm run local         # Ollama + files/benchanything.json; starts files/adapter.py

requirements.txt from mesocosm init lists optional env libraries your files/env.py imports, installed locally and on the platform at submit time — not for installing the CLI. The default trivia scaffold uses only the stdlib.

When ready for the platform: mesocosm auth loginmesocosm env submit (creates the domain from benchanything.json in your repo) → mesocosm run create with the returned domain_id. See LOCAL_DEV.md in your repo after mesocosm init.

Command overview

Area Examples
Local env / Ollama mesocosm init, mesocosm run local
Auth & teams mesocosm auth login, mesocosm team create
Submit repo mesocosm env submit --github-url …
Platform runs mesocosm run create, mesocosm run export RUN_ID
Connectivity mesocosm doctor, mesocosm doctor --local
Pre-submit check mesocosm validate domain.json
Bench-api eval mesocosm eval test, mesocosm run get

Legacy repos with domain.py + DOMAIN_CONFIG (not created by mesocosm init) can still use mesocosm register path/to/domain.py.

See PACKAGING.md in this directory for how bench_common is bundled and how mesocosm run routes local vs platform subcommands.

Install (dev)

pip install -e ./packages/swecc-mesocosm

Configure

mesocosm doctor                    # checks https://api.swecc.org/bench (default)
mesocosm doctor --local            # checks adapter :8765 + local bench-api :8010
export MESOCOSM_LOCAL=1            # same local profile for all commands

Remote defaults: https://api.swecc.org/bench and https://api.swecc.org for auth. Local: see infra/mesocosm.env.example.

Non-interactive auth: mesocosm auth login always prompts for username and password. In CI or scripts, use export SWECC_BENCH_TOKEN=… (member JWT) or mesocosm auth guest instead.

Python client

import asyncio
from swecc_mesocosm import BenchClient

async def main():
    c = BenchClient(base_url="http://127.0.0.1:8010")
    try:
        domain = await c.get_domain("my-bench-id")
        print(domain["status"])
    finally:
        await c.aclose()

asyncio.run(main())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swecc_mesocosm-0.2.15-py3-none-any.whl (107.9 kB view details)

Uploaded Python 3

File details

Details for the file swecc_mesocosm-0.2.15-py3-none-any.whl.

File metadata

  • Download URL: swecc_mesocosm-0.2.15-py3-none-any.whl
  • Upload date:
  • Size: 107.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for swecc_mesocosm-0.2.15-py3-none-any.whl
Algorithm Hash digest
SHA256 4bf4cd234a0b16d43afcb1e60ef894d6b39cb40725a07cf1adf5f1e9c30cf01e
MD5 c1eeb9cca26bfad8cce9606134c3411b
BLAKE2b-256 8dd4a19b00461953471081c29469c123bdd03b74efc11a0b2692763a1f213637

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page