This package requires that you have python 3.7+ installed and it is recommended you use a virtual environment.
To install this package you need to:
-
Clone this repo:
git clone git@github.com:bsgip/echo.git -
Change to the echo directory:
cd echo -
Install using uv (recommended):
uv sync --python 3.13 --all-extrasor pip:pip install --group all
NOTE: This package is not on pypi - pip install echo will NOT install this package. It will install a different package with the same name.
The following solvers can be used
Free for academic use only:
- CPLEX (recommended): This has been tested the most. It requires a license but is free for academic users. To install, follow instructions here. After installing CPLEX you will need to add the binaries to your system path.
- GUROBI: Minimal testing: It requires a license but is free for academic users. Check their website for installation instructions.
Open source:
- CBC: This solver can be used provided you only include linear costs (no quadratic costs or regularisation). Information on the solver is available here. For installing on ubuntu run
sudo apt-get install -y coinor-cbc
Make sure you have the documentation dependencies installed
-
Generate the documentation for the echo package (from docstrings)
sphinx-apidoc --force --implicit-namespaces --module-first --no-toc --separate -o docs/source/_reference src/echoThe auto-generated documentation can be found indocs/source/_reference -
Build the documentation (as html)
sphinx-build -b html docs/source docs/_buildThe built documentation can be found indocs/_build. Warnings about duplicated labels can be safely ignored.
Please see the design file here.
Please log any issues in the issue tracker.
| Item | Status | Reference | Completion Date |
|---|---|---|---|
| Add ruff and uv | Complete | Jun 2026 | |
| Add ty | Planning | Aug 2026 | |
| Documentation update | Underway | Sep 2026 | |
| Examples update | Underway | Sep 2026 | |
| Standardise data injection process | Planning | #103 | Sep 2026 |
| Upgrade to pydantic v2 | Not Started | #101 | Oct 2026 |
| Add linopy as parser option | Planning | #102 | Dec 2026 |