File: Makefile

package info (click to toggle)
python-hypothesis 3.6.1-1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,788 kB
  • sloc: python: 15,048; sh: 226; makefile: 160
file content (204 lines) | stat: -rw-r--r-- 5,295 bytes parent folder | download
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
.PHONY: clean documentation


DEVELOPMENT_DATABASE?=postgres://whereshouldilive@localhost/whereshouldilive_dev
SPHINXBUILD   = $(DEV_PYTHON) -m sphinx
SPHINX_BUILDDIR      = docs/_build
ALLSPHINXOPTS   = -d $(SPHINX_BUILDDIR)/doctrees docs -W

export BUILD_RUNTIMES?=$(HOME)/.cache/hypothesis-build-runtimes
export TOX_WORK_DIR=$(BUILD_RUNTIMES)/.tox
export COVERAGE_FILE=$(BUILD_RUNTIMES)/.coverage

PY27=$(BUILD_RUNTIMES)/snakepit/python2.7
PY273=$(BUILD_RUNTIMES)/snakepit/python2.7.3
PY33=$(BUILD_RUNTIMES)/snakepit/python3.3
PY34=$(BUILD_RUNTIMES)/snakepit/python3.4
PY35=$(BUILD_RUNTIMES)/snakepit/python3.5
PYPY=$(BUILD_RUNTIMES)/snakepit/pypy

TOOLS=$(BUILD_RUNTIMES)/tools

TOX=$(TOOLS)/tox
SPHINX_BUILD=$(TOOLS)/sphinx-build
SPHINX_AUTOBUILD=$(TOOLS)/sphinx-autobuild
ISORT=$(TOOLS)/isort
FLAKE8=$(TOOLS)/flake8
PYFORMAT=$(TOOLS)/pyformat

BROKEN_VIRTUALENV=$(BUILD_RUNTIMES)/virtualenvs/broken
TOOL_VIRTUALENV=$(BUILD_RUNTIMES)/virtualenvs/tools
ISORT_VIRTUALENV=$(BUILD_RUNTIMES)/virtualenvs/isort
TOOL_PYTHON=$(TOOL_VIRTUALENV)/bin/python
TOOL_PIP=$(TOOL_VIRTUALENV)/bin/pip
TOOL_INSTALL=$(TOOL_PIP) install --upgrade

export PATH:=$(BUILD_RUNTIMES)/snakepit:$(TOOLS):$(PATH)
export LC_ALL=en_US.UTF-8

$(PY27):
	scripts/retry.sh scripts/install.sh 2.7

$(PY273):
	scripts/retry.sh scripts/install.sh 2.7.3

$(PY33):
	scripts/retry.sh scripts/install.sh 3.3

$(PY34):
	scripts/retry.sh scripts/install.sh 3.4

$(PY35):
	scripts/retry.sh scripts/install.sh 3.5

$(PYPY):
	scripts/retry.sh scripts/install.sh pypy

$(TOOL_VIRTUALENV): $(PY34)
	$(PY34) -m virtualenv $(TOOL_VIRTUALENV)
	mkdir -p $(TOOLS)

$(TOOLS): $(TOOL_VIRTUALENV)

install-tools: $(TOOLS)

$(ISORT_VIRTUALENV): $(PY34)
	$(PY34) -m virtualenv $(ISORT_VIRTUALENV)

format: $(PYFORMAT) $(ISORT)
	$(TOOL_PYTHON) scripts/enforce_header.py
	# isort will sort packages differently depending on whether they're installed
	$(ISORT_VIRTUALENV)/bin/python -m pip install django pytz pytest fake-factory numpy flaky
	find src tests examples -name '*.py' | xargs  env -i \
            PATH="$(PATH)" $(ISORT) -p hypothesis -ls -m 2 -w 75 \
			-a  "from __future__ import absolute_import, print_function, division" \
			-rc src tests examples
	find src tests examples -name '*.py' | xargs $(PYFORMAT) -i

lint: $(FLAKE8)
	$(FLAKE8) src tests --exclude=compat.py,test_reflection.py,test_imports.py,tests/py2 --ignore=E731,E721

check-format: format
	find src tests -name "*.py" | xargs $(TOOL_PYTHON) scripts/check_encoding_header.py
	git diff --exit-code

check-py27: $(PY27) $(TOX)
	$(TOX) -e py27-full

