mirror of
https://github.com/deepseek-ai/Janus
synced 2024-12-26 13:52:57 +00:00
100 lines
3.0 KiB
Makefile
100 lines
3.0 KiB
Makefile
print-% : ; @echo $* = $($*)
|
|
PROJECT_NAME = Janus
|
|
COPYRIGHT = "DeepSeek."
|
|
PROJECT_PATH = janus
|
|
SHELL = /bin/bash
|
|
SOURCE_FOLDERS = janus
|
|
PYTHON_FILES = $(shell find $(SOURCE_FOLDERS) -type f -name "*.py" -o -name "*.pyi") inference.py
|
|
COMMIT_HASH = $(shell git log -1 --format=%h)
|
|
PATH := $(HOME)/go/bin:$(PATH)
|
|
PYTHON ?= $(shell command -v python3 || command -v python)
|
|
PYTESTOPTS ?=
|
|
|
|
.PHONY: default
|
|
default: install
|
|
|
|
# Tools Installation
|
|
|
|
check_pip_install = $(PYTHON) -m pip show $(1) &>/dev/null || (cd && $(PYTHON) -m pip install $(1) --upgrade)
|
|
check_pip_install_extra = $(PYTHON) -m pip show $(1) &>/dev/null || (cd && $(PYTHON) -m pip install $(2) --upgrade)
|
|
|
|
pylint-install:
|
|
$(call check_pip_install_extra,pylint,pylint[spelling])
|
|
$(call check_pip_install,pyenchant)
|
|
|
|
flake8-install:
|
|
$(call check_pip_install,flake8)
|
|
$(call check_pip_install,flake8-bugbear)
|
|
$(call check_pip_install,flake8-comprehensions)
|
|
$(call check_pip_install,flake8-docstrings)
|
|
$(call check_pip_install,flake8-pyi)
|
|
$(call check_pip_install,flake8-simplify)
|
|
|
|
py-format-install:
|
|
$(call check_pip_install,isort)
|
|
$(call check_pip_install_extra,black,black[jupyter])
|
|
|
|
ruff-install:
|
|
$(call check_pip_install,ruff)
|
|
|
|
mypy-install:
|
|
$(call check_pip_install,mypy)
|
|
|
|
pre-commit-install:
|
|
$(call check_pip_install,pre-commit)
|
|
$(PYTHON) -m pre_commit install --install-hooks
|
|
|
|
go-install:
|
|
# requires go >= 1.16
|
|
command -v go || (sudo apt-get install -y golang && sudo ln -sf /usr/lib/go/bin/go /usr/bin/go)
|
|
|
|
addlicense-install: go-install
|
|
command -v addlicense || go install github.com/google/addlicense@latest
|
|
|
|
addlicense: addlicense-install
|
|
addlicense -c $(COPYRIGHT) -ignore tests/coverage.xml -l mit -y 2023-$(shell date +"%Y") -check $(SOURCE_FOLDERS)
|
|
|
|
# Python linters
|
|
|
|
pylint: pylint-install
|
|
$(PYTHON) -m pylint $(PROJECT_PATH)
|
|
|
|
flake8: flake8-install
|
|
$(PYTHON) -m flake8 --count --show-source --statistics
|
|
|
|
py-format: py-format-install
|
|
$(PYTHON) -m isort --project $(PROJECT_PATH) --check $(PYTHON_FILES) && \
|
|
$(PYTHON) -m black --check $(PYTHON_FILES)
|
|
|
|
black-format: py-format-install
|
|
$(PYTHON) -m black --check $(PYTHON_FILES)
|
|
|
|
ruff: ruff-install
|
|
$(PYTHON) -m ruff check .
|
|
|
|
ruff-fix: ruff-install
|
|
$(PYTHON) -m ruff check . --fix --exit-non-zero-on-fix
|
|
|
|
mypy: mypy-install
|
|
$(PYTHON) -m mypy $(PROJECT_PATH) --install-types --non-interactive
|
|
|
|
pre-commit: pre-commit-install
|
|
$(PYTHON) -m pre_commit run --all-files
|
|
|
|
# Utility functions
|
|
|
|
lint: ruff flake8 py-format mypy pylint addlicense
|
|
|
|
format: py-format-install ruff-install addlicense-install
|
|
$(PYTHON) -m isort --project $(PROJECT_PATH) $(PYTHON_FILES)
|
|
$(PYTHON) -m black $(PYTHON_FILES)
|
|
addlicense -c $(COPYRIGHT) -ignore tests/coverage.xml -l mit -y 2023-$(shell date +"%Y") $(SOURCE_FOLDERS) inference.py
|
|
|
|
clean-py:
|
|
find . -type f -name '*.py[co]' -delete
|
|
find . -depth -type d -name "__pycache__" -exec rm -r "{}" +
|
|
find . -depth -type d -name ".ruff_cache" -exec rm -r "{}" +
|
|
find . -depth -type d -name ".mypy_cache" -exec rm -r "{}" +
|
|
|
|
clean: clean-py
|