forked from sktime/sktime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
111 lines (90 loc) · 3.28 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# Makefile for easier installation and cleanup.
#
# Uses self-documenting macros from here:
# http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
PACKAGE=sktime
DOC_DIR=./docs
BUILD_TOOLS=./build_tools
TEST_DIR=testdir
.PHONY: help release install test lint clean dist doc docs
.DEFAULT_GOAL := help
help:
@grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) |\
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m\
%s\n", $$1, $$2}'
release: ## Make a release
python3 $(BUILD_TOOLS)/make_release.py
install: ## Install for the current user using the default python command
python3 setup.py build_ext --inplace && python setup.py install --user
test: ## Run unit tests
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
cp .coveragerc ${TEST_DIR}
cp setup.cfg ${TEST_DIR}
python -m pytest
full_test: ## Run all tests
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
cp .coveragerc ${TEST_DIR}
cp setup.cfg ${TEST_DIR}
python -m pytest --only_changed_modules False
test_without_datasets: ## Run unit tests skipping sktime/datasets
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
cp .coveragerc ${TEST_DIR}
cp setup.cfg ${TEST_DIR}
python -m pytest --ignore sktime/datasets
test_check_suite: ## run only estimator contract tests in TestAll classes
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
cp .coveragerc ${TEST_DIR}
cp setup.cfg ${TEST_DIR}
python -m pytest -k 'TestAll' $(PYTESTOPTIONS)
test_softdeps: ## Run unit tests to check soft dependency handling in estimators
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
cp setup.cfg ${TEST_DIR}
cd ${TEST_DIR}
python -m pytest -v -n auto --showlocals -k 'test_all_estimators' $(PYTESTOPTIONS) --pyargs sktime.registry
python -m pytest -v -n auto --showlocals -k 'test_check_estimator_does_not_raise' $(PYTESTOPTIONS) --pyargs sktime.utils.tests
python -m pytest -v -n auto --showlocals $(PYTESTOPTIONS) --pyargs sktime.tests.test_softdeps
test_softdeps_full: ## Run all non-suite unit tests without soft dependencies or downloading datasets
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
cp setup.cfg ${TEST_DIR}
cd ${TEST_DIR}
python -m pytest -v --showlocals --ignore sktime/datasets -k 'not TestAll' $(PYTESTOPTIONS)
test_mlflow: ## Run mlflow integration tests
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
cp setup.cfg ${TEST_DIR}
cd ${TEST_DIR}
python -m pytest -v --showlocals $(PYTESTOPTIONS) --pyargs sktime.utils.tests.test_mlflow_sktime_model_export
tests: test
clean: ## Clean build dist and egg directories left after install
rm -rf ./dist
rm -rf ./build
rm -rf ./pytest_cache
rm -rf ./htmlcov
rm -rf ./junit
rm -rf ./$(PACKAGE).egg-info
rm -rf coverage.xml
rm -f MANIFEST
rm -rf ./wheelhouse/*
find . -type f -iname "*.so" -delete
find . -type f -iname '*.pyc' -delete
find . -type d -name '__pycache__' -empty -delete
dist: ## Make Python source distribution
python3 setup.py sdist bdist_wheel
build:
python -m build --sdist --wheel --outdir wheelhouse
docs: doc
doc: ## Build documentation with Sphinx
$(MAKE) -C $(DOC_DIR) html
nb: clean
rm -rf .venv || true
python3 -m venv .venv
. .venv/bin/activate && python -m pip install .[all_extras,binder] && ./build_tools/run_examples.sh
dockertest:
docker build -t sktime -f build_tools/docker/$(PYTHON_VERSION).dockerfile .
docker run -it --name sktime sktime bash -c "make full_test"