| | POETRY_INSTALL_DIR := $(abspath ./.poetry) |
| | POETRY_BIN := $(POETRY_INSTALL_DIR)/bin/poetry |
| |
|
| | PACKAGE_NAME = $(firstword $(shell $(POETRY_BIN) version)) |
| | PACKAGE_DIR = $(subst -,_,$(PACKAGE_NAME)) |
| | PACKAGE_VERSION = $(shell $(POETRY_BIN) version --short) |
| |
|
| | |
| | FILES_FROM_H2OGPT := enums.py |
| | NAME_PREFIX_FOR_FILES_COPIED_FROM_H2OGPT = _h2ogpt_ |
| |
|
| | $(POETRY_BIN): |
| | @echo "Installing Poetry into '$(POETRY_INSTALL_DIR)' ..." |
| | curl -sSL https://install.python-poetry.org | POETRY_HOME="$(POETRY_INSTALL_DIR)" python3 - --force --version 1.5.1 |
| |
|
| | .PHONY: copy_files_from_h2ogpt |
| | copy_files_from_h2ogpt: |
| | for file in $(FILES_FROM_H2OGPT); do \ |
| | dst="$(PACKAGE_DIR)/$(NAME_PREFIX_FOR_FILES_COPIED_FROM_H2OGPT)$(notdir $$file)"; \ |
| | echo "Copying '$$file' to '$$dst' ..."; \ |
| | cp -f "./../src/$$file" "$$dst"; \ |
| | done |
| |
|
| | .PHONY: clean |
| | clean: |
| | rm -rf dist |
| | find "$(PACKAGE_DIR)" -name "$(NAME_PREFIX_FOR_FILES_COPIED_FROM_H2OGPT)*" -delete |
| |
|
| | .PHONY: clean_deep |
| | clean_deep: clean |
| | rm -rf "$(POETRY_INSTALL_DIR)" |
| | rm -rf ".venv" |
| |
|
| | .PHONY: setup |
| | setup: $(POETRY_BIN) |
| | $(POETRY_BIN) install |
| |
|
| | .PHONY: setup_test |
| | setup_test: |
| | $(POETRY_BIN) install --only=test |
| |
|
| | .PHONY: lint |
| | lint: copy_files_from_h2ogpt |
| | $(POETRY_BIN) run black . |
| | $(POETRY_BIN) run isort . |
| | $(POETRY_BIN) run flake8 "$(PACKAGE_DIR)" "tests" || true |
| | $(POETRY_BIN) run mypy --show-error-codes --pretty . |
| |
|
| | .PHONY: test |
| | test: copy_files_from_h2ogpt |
| | $(POETRY_BIN) run pytest -r=A |
| |
|
| | .PHONY: build |
| | build: copy_files_from_h2ogpt |
| | $(POETRY_BIN) build |
| |
|
| | print-%: |
| | @echo $($*) |
| |
|