summaryrefslogtreecommitdiffstats
path: root/third_party/python/multidict/Makefile
blob: ca0562b04350b778ba35be98f9c1896f486ff621 (plain)
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
# Some simple testing tasks (sorry, UNIX only).
.PHONY: all build flake test vtest cov clean doc mypy


PYXS = $(wildcard multidict/*.pyx)
SRC = multidict tests setup.py

all: test

.install-deps: $(shell find requirements -type f)
	pip install -r requirements/dev.txt
	@touch .install-deps

.flake: .install-deps $(shell find multidict -type f) \
                      $(shell find tests -type f)
	flake8 multidict tests
	@if ! isort --check multidict tests; then \
            echo "Import sort errors, run 'make fmt' to fix them!!!"; \
            isort --diff --check multidict tests; \
            false; \
	fi
	@touch .flake


isort-check:
	@if ! isort --check $(SRC); then \
            echo "Import sort errors, run 'make fmt' to fix them!!!"; \
            isort --diff --check $(SRC); \
            false; \
	fi

flake8:
	flake8 $(SRC)

black-check:
	@if ! isort --check $(SRC); then \
            echo "black errors, run 'make fmt' to fix them!!!"; \
	    black -t py35 --diff --check $(SRC); \
            false; \
	fi

mypy:
	mypy --show-error-codes multidict tests

lint: flake8 black-check mypy isort-check check_changes

fmt:
	black -t py35 $(SRC)
	isort $(SRC)

check_changes:
	./tools/check_changes.py

.develop: .install-deps $(shell find multidict -type f) .flake check_changes mypy
	pip install -e .
	@touch .develop

test: .develop
	@pytest -q

vtest: .develop
	@pytest -s -v

cov-dev: .develop
	@pytest --cov-report=html
	@echo "open file://`pwd`/htmlcov/index.html"

cov-ci-run: .develop
	@echo "Regular run"
	@pytest --cov-report=html

cov-dev-full: cov-ci-run
	@echo "open file://`pwd`/htmlcov/index.html"

doc:
	@make -C docs html SPHINXOPTS="-W -E"
	@echo "open file://`pwd`/docs/_build/html/index.html"

doc-spelling:
	@make -C docs spelling SPHINXOPTS="-W -E"

install:
	@pip install -U 'pip'
	@pip install -Ur requirements/dev.txt

install-dev: .develop


clean:
	rm -rf `find . -name __pycache__`
	rm -f `find . -type f -name '*.py[co]' `
	rm -f `find . -type f -name '*~' `
	rm -f `find . -type f -name '.*~' `
	rm -f `find . -type f -name '@*' `
	rm -f `find . -type f -name '#*#' `
	rm -f `find . -type f -name '*.orig' `
	rm -f `find . -type f -name '*.rej' `
	rm -f .coverage
	rm -rf coverage
	rm -rf build
	rm -rf cover
	rm -rf htmlcov
	make -C docs clean SPHINXBUILD=false
	python3 setup.py clean
	rm -f multidict/*.html
	rm -f multidict/*.so
	rm -f multidict/*.pyd
	rm -rf .tox