Makefile 2.28 KB
Newer Older
1
.PHONY: deps_table_update modified_only_fixup extra_quality_checks quality style fixup fix-copies test test-examples docs
2
3


4
check_dirs := examples tests src utils
5
6

modified_only_fixup:
7
8
	$(eval modified_py_files := $(shell python utils/get_modified_files.py $(check_dirs)))
	@if test -n "$(modified_py_files)"; then \
9
10
11
12
		echo "Checking/fixing $(modified_py_files)"; \
		black $(modified_py_files); \
		isort $(modified_py_files); \
		flake8 $(modified_py_files); \
13
	else \
14
		echo "No library .py files were modified"; \
15
	fi
16

17
18
19
20
21
# Update src/transformers/dependency_versions_table.py

deps_table_update:
	@python setup.py deps_table_update

22
23
# Check that source code meets quality standards

Sylvain Gugger's avatar
Sylvain Gugger committed
24
extra_quality_checks:
25
	python utils/check_copies.py
26
	python utils/check_table.py
27
	python utils/check_dummies.py
28
	python utils/check_repo.py
29

30
# this target runs checks on all files
31
quality:
32
33
	black --check $(check_dirs)
	isort --check-only $(check_dirs)
Sylvain Gugger's avatar
Sylvain Gugger committed
34
	python utils/custom_init_isort.py --check_only
35
36
	flake8 $(check_dirs)
	${MAKE} extra_quality_checks
37
38

# Format source code automatically and check is there are any problems left that need manual fixing
39

Sylvain Gugger's avatar
Sylvain Gugger committed
40
41
42
43
44
45
46
extra_style_checks: deps_table_update
	python utils/custom_init_isort.py
	python utils/style_doc.py src/transformers docs/source --max_len 119
	python utils/class_mapping_update.py

# this target runs checks on all files
style:
47
48
	black $(check_dirs)
	isort $(check_dirs)
Sylvain Gugger's avatar
Sylvain Gugger committed
49
	${MAKE} extra_style_checks
50
51

# Super fast fix and check target that only works on relevant modified files since the branch was made
52

Sylvain Gugger's avatar
Sylvain Gugger committed
53
fixup: modified_only_fixup extra_style_checks extra_quality_checks
54

55
56
57
58
# Make marked copies of snippets of codes conform to the original

fix-copies:
	python utils/check_copies.py --fix_and_overwrite
59
	python utils/check_table.py --fix_and_overwrite
60
	python utils/check_dummies.py --fix_and_overwrite
61

62
63
64
65
66
67
68
69
70
# Run tests for the library

test:
	python -m pytest -n auto --dist=loadfile -s -v ./tests/

# Run tests for examples

test-examples:
	python -m pytest -n auto --dist=loadfile -s -v ./examples/
71
72
73
74

# Check that docs can build

docs:
75
	cd docs && make html SPHINXOPTS="-W -j 4"
Sylvain Gugger's avatar
Sylvain Gugger committed
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

# Release stuff

pre-release:
	python utils/release.py

pre-patch:
	python utils/release.py --patch

post-release:
	python utils/release.py --post_release

post-patch:
	python utils/release.py --post_release --patch