check-py273: $(PY273) $(TOX)
	$(TOX) -e oldpy27

check-py33: $(PY33) $(TOX)
	$(TOX) -e py33-full

check-py34: $(py34) $(TOX)
	$(TOX) -e py34-full

check-py35: $(PY35) $(TOX)
	$(TOX) -e py35-full

check-pypy: $(PYPY) $(TOX)
	$(TOX) -e pypy-full

check-nose: $(TOX) $(PY35)
	$(TOX) -e nose

check-pytest30: $(TOX) $(PY35)
	$(TOX) -e pytest30

check-pytest28: $(TOX) $(PY35)
	$(TOX) -e pytest28

check-pytest27: $(TOX) $(PY35)
	$(TOX) -e pytest27

check-pytest26: $(TOX) $(PY35)
	$(TOX) -e pytest26

check-ancient-pip: $(PY273)
	scripts/check-ancient-pip.sh $(PY273)
	

check-pytest: check-pytest26 check-pytest27

check-fakefactory060: $(TOX) $(PY35)
	$(TOX) -e fakefactory060

check-fakefactory052: $(TOX) $(PY35)
	$(TOX) -e fakefactory052

check-fakefactory053: $(TOX) $(PY35)
	$(TOX) -e fakefactory053

check-django17: $(TOX) $(PY35)
	$(TOX) -e django17

check-django18: $(TOX) $(PY35)
	$(TOX) -e django18

check-django19: $(TOX) $(PY35)
	$(TOX) -e django19

check-django: check-django17 check-django18 check-django19

check-examples2: $(TOX) $(PY27)
	$(TOX) -e examples2

check-examples3: $(TOX) $(PY35)
	$(TOX) -e examples3

check-coverage: $(TOX) $(PY35)
	$(TOX) -e coverage

check-unicode: $(TOX) $(PY27)
	$(TOX) -e unicode

check-noformat: check-coverage check-py26 check-py27 check-py33 check-py34 check-py35 check-pypy check-django check-pytest

check: check-format check-noformat

check-fast: lint $(PY35) $(PYPY) $(TOX)
	$(TOX) -e pypy-brief
	$(TOX) -e py35-brief
	$(TOX) -e py26-brief
	$(TOX) -e py35-prettyquick

$(TOX): $(PY35) tox.ini $(TOOLS)
	rm -f $(TOX)
	$(TOOL_INSTALL) tox
	ln -sf $(TOOL_VIRTUALENV)/bin/tox $(TOX)
	touch $(TOOL_VIRTUALENV)/bin/tox $(TOX)

$(SPHINX_BUILD): $(TOOL_VIRTUALENV)
	$(TOOL_PYTHON) -m pip install sphinx sphinx-rtd-theme
	$(TOOL_PYTHON) -m pip install -e .
	ln -sf $(TOOL_VIRTUALENV)/bin/sphinx-build $(SPHINX_BUILD)

$(SPHINX_AUTOBUILD): $(TOOL_VIRTUALENV)
	$(TOOL_PYTHON) -m pip install sphinx-autobuild
	ln -sf $(TOOL_VIRTUALENV)/bin/sphinx-autobuild $(SPHINX_AUTOBUILD)

$(PYFORMAT): $(TOOL_VIRTUALENV)
	$(TOOL_INSTALL) pyformat
	ln -sf $(TOOL_VIRTUALENV)/bin/pyformat $(PYFORMAT)

$(ISORT): $(ISORT_VIRTUALENV)
	$(ISORT_VIRTUALENV)/bin/python -m pip install isort==4.1.0
	ln -sf $(ISORT_VIRTUALENV)/bin/isort $(ISORT)

$(FLAKE8): $(TOOL_VIRTUALENV)
	$(TOOL_INSTALL) flake8
	ln -sf $(TOOL_VIRTUALENV)/bin/flake8 $(FLAKE8)

clean:
	rm -rf .tox
	rm -rf .hypothesis
	rm -rf docs/_build
	rm -rf $(TOOLS)
	rm -rf $(BUILD_RUNTIMES)/snakepit
	rm -rf $(BUILD_RUNTIMES)/virtualenvs
	find src tests -name "*.pyc" -delete
	find src tests -name "__pycache__" -delete

documentation: $(SPHINX_BUILD) docs/*.rst
	$(SPHINX_BUILD) -W -b html -d docs/_build/doctrees docs docs/_build/html