NOTEBOOK_BLACK_CONFIG=-t py37 -l 80
NOTEBOOK_BLACK_TARGETS=doc/sphinx/notebooks
NOTEBOOK_ISORT_CONFIG=--atomic -l 80 --trailing-comma --remove-redundant-aliases --multi-line 3
NOTEBOOK_ISORT_TARGETS=doc/sphinx/notebooks
BLACK_CONFIG=-t py37 -l 100
BLACK_TARGETS=gpflow tests benchmark doc/*.py setup.py
ISORT_CONFIG=--atomic -l 100 --trailing-comma --remove-redundant-aliases --multi-line 3
ISORT_TARGETS=gpflow tests benchmark doc/*.py setup.py
MYPY_TARGETS=gpflow tests benchmark doc/*.py doc/sphinx/notebooks/getting_started setup.py
.PHONY: help clean dev-install install package format format-check type-check test check-all
help:
@echo "The following make targets are available:"
@echo " dev-install install all dependencies for dev environment and sets a egg link to the project sources"
@echo " install install all dependencies and the project in the current environment"
@echo " package build pip package"
@echo " clean removes package, build files and egg info"
@echo " format auto-format code"
@echo " format-check check that code has been formatted correctly"
@echo " type-check check that mypy is happy with type annotations"
@echo " test run all tests"
@echo " check-all run format-check, type-check, and test (as run by the continuous integration system)"
clean:
rm -rf dist *.egg-info build
dev-install:
pip install -r tests_requirements.txt -e .
install:
pip install .
package:
python setup.py bdist
format:
black $(BLACK_CONFIG) $(BLACK_TARGETS)
black $(NOTEBOOK_BLACK_CONFIG) $(NOTEBOOK_BLACK_TARGETS)
isort $(ISORT_CONFIG) $(ISORT_TARGETS)
isort $(NOTEBOOK_ISORT_CONFIG) $(NOTEBOOK_ISORT_TARGETS)
format-check:
black --check $(BLACK_CONFIG) $(BLACK_TARGETS)
black --check $(NOTEBOOK_BLACK_CONFIG) $(NOTEBOOK_BLACK_TARGETS)
isort --check-only $(ISORT_CONFIG) $(ISORT_TARGETS)
isort --check-only $(NOTEBOOK_ISORT_CONFIG) $(NOTEBOOK_ISORT_TARGETS)
type-check:
mypy `python -m gpflow.mypy_flags` $(MYPY_TARGETS)
test:
pytest -n auto --dist loadfile -v --durations=10 tests/
check-all: format-check type-check test