Streamlit app for Agile forecasting and Monte Carlo simulation using Azure DevOps data.
streamlit_app/app.py— Streamlit entrypoint and UI logicsrc/agile_mc/— reusable domain logic (pure functions, no Streamlit dependency)tests/— unit tests for domain logic
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]" # installs package + dev tools (pytest, ruff)
streamlit run streamlit_app/app.py- Python 3.12+
- Type hints where practical
- Prefer pure functions in
src/agile_mc; keep UI logic instreamlit_app/ - Add tests for all non-UI logic
- Do not commit secrets,
.envfiles, or local config - Keep changes small and reviewable
pytest --tb=short # run tests
ruff format src/ tests/ streamlit_app/ # format
ruff check src/ tests/ streamlit_app/ # lint
pip-audit -r requirements.lock # CVE scanRuntime dependencies are declared in pyproject.toml and pinned in requirements.lock
(generated by pip-compile). When changing dependencies:
pip-compile pyproject.toml --output-file requirements.lock