Spaces:
Running
Running
| PYTHON?=python | |
| APP_DIRS?=app | |
| PYTHONPATH?=./ | |
| TEST_DIR?= tests | |
| PRETTIER?=npx --yes prettier@3 | |
| # Paths | |
| app_dirs := . | |
| tests_dir := tests/ | |
| web_dirs := app/web | |
| WEB_GLOBS:="$(web_dirs)/**/*.{css,}" | |
| PRETTIER := ./node_modules/.bin/prettier | |
| vendor-py: | |
| $(PYTHON) -m pip install -r requirements.txt | |
| vendor-web: | |
| @if [ -f package-lock.json ]; then \ | |
| npm ci; \ | |
| else \ | |
| npm install; \ | |
| fi | |
| vendor: vendor-py vendor-web | |
| run: | |
| PYTHONPATH=$(APP_DIRS) $(PYTHON) -m uvicorn app.main:app --reload --port 7860 | |
| share: | |
| PYTHONPATH=$(PYTHONPATH) $(PYTHON) -m app.full_pipeline_new | |
| # Python formatting | |
| fmt-py: | |
| isort $(app_dirs) | |
| black $(app_dirs) | |
| isort $(tests_dir) | |
| black $(tests_dir) | |
| # JS/CSS formatting | |
| fmt-web: | |
| @test -x $(PRETTIER) || { echo "Prettier not found. Run 'make vendor' first."; exit 127; } | |
| $(PRETTIER) --write $(WEB_GLOBS) | |
| fmt: fmt-py fmt-web | |
| # Python linting | |
| lint-py: | |
| @(isok=true; \ | |
| echo "===== black ====="; \ | |
| black --check $(app_dirs) || isok=false; \ | |
| echo "===== flake8 ====="; \ | |
| flake8 $(app_dirs) || isok=false; \ | |
| echo "===== black ====="; \ | |
| black --check $(tests_dir) || isok=false; \ | |
| echo "===== flake8 ====="; \ | |
| flake8 $(tests_dir) || isok=false; \ | |
| $$isok && echo "\nLINTERS OK" || echo "\nLINTERS FAILED"; \ | |
| $$isok;) | |
| # JS/CSS linting | |
| lint-web: | |
| @test -x $(PRETTIER) || { echo "Prettier not found. Run 'make vendor' first."; exit 127; } | |
| $(PRETTIER) --check $(WEB_GLOBS) | |
| lint: lint-py lint-web | |
| test: | |
| pytest $(tests_dir) | |