forked from mne-tools/mne-connectivity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
152 lines (116 loc) · 3.73 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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# simple makefile to simplify repetitive build env management tasks under posix
# caution: testing won't work on windows, see README
PYTHON ?= python
PYTESTS ?= pytest
CTAGS ?= ctags
CODESPELL_SKIPS ?= "*.fif,*.eve,*.gz,*.tgz,*.zip,*.mat,*.stc,*.label,*.w,*.bz2,*.annot,*.sulc,*.log,*.local-copy,*.orig_avg,*.inflated_avg,*.gii,*.pyc,*.doctree,*.pickle,*.inv,*.png,*.edf,*.touch,*.thickness,*.nofix,*.volume,*.defect_borders,*.mgh,lh.*,rh.*,COR-*,FreeSurferColorLUT.txt,*.examples,.xdebug_mris_calc,bad.segments,BadChannels,*.hist,empty_file,*.orig,*.js,*.map,*.ipynb,searchindex.dat,plot_*.rst,*.rst.txt,*.html,gdf_encodes.txt"
CODESPELL_DIRS ?= mne_connectivity/ doc/ examples/ benchmarks/
all: clean inplace test test-doc
clean-pyc:
find . -name "*.pyc" | xargs rm -f
clean-so:
find . -name "*.so" | xargs rm -f
find . -name "*.pyd" | xargs rm -f
clean-build:
rm -rf build
rm -rf dist
rm -rf mne_connectivity.egg-info
clean-ctags:
rm -f tags
clean-cache:
find . -name "__pycache__" | xargs rm -rf
clean: clean-build clean-pyc clean-so clean-ctags clean-cache
in: inplace # just a shortcut
inplace:
$(PYTHON) setup.py build_ext -i
pre-commit:
@pre-commit run -a
pytest: test
test: in
rm -f .coverage
$(PYTESTS) mne_connectivity
test-fast: in
rm -f .coverage
$(PYTESTS) -m 'not slowtest' mne
test-full: in
rm -f .coverage
$(PYTESTS) mne
test-no-network: in
sudo unshare -n -- sh -c 'MNE_SKIP_NETWORK_TESTS=1 py.test mne'
test-no-testing-data: in
@MNE_SKIP_TESTING_DATASET_TESTS=true \
$(PYTESTS) mne
test-no-sample-with-coverage: in testing_data
rm -rf coverage .coverage
$(PYTESTS) --cov=mne_connectivity --cov-report html:coverage
test-doc: sample_data testing_data
$(PYTESTS) --doctest-modules --doctest-ignore-import-errors --doctest-glob='*.rst' ./doc/
test-coverage: testing_data
rm -rf coverage .coverage
$(PYTESTS) --cov=mne_connectivity --cov-report html:coverage
# what's the difference with test-no-sample-with-coverage?
test-mem: in testing_data
ulimit -v 1097152 && $(PYTESTS) mne
trailing-spaces:
find . -name "*.py" | xargs perl -pi -e 's/[ \t]*$$//'
ctags:
# make tags for symbol based navigation in emacs and vim
# Install with: sudo apt-get install exuberant-ctags
$(CTAGS) -R *
upload-pipy:
python setup.py sdist bdist_egg register upload
flake:
@if command -v flake8 > /dev/null; then \
echo "Running flake8"; \
flake8 --count mne_connectivity examples; \
else \
echo "flake8 not found, please install it!"; \
exit 1; \
fi;
@echo "flake8 passed"
black:
@if command -v black > /dev/null; then \
echo "Running black"; \
black mne_connectivity examples; \
else \
echo "black not found, please install it!"; \
exit 1; \
fi;
@echo "black passed"
isort:
@if command -v isort > /dev/null; then \
echo "Running isort"; \
isort mne_connectivity examples doc; \
else \
echo "isort not found, please install it!"; \
exit 1; \
fi;
@echo "isort passed"
codespell: # running manually
@codespell -w -i 3 -q 3 -S $(CODESPELL_SKIPS) --ignore-words=.codespellignore $(CODESPELL_DIRS)
codespell-error: # running on travis
@codespell -i 0 -q 7 -S $(CODESPELL_SKIPS) --ignore-words=.codespellignore $(CODESPELL_DIRS)
pydocstyle:
@echo "Running pydocstyle"
@pydocstyle mne
check-manifest:
check-manifest --ignore .circleci*,doc,logo,.DS_Store
check-readme:
python setup.py check --restructuredtext --strict
pep:
@$(MAKE) -k flake pydocstyle codespell-error check-manifest
docstyle: pydocstyle
build-doc:
@echo "Building documentation"
make -C doc/ clean
make -C doc/ html-noplot
cd doc/ && make view
run-checks:
isort --check .
black --check mne_connectivity examples
flake8 .
@$(MAKE) pydocstyle
@$(MAKE) codespell-error
ruff .
toml-sort ./pyproject.toml --check
yamllint . -c .yamllint.yml --strict