mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-19 18:27:29 -05:00
93 lines
2.8 KiB
Makefile
93 lines
2.8 KiB
Makefile
MIN_NODE_VER := 20
|
|
MIN_NPM_VER := 6
|
|
MIN_PY3_VER := 8
|
|
NODE_VER := $(shell node -v | cut -d. -f1 | sed 's/^v\(.*\)/\1/')
|
|
NPM_VER := $(shell npm -v | cut -d. -f1)
|
|
PY3_VER := $(shell python3 -c "import sys;t='{v[1]}'.format(v=list(sys.version_info[:2]));print(t)")
|
|
PY_OK := $(shell python3 -c "print(int($(PY3_VER) >= $(MIN_PY3_VER)))")
|
|
|
|
all:
|
|
@echo "\nThere is no default Makefile target right now. Try:\n"
|
|
@echo "make setup - check your environment and install the dependencies."
|
|
@echo "make clean - clean up auto-generated assets."
|
|
@echo "make build - build PyScript."
|
|
@echo "make precommit-check - run the precommit checks (run eslint)."
|
|
@echo "make test-integration - run all integration tests sequentially."
|
|
@echo "make fmt - format the code."
|
|
@echo "make fmt-check - check the code formatting.\n"
|
|
|
|
.PHONY: check-node
|
|
check-node:
|
|
@if [ $(NODE_VER) -lt $(MIN_NODE_VER) ]; then \
|
|
echo "\033[0;31mBuild requires Node $(MIN_NODE_VER).x or higher: $(NODE_VER) detected.\033[0m"; \
|
|
false; \
|
|
fi
|
|
|
|
.PHONY: check-npm
|
|
check-npm:
|
|
@if [ $(NPM_VER) -lt $(MIN_NPM_VER) ]; then \
|
|
echo "\033[0;31mBuild requires Node $(MIN_NPM_VER).x or higher: $(NPM_VER) detected.\033[0m"; \
|
|
false; \
|
|
fi
|
|
|
|
.PHONY: check-python
|
|
check-python:
|
|
@if [ $(PY_OK) -eq 0 ]; then \
|
|
echo "\033[0;31mRequires Python 3.$(MIN_PY3_VER).x or higher: 3.$(PY3_VER) detected.\033[0m"; \
|
|
false; \
|
|
fi
|
|
|
|
# Check the environment, install the dependencies.
|
|
setup: check-node check-npm check-python
|
|
cd pyscript.core && npm install && cd ..
|
|
ifeq ($(VIRTUAL_ENV),)
|
|
echo "\n\n\033[0;31mCannot install Python dependencies. Your virtualenv is not activated.\033[0m"
|
|
false
|
|
else
|
|
python -m pip install -r requirements.txt
|
|
playwright install
|
|
endif
|
|
|
|
# Clean up generated assets.
|
|
clean:
|
|
find . -name \*.py[cod] -delete
|
|
rm -rf $(env) *.egg-info
|
|
rm -rf .pytest_cache .coverage coverage.xml
|
|
|
|
# Build PyScript.
|
|
build:
|
|
cd pyscript.core && npx playwright install && npm run build
|
|
|
|
# Run the precommit checks (run eslint).
|
|
precommit-check:
|
|
pre-commit run --all-files
|
|
|
|
# Run all integration tests sequentially.
|
|
test-integration:
|
|
mkdir -p test_results
|
|
pytest -vv $(ARGS) pyscript.core/tests/integration/ --log-cli-level=warning --junitxml=test_results/integration.xml
|
|
|
|
# Run all integration tests in parallel.
|
|
test-integration-parallel:
|
|
mkdir -p test_results
|
|
pytest --numprocesses auto -vv $(ARGS) pyscript.core/tests/integration/ --log-cli-level=warning --junitxml=test_results/integration.xml
|
|
|
|
# Format the code.
|
|
fmt: fmt-py
|
|
@echo "Format completed"
|
|
|
|
# Check the code formatting.
|
|
fmt-check: fmt-py-check
|
|
@echo "Format check completed"
|
|
|
|
# Format Python code.
|
|
fmt-py:
|
|
black -l 88 --skip-string-normalization .
|
|
isort --profile black .
|
|
|
|
# Check the format of Python code.
|
|
fmt-py-check:
|
|
black -l 88 --check .
|
|
|
|
.PHONY: $(MAKECMDGOALS)
|