Contributing
We’d love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow.
Guidelines
Write your patch
Add a test case to your patch
Make sure that all tests run properly
Send your patch as a PR
Installation
You can install the WandaToolbox package as follows:
pip install wandatoolbox
Note that not all dependencies are installed by default, check requirements.txt
Development installation and testing
For development you can use the ‘editable’ installation:
pip install -r requirements.txt
pip install -e .
pytest
Building the package
Building the backage is done as follows:
pip install setuptools wheel
python setup.py sdist bdist_wheel
Creating a release
We use bump2version to update the version numbers. Bump2version will also create a tag and commit the changes. This can then be pushed using
cd <root of project>
pip install bump2version
bump2version <major|minor|patch>
git push origin <branch> --tags
The Github Actions have been configured to run the tests and flake8 linting and publish to test.Pypi on every push. If a commit is also tagged it will also publish to Pypi.
Development roadmap (Todo)
functionality for first official release:
[x] syschar plot implementation
[x] image plot implementation
[x] text plot implementation
[x] table plot implementation
[x] Monte-carlo scripts
[ ] unit testing
[ ] tox testing
[ ] Goal seek algorithm
[ ] parameter script read input, run,read output
[ ] calibration routine (goalseek?) for scalar, multiple scalar, timeseries
[ ] calibration for multiple parameters?
[ ] Simple optimization (1 parameter, 1 output?)
[ ] Valve characteristic creation and data import in Wanda
[ ] Pump characteristic creation and data import in Wanda
[ ] Epanet scripts and skeletonizer functions
[ ] Any other future developments ??