141 lines
6.7 KiB
Makefile
141 lines
6.7 KiB
Makefile
# Generated by Medikit 0.7.3 on 2019-07-20.
|
|
# All changes will be overriden.
|
|
# Edit Projectfile and run “make update” (or “medikit update”) to regenerate.
|
|
|
|
|
|
PACKAGE ?= bonobo
|
|
PYTHON ?= $(shell which python || echo python)
|
|
PYTHON_BASENAME ?= $(shell basename $(PYTHON))
|
|
PYTHON_DIRNAME ?= $(shell dirname $(PYTHON))
|
|
PYTHON_REQUIREMENTS_FILE ?= requirements.txt
|
|
PYTHON_REQUIREMENTS_INLINE ?=
|
|
PYTHON_REQUIREMENTS_DEV_FILE ?= requirements-dev.txt
|
|
PYTHON_REQUIREMENTS_DEV_INLINE ?=
|
|
PYTHON_REQUIREMENTS_DOCKER_FILE ?= requirements-docker.txt
|
|
PYTHON_REQUIREMENTS_DOCKER_INLINE ?=
|
|
PYTHON_REQUIREMENTS_JUPYTER_FILE ?= requirements-jupyter.txt
|
|
PYTHON_REQUIREMENTS_JUPYTER_INLINE ?=
|
|
PYTHON_REQUIREMENTS_SQLALCHEMY_FILE ?= requirements-sqlalchemy.txt
|
|
PYTHON_REQUIREMENTS_SQLALCHEMY_INLINE ?=
|
|
QUICK ?=
|
|
PIP ?= $(PYTHON) -m pip
|
|
PIP_INSTALL_OPTIONS ?=
|
|
VERSION ?= $(shell git describe 2>/dev/null || git rev-parse --short HEAD)
|
|
PYTEST ?= $(PYTHON_DIRNAME)/pytest
|
|
PYTEST_OPTIONS ?= --capture=no --cov=$(PACKAGE) --cov-report html
|
|
SPHINX_BUILD ?= $(PYTHON_DIRNAME)/sphinx-build
|
|
SPHINX_OPTIONS ?=
|
|
SPHINX_SOURCEDIR ?= docs
|
|
SPHINX_BUILDDIR ?= $(SPHINX_SOURCEDIR)/_build
|
|
SPHINX_AUTOBUILD ?= $(PYTHON_DIRNAME)/sphinx-autobuild
|
|
MEDIKIT ?= $(PYTHON) -m medikit
|
|
MEDIKIT_UPDATE_OPTIONS ?=
|
|
MEDIKIT_VERSION ?= 0.7.3
|
|
|
|
.PHONY: $(SPHINX_SOURCEDIR) clean format help install install-dev install-docker install-jupyter install-sqlalchemy medikit quick test update update-requirements watch-$(SPHINX_SOURCEDIR)
|
|
|
|
install: .medikit/install ## Installs the project.
|
|
.medikit/install: $(PYTHON_REQUIREMENTS_FILE) setup.py
|
|
$(eval target := $(shell echo $@ | rev | cut -d/ -f1 | rev))
|
|
ifeq ($(filter quick,$(MAKECMDGOALS)),quick)
|
|
@printf "Skipping \033[36m%s\033[0m because of \033[36mquick\033[0m target.\n" $(target)
|
|
else ifneq ($(QUICK),)
|
|
@printf "Skipping \033[36m%s\033[0m because \033[36m$$QUICK\033[0m is not empty.\n" $(target)
|
|
else
|
|
@printf "Applying \033[36m%s\033[0m target...\n" $(target)
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U "pip ~=22.0" wheel
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U $(PYTHON_REQUIREMENTS_INLINE) -r $(PYTHON_REQUIREMENTS_FILE)
|
|
@mkdir -p .medikit; touch $@
|
|
endif
|
|
|
|
clean: ## Cleans up the working copy.
|
|
rm -rf build dist *.egg-info .medikit/install .medikit/install-dev .medikit/install-docker .medikit/install-jupyter .medikit/install-sqlalchemy
|
|
find . -name __pycache__ -type d | xargs rm -rf
|
|
|
|
install-dev: .medikit/install-dev ## Installs the project (with dev dependencies).
|
|
.medikit/install-dev: $(PYTHON_REQUIREMENTS_DEV_FILE) setup.py
|
|
$(eval target := $(shell echo $@ | rev | cut -d/ -f1 | rev))
|
|
ifeq ($(filter quick,$(MAKECMDGOALS)),quick)
|
|
@printf "Skipping \033[36m%s\033[0m because of \033[36mquick\033[0m target.\n" $(target)
|
|
else ifneq ($(QUICK),)
|
|
@printf "Skipping \033[36m%s\033[0m because \033[36m$$QUICK\033[0m is not empty.\n" $(target)
|
|
else
|
|
@printf "Applying \033[36m%s\033[0m target...\n" $(target)
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U "pip ~=22.0" wheel
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U $(PYTHON_REQUIREMENTS_DEV_INLINE) -r $(PYTHON_REQUIREMENTS_DEV_FILE)
|
|
@mkdir -p .medikit; touch $@
|
|
endif
|
|
|
|
quick: #
|
|
@printf ""
|
|
|
|
install-docker: .medikit/install-docker ## Installs the project (with docker dependencies).
|
|
.medikit/install-docker: $(PYTHON_REQUIREMENTS_DOCKER_FILE) setup.py
|
|
$(eval target := $(shell echo $@ | rev | cut -d/ -f1 | rev))
|
|
ifeq ($(filter quick,$(MAKECMDGOALS)),quick)
|
|
@printf "Skipping \033[36m%s\033[0m because of \033[36mquick\033[0m target.\n" $(target)
|
|
else ifneq ($(QUICK),)
|
|
@printf "Skipping \033[36m%s\033[0m because \033[36m$$QUICK\033[0m is not empty.\n" $(target)
|
|
else
|
|
@printf "Applying \033[36m%s\033[0m target...\n" $(target)
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U "pip ~=22.0" wheel
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U $(PYTHON_REQUIREMENTS_DOCKER_INLINE) -r $(PYTHON_REQUIREMENTS_DOCKER_FILE)
|
|
@mkdir -p .medikit; touch $@
|
|
endif
|
|
|
|
install-jupyter: .medikit/install-jupyter ## Installs the project (with jupyter dependencies).
|
|
.medikit/install-jupyter: $(PYTHON_REQUIREMENTS_JUPYTER_FILE) setup.py
|
|
$(eval target := $(shell echo $@ | rev | cut -d/ -f1 | rev))
|
|
ifeq ($(filter quick,$(MAKECMDGOALS)),quick)
|
|
@printf "Skipping \033[36m%s\033[0m because of \033[36mquick\033[0m target.\n" $(target)
|
|
else ifneq ($(QUICK),)
|
|
@printf "Skipping \033[36m%s\033[0m because \033[36m$$QUICK\033[0m is not empty.\n" $(target)
|
|
else
|
|
@printf "Applying \033[36m%s\033[0m target...\n" $(target)
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U "pip ~=22.0" wheel
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U $(PYTHON_REQUIREMENTS_JUPYTER_INLINE) -r $(PYTHON_REQUIREMENTS_JUPYTER_FILE)
|
|
@mkdir -p .medikit; touch $@
|
|
endif
|
|
|
|
install-sqlalchemy: .medikit/install-sqlalchemy ## Installs the project (with sqlalchemy dependencies).
|
|
.medikit/install-sqlalchemy: $(PYTHON_REQUIREMENTS_SQLALCHEMY_FILE) setup.py
|
|
$(eval target := $(shell echo $@ | rev | cut -d/ -f1 | rev))
|
|
ifeq ($(filter quick,$(MAKECMDGOALS)),quick)
|
|
@printf "Skipping \033[36m%s\033[0m because of \033[36mquick\033[0m target.\n" $(target)
|
|
else ifneq ($(QUICK),)
|
|
@printf "Skipping \033[36m%s\033[0m because \033[36m$$QUICK\033[0m is not empty.\n" $(target)
|
|
else
|
|
@printf "Applying \033[36m%s\033[0m target...\n" $(target)
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U "pip ~=22.0" wheel
|
|
$(PIP) install $(PIP_INSTALL_OPTIONS) -U $(PYTHON_REQUIREMENTS_SQLALCHEMY_INLINE) -r $(PYTHON_REQUIREMENTS_SQLALCHEMY_FILE)
|
|
@mkdir -p .medikit; touch $@
|
|
endif
|
|
|
|
test: install-dev ## Runs the test suite.
|
|
$(PYTEST) $(PYTEST_OPTIONS) tests
|
|
|
|
$(SPHINX_SOURCEDIR): install-dev ##
|
|
$(SPHINX_BUILD) -b html -D latex_paper_size=a4 $(SPHINX_OPTIONS) $(SPHINX_SOURCEDIR) $(SPHINX_BUILDDIR)/html
|
|
|
|
watch-$(SPHINX_SOURCEDIR): ##
|
|
$(SPHINX_AUTOBUILD) $(SPHINX_SOURCEDIR) $(shell mktemp -d)
|
|
|
|
format: ## Reformats the whole codebase using our standards (requires black and isort).
|
|
black -l 120 .
|
|
isort -rc -o mondrian -o whistle -y .
|
|
|
|
medikit: # Checks installed medikit version and updates it if it is outdated.
|
|
@$(PYTHON) -c 'import medikit, pip, sys; from packaging.version import Version; sys.exit(0 if (Version(medikit.__version__) >= Version("$(MEDIKIT_VERSION)")) and (Version(pip.__version__) < Version("10")) else 1)' || $(PYTHON) -m pip install -U "pip ~=22.0" "medikit>=$(MEDIKIT_VERSION)"
|
|
|
|
update: medikit ## Update project artifacts using medikit.
|
|
$(MEDIKIT) update $(MEDIKIT_UPDATE_OPTIONS)
|
|
|
|
update-requirements: ## Update project artifacts using medikit, including requirements files.
|
|
MEDIKIT_UPDATE_OPTIONS="--override-requirements" $(MAKE) update
|
|
|
|
help: ## Shows available commands.
|
|
@echo "Available commands:"
|
|
@echo
|
|
@grep -E '^[a-zA-Z_-]+:.*?##[\s]?.*$$' --no-filename $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?##"}; {printf " make \033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
@echo
|