-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathMakefile
More file actions
82 lines (65 loc) · 2.25 KB
/
Makefile
File metadata and controls
82 lines (65 loc) · 2.25 KB
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
# Flexlay - A Generic 2D Game Editor
# Copyright (C) 2018 Ingo Ruhnke <grumbel@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
SOURCES := $(wildcard flexlay/*.py flexlay/*/*.py supertux/*.py tests/*.py)
default: flake mypy # test
all: autopep flake test pylint
autopep:
autopep8 --max-line=120 --in-place --aggressive $(SOURCES)
test:
python3 -m unittest discover -v -s tests/
mypy:
mypy \
--incremental \
--ignore-missing-imports \
--follow-imports skip \
--warn-return-any \
--warn-unused-ignores \
--warn-incomplete-stub \
--warn-redundant-casts \
$(SOURCES)
mypyverbose:
export MYPYPATH=/usr/lib/python3/dist-packages/; \
mypy \
--incremental \
--ignore-missing-imports \
--follow-imports silent \
--check-untyped-defs \
--warn-return-any \
--warn-unused-ignores \
--warn-incomplete-stub \
--warn-redundant-casts \
$(SOURCES) | \
grep -v ^/usr | \
fgrep -v '"pyqtSignal" has no attribute' | \
grep -v 'Callable.*has no attribute "connect' | \
fgrep -v 'No overload variant of "QAction" matches argument types'
# --disallow-any unimported,unannotated,decorated,explicit,generics \
# --disallow-any unimported,expr,unannotated,decorated,explicit,generics \
flake:
flake8 --max-line-length=120 --ignore=N802,W504 $(SOURCES)
PYLINT_TARGETS := $(addprefix .pylint/, $(SOURCES))
$(PYLINT_TARGETS): .pylint/%.py: %.py
mkdir -p $(dir $@)
PYTHONPATH=. epylint3 $< --rcfile=.pylintrc --max-line-length=120 --extension-pkg-whitelist=PyQt5
touch $@
pylint: $(PYLINT_TARGETS)
clean:
rm -vrf .pylint/
install:
sudo -H pip3 install --force-reinstall --upgrade .
.PHONY: autopep test flake pylint clean all default run
.NOTPARALLEL: all
# EOF #