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.
11- make lint - Check code formatting with flake8
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`.
1214make clean - Remove cached files and lock files.
15+
1316endef
1417export HELP
1518
16- .PHONY : run deploy update format lint clean help
1719
20+ .PHONY : run install deploy update format lint clean help
1821
1922requirements : .requirements.txt
20- env : .venv/bin/activate
23+ env : ./. venv/bin/activate
2124
2225
2326.requirements.txt : requirements.txt
@@ -30,35 +33,57 @@ all help:
3033
3134.PHONY : run
3235run : env
33- $(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
3445
3546
3647.PHONY : deploy
3748deploy :
38- $(shell . ./deploy.sh)
49+ make install
50+ make run
3951
4052
4153.PHONY : update
42- update : env
43- .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
4457 poetry update
4558 poetry export -f requirements.txt --output requirements.txt --without-hashes
4659
4760
4861.PHONY : format
4962format : env
50- $(shell . .venv/bin/activate && isort ./)
51- $(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
5274
5375
5476.PHONY : clean
5577clean :
5678 find . -name ' *.pyc' -delete
5779 find . -name ' __pycache__' -delete
5880 find . -name ' poetry.lock' -delete
59- find . -name ' Pipefile.lock' -delete
60- find . -name ' logs/*.json' -delete
6181 find . -name ' *.log' -delete
62- find . -name ' */.pytest_cache' -delete
63- find . -name ' */logs/*.json' -delete
64- rm -rf tests/.pytest_cache
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