|
1 | 1 | # montest |
2 | | -A stochastic BDD framework for Python designed to test non-deterministic systems (e.g., LLMs) by evaluating statistical distributions rather than binary outcomes |
| 2 | + |
| 3 | +[](https://github.com/BBVA/montest/actions/workflows/ci.yml) |
| 4 | + |
| 5 | +A stochastic BDD framework for Python designed to test non-deterministic systems (e.g., LLMs) by evaluating statistical distributions rather than binary outcomes. |
| 6 | + |
| 7 | +## License |
| 8 | + |
| 9 | +Copyright 2026 Banco Bilbao Vizcaya Argentaria, S.A. |
| 10 | + |
| 11 | +Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). |
| 12 | +See the [NOTICE](NOTICE) file for additional attribution information. |
| 13 | + |
| 14 | +## Development Setup |
| 15 | + |
| 16 | +### Prerequisites (without Nix) |
| 17 | + |
| 18 | +You will need the following tools installed on your system: |
| 19 | + |
| 20 | +- **Python 3.11, 3.12, 3.13, and 3.14** — all four versions must be discoverable on `$PATH` as `python3.11`, `python3.12`, `python3.13`, and `python3.14` |
| 21 | +- **[uv](https://docs.astral.sh/uv/)** — fast Python package and project manager |
| 22 | +- **[Task](https://taskfile.dev/)** (`go-task`) — task runner used to execute all CI steps |
| 23 | + |
| 24 | +Once the tools are available, install the project dependencies: |
| 25 | + |
| 26 | +```bash |
| 27 | +task sync |
| 28 | +``` |
| 29 | + |
| 30 | +Then you can run the individual workflow steps: |
| 31 | + |
| 32 | +```bash |
| 33 | +task lint # ruff linter |
| 34 | +task typecheck # mypy type checker |
| 35 | +task test # run tests with the default tox env (py311) |
| 36 | +task test TOX_ENV=py313 # run tests against a specific Python version |
| 37 | +``` |
| 38 | + |
| 39 | +### Prerequisites (with Nix) |
| 40 | + |
| 41 | +If you have [Nix](https://nixos.org/) with [flakes](https://nixos.wiki/wiki/Flakes) enabled, all required tools are provided automatically by the dev shell — no manual installation needed: |
| 42 | + |
| 43 | +```bash |
| 44 | +nix develop |
| 45 | +``` |
| 46 | + |
| 47 | +This drops you into a shell that has `uv`, `task`, and Python 3.11–3.14 all ready to use. The same `task` commands above apply once you are inside the dev shell. |
0 commit comments