-
Notifications
You must be signed in to change notification settings - Fork 44
/
Makefile
71 lines (56 loc) · 2.25 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
# Copyright 2021 eprbell
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
BIN := $(wildcard bin/*.py)
RP2_SRC := $(wildcard src/rp2/*.py) $(wildcard src/rp2/plugin/*.py) $(wildcard src/rp2/plugin/*/*.py) $(wildcard src/rp2/plugin/*/*/*.py)
TEST_SRC := $(wildcard tests/*.py)
TESTS := $(wildcard tests/test_*.py)
PYTHONPATH := $(CURDIR)/src
VENV := .venv
RP2_MAKEFILE := 1
all: $(VENV)/bin/activate
$(VENV)/bin/activate: Makefile setup.py setup.cfg
virtualenv -p python3 $(VENV)
$(VENV)/bin/pip3 install -e ".[dev]"
run: $(VENV)/bin/activate
rm -rf log/ output/
$(VENV)/bin/rp2_us -o output/ -p test_data_ config/test_data.ini input/test_data.ods
$(VENV)/bin/rp2_us -o output/ -p test_many_year_data_ config/test_data.ini input/test_data.ods
$(VENV)/bin/rp2_us -o output/ -p crypto_example_ config/crypto_example.ini input/crypto_example.ods
check: $(VENV)/bin/activate
$(VENV)/bin/pytest --tb=native --verbose
static_analysis: $(VENV)/bin/activate
$(VENV)/bin/mypy src/ tests/
$(VENV)/bin/pylint -r y src tests/*.py
$(VENV)/bin/bandit -r src/
reformat: $(VENV)/bin/activate
$(VENV)/bin/isort .
$(VENV)/bin/black src/ tests/
archive: clean
rm -f rp2.zip || true
zip -r rp2.zip .
distribution: all
$(VENV)/bin/pip3 install twine
rm -rf build/ dist/
$(VENV)/bin/python3 setup.py sdist bdist_wheel
$(VENV)/bin/python3 -m twine check dist/*
upload_test_distribution: distribution
$(VENV)/bin/pip3 install twine
$(VENV)/bin/python3 -m twine upload --repository testpypi dist/*
upload_distribution: distribution
$(VENV)/bin/pip3 install twine
$(VENV)/bin/python3 -m twine upload dist/*
clean:
rm -rf $(VENV) .mypy_cache/ build dist/ log/ output/ src/*.egg-info/
find . -type f -name '*.pyc' -delete
.PHONY: all archive check clean lint reformat run securitycheck typecheck