11.ONESHELL :
2+ ENV_PREFIX =$(shell python -c "if __import__('pathlib') .Path('.venv/bin/pip').exists(): print('.venv/bin/')")
23
34.PHONY : help
45help : # # Show the help.
@@ -7,32 +8,41 @@ help: ## Show the help.
78 @echo " Targets:"
89 @fgrep " ##" Makefile | fgrep -v fgrep
910
11+
12+ .PHONY : show
13+ show : # # Show the current environment.
14+ @echo " Current environment:"
15+ @echo " Running using $( ENV_PREFIX) "
16+ @$(ENV_PREFIX ) python -V
17+ @$(ENV_PREFIX ) python -m site
18+
1019.PHONY : install
1120install : # # Install the project in dev mode.
12- @if [ ! -f pyproject.toml ]; then pip install -e .[test]; else poetry install --dev; fi
21+ @echo " Don't forget to run 'make virtualenv' if you got errors."
22+ @if [ ! -f pyproject.toml ]; then $(ENV_PREFIX ) pip install -e .[test]; else poetry install --dev; fi
1323
1424.PHONY : fmt
1525fmt : # # Format code using black & isort.
16- isort project_name/
17- black -l 79 project_name/
18- black -l 79 tests/
26+ $( ENV_PREFIX ) isort project_name/
27+ $( ENV_PREFIX ) black -l 79 project_name/
28+ $( ENV_PREFIX ) black -l 79 tests/
1929
2030.PHONY : lint
2131lint : # # Run pep8, black, mypy linters.
22- flake8 project_name/
23- black -l 79 --check project_name/
24- black -l 79 --check tests/
25- mypy project_name/
32+ $( ENV_PREFIX ) flake8 project_name/
33+ $( ENV_PREFIX ) black -l 79 --check project_name/
34+ $( ENV_PREFIX ) black -l 79 --check tests/
35+ $( ENV_PREFIX ) mypy project_name/
2636
2737.PHONY : test
2838test : lint # # Run tests and generate coverage report.
29- pytest -v --cov-config .coveragerc --cov=project_name -l --tb=short --maxfail=1 tests/
30- coverage xml
31- coverage html
39+ $( ENV_PREFIX ) pytest -v --cov-config .coveragerc --cov=project_name -l --tb=short --maxfail=1 tests/
40+ $( ENV_PREFIX ) coverage xml
41+ $( ENV_PREFIX ) coverage html
3242
3343.PHONY : watch
3444watch : # # Run tests on every change.
35- ls ** /** .py | entr pytest -s -vvv -l --tb=long --maxfail=1 tests/
45+ ls ** /** .py | entr $( ENV_PREFIX ) pytest -s -vvv -l --tb=long --maxfail=1 tests/
3646
3747.PHONY : clean
3848clean : # # Clean unused files.
@@ -67,7 +77,7 @@ release: ## Create a new tag for release.
6777 @echo " creating git tag : $$ {TAG}"
6878 @git tag $$ {TAG}
6979 @echo " $$ {TAG}" > project_name/VERSION
70- @gitchangelog > HISTORY.md
80+ @$( ENV_PREFIX ) gitchangelog > HISTORY.md
7181 @git add project_name/VERSION HISTORY.md
7282 @git commit -m " release: version $$ {TAG} 🚀"
7383 @git push -u origin HEAD --tags
@@ -76,7 +86,7 @@ release: ## Create a new tag for release.
7686.PHONY : docs
7787docs : # # Build the documentation.
7888 @echo " building documentation ..."
79- @mkdocs build
89+ @$( ENV_PREFIX ) mkdocs build
8090 URL=" site/index.html" ; xdg-open $$ URL || sensible-browser $$ URL || x-www-browser $$ URL || gnome-open $$ URL
8191
8292.PHONY : switch-to-poetry
0 commit comments