-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
81 lines (63 loc) · 1.55 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
# Targets
## Install Python Dependencies
.PHONY: reqs
reqs:
uv pip install -r dev-requirements.txt
## Delete all compiled Python files
.PHONY: clean
clean:
find . -type f -name "*.py[co]" -delete
find . -type d -name "__pycache__" -delete
rm -rf ./README.quarto_ipynb
## Fix code using ruff
.PHONY: fix
fix:
ruff check --select I --fix
ruff check --fix
ruff format
## Time show_stats
.PHONY: timing
timing:
cd notebooks && jupyter nbconvert --to notebook --execute --inplace --ClearMetadataPreprocessor.enabled=True timing.ipynb
docs: README.md timing
## Run pytests
.PHONY: test
test:
pytest
test2: reqs test
## Make README
.PHONY: README.md
README.md: README.qmd src/showstats/showstats.py
quarto render README.qmd
## Run nox
.PHONY: nox
nox:
nox
## Build package
.PHONY: build
build:
python3 -m build
## Upload to pypi
.PHONY: upload-pypi
upload-pypi:
python3 -m twine upload --repository pypi dist/*
## Upload to test-pypi
.PHONY: upload-testpypi
upload-testpypi:
python3 -m twine upload --repository testpypi dist/*
## Test install
.PHONY: test-inst
test-inst:
uv pip install -i https://test.pypi.org/simple/ showstats
# Self Documenting Commands #
.DEFAULT_GOAL := help
define PRINT_HELP_PYSCRIPT
import re, sys; \
lines = '\n'.join([line for line in sys.stdin]); \
matches = re.findall(r'\n## (.*)\n[\s\S]+?\n([a-zA-Z_-]+):', lines); \
print('Available rules:\n'); \
print('\n'.join(['{:25}{}'.format(*reversed(match)) for match in matches]))
endef
export PRINT_HELP_PYSCRIPT
help:
@python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)