-
-
Notifications
You must be signed in to change notification settings - Fork 616
/
Makefile
112 lines (89 loc) · 2.85 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
help:
@echo "test run test"
@echo "publish publish to PyPI"
@echo "publish_test publish to TestPyPI"
@echo "docs_html make html docs"
@echo "docs_serve serve docs"
@echo "gen_data gen pinyin data"
@echo "gen_pinyin_dict gen single hanzi pinyin dict"
@echo "gen_phrases_dict gen phrase hanzi pinyin dict"
@echo "lint run lint"
@echo "clean - remove all build, test, coverage and Python artifacts"
@echo "clean-build - remove build artifacts"
@echo "clean-pyc - remove Python file artifacts"
@echo "clean-test - remove test and coverage artifacts"
.PHONY: test
test: lint
@echo "run test"
make testonly
.PHONY: testonly
testonly: doctest
py.test --random-order --cov pypinyin tests/ pypinyin/
.PHONY: doctest
doctest:
for f in $(shell find pypinyin -name '*.py' |grep -v __ ); do python -m doctest $$f; done
.PHONY: publish
publish: clean
@echo "publish to pypi"
python setup.py sdist
python setup.py bdist_wheel
twine upload dist/*
.PHONY: publish_test
publish_test: clean
@echo "publish to test pypi"
python setup.py sdist
python setup.py bdist_wheel
twine upload --repository test dist/*
.PHONY: docs_html
docs_html:
cd docs && make html
.PHONY: docs_serve
docs_serve: docs_html
cd docs/_build/html && python -m http.server
.PHONY: gen_data
gen_data: sync_submodule gen_pinyin_dict gen_phrases_dict
.PHONY: gen_pinyin_dict
gen_pinyin_dict: sync_submodule
python gen_pinyin_dict.py pinyin-data/pinyin.txt pypinyin/legacy/pinyin_dict.py
$(MAKE) to_json source=pypinyin/legacy/pinyin_dict.py var=pinyin_dict dst=pypinyin/pinyin_dict.json
.PHONY: gen_phrases_dict
gen_phrases_dict: sync_submodule
python gen_phrases_dict.py phrase-pinyin-data/pinyin.txt pypinyin/legacy/phrases_dict.py
$(MAKE) to_json source=pypinyin/legacy/phrases_dict.py var=phrases_dict dst=pypinyin/phrases_dict.json
.PHONY: to_json
to_json:
python -c 'import json; exec(open("$(source)").read()); json.dump($(var), open("$(dst)", "w"), ensure_ascii=False, sort_keys=True, indent="")'
.PHONY: sync_submodule
sync_submodule:
git submodule init
git submodule update
.PHONY: lint
lint:
pre-commit run --all-files
mypy --strict pypinyin
clean: clean-build clean-pyc clean-test
clean-build:
rm -fr build/
rm -fr dist/
rm -fr .eggs/
find . -name '*.egg-info' -exec rm -fr {} +
find . -name '*.egg' -exec rm -f {} +
clean-pyc:
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:
rm -fr .tox/
rm -f .coverage
rm -fr htmlcov/
rebase_master:
git fetch origin && git rebase origin/master
merge_dev:
git merge --no-ff origin/develop
bump_patch:
bumpversion --verbose patch
bump_minor:
bumpversion --verbose minor
start_next:
git push && git push --tags && git checkout develop && git rebase master && git push