Skip to main content

Hierarchical, multi-fidelity system simulation framework with a hardware-in-the-loop seam.

Project description

sebench

A Python framework for hierarchical, multi-fidelity system simulation with a hardware-in-the-loop seam.

Build abstract models of complex systems, drill down into concrete implementations, swap in real hardware without touching the rest, and get deterministic replay, trace analysis, and requirement verification along the way.

Install

pip install sebench

The 3D-printer demo (printerlab) lives in this repo as a reference implementation. It is not published to PyPI.

Quickstart

git clone https://github.com/<you>/sebench.git
cd sebench
make setup              # uv sync + pre-commit install
make demo-pyramid       # simulate printing a 20 mm pyramid (~10 s wall-clock)
make report-server      # open http://localhost:8765 to view the report

Development workflow

Daily work

git add <files>
git commit -m "your message"   # pre-commit runs: ruff fix, format, whitespace
git push                       # pre-push hook runs: lint + typecheck + unit tests

If pre-commit fixes files, re-add them and commit again:

git add <files>
git commit -m "your message"

What CI does automatically (no action needed)

On every push to main or pull request:

  • Ruff lint + format check
  • Mypy type check
  • Determinism lint
  • Full test matrix (Python 3.11 / 3.12 / 3.13 on Ubuntu, macOS, Windows)
  • Coverage report (must be ≥ 80%)
  • Uploads coverage.xml and test-results.xml as artifacts

Releasing to PyPI

  1. Go to Actions → Release sebench to PyPI → Run workflow
  2. Enter the version number (e.g. 0.2.0)
  3. Click Run workflow — everything else is automatic

The workflow will: bump pyproject.toml, commit + tag on main, run the full test suite, build the wheel, publish to PyPI, and create a GitHub Release with the build artifacts.

Prerequisite: configure PyPI Trusted Publishing for this repo at pypi.org (Settings → Publishing).

Docs

License

MIT. See LICENSE.

Project details


Download files

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

Source Distribution

sebench-0.4.0.tar.gz (66.8 kB view details)

Uploaded Source

Built Distribution

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

sebench-0.4.0-py3-none-any.whl (89.5 kB view details)

Uploaded Python 3

File details

Details for the file sebench-0.4.0.tar.gz.

File metadata

  • Download URL: sebench-0.4.0.tar.gz
  • Upload date:
  • Size: 66.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sebench-0.4.0.tar.gz
Algorithm Hash digest
SHA256 24421a8be556fe32efbe465bf369212aa07beb03c31dced458984e9944b64552
MD5 15b31493b5da6cb814ae0a95633aabbb
BLAKE2b-256 1f2c32ee099859d2bcb8afffc6b3230769089e9fcf77e5337b4baad67a401cb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sebench-0.4.0.tar.gz:

Publisher: release.yml on dn-scribe/sebench

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sebench-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: sebench-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 89.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sebench-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 50f7666475a3b32108b00ad9e414463ef2f66719f92e82a371c41ba1026067aa
MD5 74257051173eb9343bf2c513dc57203c
BLAKE2b-256 ea80ff6e418bba3c09bb4386d1b0489234c240b6632cd4341c189c76609b4724

See more details on using hashes here.

Provenance

The following attestation bundles were made for sebench-0.4.0-py3-none-any.whl:

Publisher: release.yml on dn-scribe/sebench

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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