/wrf_hydro_py

Python API for the WRF-Hydro model

Primary LanguagePython

WRF-HYDRO-PY

Build Status Coverage Status PyPI GitHub release Documentation Status

IMPORTANT: This package is in the very early stages of development and the package API may change at any time. It is not recommended that this package be used for significant work until version 0.1

Description

wrfhydropy provides an end-to-end python interface to support reproducible research and construction of workflows involving the WRF-Hydro model. See the docs for an extended description of what-and-why wrfhydropy.

Documentation

Documentation is available on-line through help() and via readthedocs. Documentation is a work in progress, please feel free to help improve the documentation or to make an issue when the docs are inaccurate!

Contributing standards

Failure to adhere to contributing standards may result in your Pull Request being rejected.

pep8speaks

All pull requests will be linted automatically by pep8speaks and reported as a comment into the pull request. The pep8speaks configuration is specified in .pep8speaks.yml. All pull requests must satisfy pep8speaks.
Local linting can be performed after a pip install of pycodestyle. Pep8speaks linting reports also update with updated pull requests.

Additional Style Guidelines

Testing

All pull requests must pass automated testing (via TravisCI). Testing can be performed locally by running pytest in the wrfhydropy/tests directory. Currently, this testing relies on the nccp binary for comparing netcdf files. A docker container can be supplied for testing on request (and documentation will subsequently be placed here).

Coverage

Testing concludes by submitting a request to coveralls. This will automatically report changes of code coverage by the testing. Coverage should be maximized with every pull request. That is all new functions or classes must be accompanied by comprehensive additional unit/integration tests in the wrf_hydro_py/wrfhydropy/tests directory. Running coverage locally can be achieved by pip installing coverage and pytest-cov following a process similar to the following:

cd wrfhydropy/tests/
pytest --cov=wrfhydropy 
coverage html -d coverage_html
chrome coverage_html/index.html  # or your browser of choice