Objects should be immutable whenever possible -- this allows us to avoid unintended side effects. Never trust the user's input -- check all passed arguments carefully.
Code must work with all current Python versions from 3.9 to 3.12. Also, code must work on all major platforms: Windows, Linux, and Mac OSX.
-
Please follow the suggestions made by Pylint and Flake8 -- violations require good justification!
-
Docstrings must be written in Numpy-docstring style.
-
Naming convention for variables and methods is to use
lower_case_with_underscores
andCapitalizedWords
for class names. -
Use type hints.
-
Any implemented feature must come with corresponding tests.
-
Nox is used to test different Python versions -- see noxfile.py.
- Install all REQUIREMENTS listed in requirements.txt by running:
pip install -r docs/requirements.txt
- Install the WaterBenchmarkHub by running:
pip install .
- Build the HTML files by running:
make html
- Build the PDF file by running
make latexpdf