This Package is designed to provide utilities for interfacing with GLOBE Observer Data, particularly the Mosquito Habitat Mapper and Landcover Datasets.
Run pip install go-utils
to install this package.
- Fork this Repo
- Clone the Repo onto your computer
- Create a branch (
git checkout -b new-feature
) - Make Changes
- Run necessary quality assurance tools (Formatter, Linter ,Unit Tests, Documentation).
- Add your changes (
git commit -am "Commit Message"
orgit add .
followed bygit commit -m "Commit Message"
) - Push your changes to the repo (
git push origin new-feature
) - Create a pull request
Do note you can locally build the package with pip install -e .
and run unit tests with pytest -s go_utils
.
There are also several tools used by this repository to ensure code quality:
This codebase uses the black formatter to check code format.
- Run
pip install black
to get the package. - After making changes, run
black ./
.
This will automatically format your code to Python standards.
To make sure imports are sorted, isort is used.
- Run
pip install isort
to get the package. - After making changes, run
isort ./ --profile black
(the profile black ensures no conflicts with the black formatter)
This codebase uses flake8 to lint code.
- Run
pip install flake8
to get the package. - After making changes, run
flake8
.
The linter will notify you of any code that isn't up to Python standards.
This codebase uses pytest to run unit tests for the code.
- Run
pip install pytest
to get the package. - After making changes, you can run
pytest
to run all unit tests. See Advanced Usage for more information.
These tests will make sure the code performs as expected.
To run tests relevant to a specific function/area, there are several markers that can be used:
landcover
: tests for Landcover proceduresmosquito
: tests for Mosquito Habitat Mapper proceduresutil
: tests for utility functionsdownloadtest
: tests for functions that download GLOBE data over the internet.cleanup
: tests for functions involved in the cleanup procedure
To specifically call a subset of tests, the -m
flag must be used (e.g. pytest -m "landcover"
). Using the or
keyword can be used to include multiple subsets (e.g. pytest -m "landcover or mosquito"
), but do note that the current markers aren't mutually exclusive (the and
keyword accomplishes this). Using the not
keyword can be used to exclude subsets (e.g. pytest -m "not downloadtest"
), this is particularly useful for excluding the download tests as those tend to take a considerable amount of time.
The documentation for this package is built by the pdoc module.
- Run
pip install pdoc
to get the package. - To preview the documentation, run
pdoc -t doc_template --docformat numpy go_utils
.
This will locally host an updated documentation website which lets you preview any changes you may have made to the documentation.