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.2.3.tar.gz (42.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.2.3-py3-none-any.whl (58.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sebench-0.2.3.tar.gz
  • Upload date:
  • Size: 42.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.2.3.tar.gz
Algorithm Hash digest
SHA256 fded3df8e284b0b41714e891c8dfa436c48f6ed801ffd056a9b384cd66b68657
MD5 09f6b18bfb2f93b7b0b037ea6a62025c
BLAKE2b-256 9bd662e9807160de7007504ef44359f2f91fe694406c899cb5374d58a7ec8278

See more details on using hashes here.

Provenance

The following attestation bundles were made for sebench-0.2.3.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.2.3-py3-none-any.whl.

File metadata

  • Download URL: sebench-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 58.9 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.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 11c8d4cddad6971188a8ab2159fa5bf078faa483711b16f2d84d1fd88d201f2b
MD5 36c61d7df9cbc986415579460b22f294
BLAKE2b-256 6b1d8570dedb538cfdba5ad94c4cc12d3a60d51e5bae12a8c008e7d0d52f0664

See more details on using hashes here.

Provenance

The following attestation bundles were made for sebench-0.2.3-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