-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
132 lines (101 loc) · 4.37 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
.PHONY: clean clean-test clean-pyc clean-build docs help
.DEFAULT_GOAL := help
define BROWSER_PYSCRIPT
import os, webbrowser, sys
try:
from urllib import pathname2url
except:
from urllib.request import pathname2url
webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
endef
export BROWSER_PYSCRIPT
define PRINT_HELP_PYSCRIPT
import re, sys
for line in sys.stdin:
match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line)
if match:
target, help = match.groups()
print("%-20s %s" % (target, help))
endef
export PRINT_HELP_PYSCRIPT
BROWSER := python -c "$$BROWSER_PYSCRIPT"
help:
@python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
clean: clean-build clean-pyc clean-test ## remove all build, test, coverage and Python artifacts
clean-build: ## remove build artifacts
rm -fr build/
rm -fr dist/
rm -fr .eggs/
find . \( -path ./env -o -path ./venv -o -path ./.env -o -path ./.venv \) -prune -o -name '*.egg-info' -exec rm -fr {} +
find . \( -path ./env -o -path ./venv -o -path ./.env -o -path ./.venv \) -prune -o -name '*.egg' -exec rm -f {} +
clean-pyc: ## remove Python file artifacts
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
find . -name '__pycache__' -exec rm -fr {} +
clean-test: ## remove test and coverage artifacts
rm -fr .tox/
rm -f .coverage
rm -fr htmlcov/
rm -fr .pytest_cache
rm tests/calamari_models/*
lint: ## check style with flake8
flake8 ocrd_butler tests
test-init: ## download current checkpoint data files from Calamari OCR github repo
ifeq ("$(wildcard tests/calamari_models/*.ckpt.h5)", "")
for i in 0 1 2 3 4; do for f in json h5; \
do wget "https://raw.githubusercontent.com/Calamari-OCR/calamari_models/master/gt4histocr/$${i}.ckpt.$${f}" -O "tests/calamari_models/$${i}.ckpt.$${f}" ; \
done; done
endif
test: test-init ocrd-venv ## run tests quickly with the default Python
PROFILE=test py.test tests --doctest-modules ocrd_butler
test-all: ## run tests on every Python version with tox
tox
coverage: ## check code coverage quickly with the default Python
coverage run --source ocrd_butler -m pytest
coverage report -m
coverage html
$(BROWSER) htmlcov/index.html
docs: ## generate Sphinx HTML documentation, including API docs
rm -f docs/ocrd_butler.rst
rm -f docs/modules.rst
sphinx-apidoc -o docs/ ocrd_butler
$(MAKE) -C docs clean
$(MAKE) -C docs html
$(BROWSER) docs/_build/html/index.html
servedocs: docs ## compile the docs watching for changes
watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D .
release: dist ## package and upload a release
twine upload dist/*
executable:
pyinstaller --name ocrd_butler ocrd_butler/cli.py
dist: clean ## builds source and wheel package
python setup.py sdist
python setup.py bdist_wheel
ls -l dist
install: clean ## install the package to the active Python's site-packages
python setup.py install
ocrd-venv: ## activate python virtual environment under relative path ../ocrd_all/venv
which deactivate &>/dev/null || . ../ocrd_all/venv/bin/activate
run-celery: ocrd-venv ## start celery worker ocrd_butler.celery_worker
celery worker -A ocrd_butler.celery_worker.celery -E -l info
run-flask: ocrd-venv ##run ocrd_butler/app.py
FLASK_APP=ocrd_butler/app.py flask run
flask-routes: ocrd-venv ## list routes handled by butler app
FLASK_APP=ocrd_butler/app.py flask routes
run-flower: ocrd-venv ## start flower instance, connecting to redis broker at port 6379
NO_PROXY='localhost,content.staatsbibliothek-berlin.de' flower --broker redis://localhost:6379 --persistent=True --db=flower --log=debug
tesseract-model: ## install trained model for tesseract
ocrd resmgr download ocrd-tesserocr-recognize Fraktur_GT4HistOCR.traineddata -a
calamari-model: ## install trained model for calamari
mkdir -p /data && cd /data; \
ocrd resmgr download ocrd-calamari-recognize qurator-gt4histocr-1.0 -al cwd
textline-detector-model: ## install trained model for sbb textline detector
mkdir -p /data && cd /data; \
ocrd resmgr download ocrd-sbb-textline-detector default -al cwd
sbb-binarize-model: ## install trained model for the sbb binarization processor
mkdir -p /data && cd /data; \
ocrd resmgr download ocrd-sbb-binarize default -al cwd
eynollah-segment-model: ## install trained model for the ocrd-eynollah-segment processor
mkdir -p /data && cd /data; \
ocrd resmgr download ocrd-eynollah-segment '*' -al cwd