1- SRCPATH := $(CURDIR )
2- PROJECTNAME := $(shell basename $(CURDIR ) )
1+ PROJECT_NAME := $(shell basename $CURDIR)
2+ VIRTUAL_ENVIRONMENT := $(CURDIR ) /.venv
3+ LOCAL_PYTHON := $(VIRTUAL_ENVIRONMENT ) /bin/python3
34
45define HELP
5- Manage $(PROJECTNAME ) . Usage:
6- 7- make run - Run $(PROJECTNAME ) .
8- make deploy - Install requirements and run app for the first time.
9- make update - Update pip dependencies via Python Poetry.
10- make format - Format code with Python's `Black` library.
6+ Manage $(PROJECT_NAME ) . Usage:
7+ 8+ make run - Run $(PROJECT_NAME ) .
9+ make install - Create virtual env, install dependencies, and run project.
10+ make deploy - Install and run script by running `make install` and `make run` in succession.
11+ make update - Update pip dependencies via Poetry and export output to requirements.txt.
12+ make format - Format code with Pythons `Black` library.
13+ make lint - Check code formatting with `flake8`.
1114make clean - Remove cached files and lock files.
15+ 1216endef
1317export HELP
1418
15- .PHONY : run deploy update format clean help
1619
20+ .PHONY : run install deploy update format lint clean help
1721
1822requirements : .requirements.txt
19- env : .venv/bin/activate
23+ env : ./. venv/bin/activate
2024
2125
2226.requirements.txt : requirements.txt
@@ -29,30 +33,57 @@ all help:
2933
3034.PHONY : run
3135run : env
32- $(shell . .venv/bin/activate && flask run)
36+ flask run
37+ 38+ 39+ .PHONY : install
40+ install :
41+ if [ ! -d " ./.venv" ]; then python3 -m venv $( VIRTUAL_ENVIRONMENT) ; fi
42+ . .venv/bin/activate
43+ $(LOCAL_PYTHON ) -m pip install --upgrade pip setuptools wheel
44+ $(LOCAL_PYTHON ) -m pip install -r requirements.txt
3345
3446
3547.PHONY : deploy
3648deploy :
37- $(shell . ./deploy.sh)
49+ make install
50+ make run
3851
3952
4053.PHONY : update
41- update : env
42- .venv/bin/python3 -m pip install -U pip
54+ update :
55+ if [ ! -d " ./.venv" ]; then python3 -m venv $( VIRTUAL_ENVIRONMENT) ; fi
56+ .venv/bin/python3 -m pip install --upgrade pip setuptools wheel
4357 poetry update
4458 poetry export -f requirements.txt --output requirements.txt --without-hashes
4559
4660
4761.PHONY : format
4862format : env
49- $(shell . .venv/bin/activate && isort ./)
50- $(shell . .venv/bin/activate && black ./)
63+ isort --multi-line=3 .
64+ black .
65+ 66+ 67+ .PHONY : lint
68+ lint :
69+ flake8 . --count \
70+ --select=E9,F63,F7,F82 \
71+ --exclude .git,.github,__pycache__,.pytest_cache,.venv,logs,creds,.venv,docs,logs \
72+ --show-source \
73+ --statistics
5174
5275
5376.PHONY : clean
5477clean :
5578 find . -name ' *.pyc' -delete
5679 find . -name ' __pycache__' -delete
5780 find . -name ' poetry.lock' -delete
58- find . -name ' Pipefile.lock' -delete
81+ find . -name ' *.log' -delete
82+ find . -name ' .DS_Store' -delete
83+ find . -wholename ' logs/*.json' -delete
84+ find . -wholename ' .pytest_cache' -delete
85+ find . -wholename ' **/.pytest_cache' -delete
86+ find . -wholename ' ./logs/*.json' -delete
87+ find . -wholename ' ./logs' -delete
88+ find . -wholename ' *.html' -delete
89+ find . -wholename ' **/.webassets-cache' -delete
0 commit comments