107 lines
2.5 KiB
Makefile
107 lines
2.5 KiB
Makefile
PYTHONPATH = PYTHONPATH=./
|
|
POETRY_RUN = poetry run
|
|
|
|
PROTO_DIR = protos/t_tech/invest/grpc
|
|
PACKAGE_PROTO_DIR = t_tech/invest/grpc
|
|
OUT = .
|
|
PROTOS = protos
|
|
|
|
TEST = $(POETRY_RUN) pytest $(args)
|
|
MAIN_CODE = t_tech examples scripts
|
|
CODE = tests $(MAIN_CODE)
|
|
|
|
.PHONY: test
|
|
test:
|
|
$(TEST) --cov
|
|
|
|
.PHONY: test-fast
|
|
test-fast:
|
|
$(TEST)
|
|
|
|
.PHONY: test-sandbox
|
|
test-sandbox:
|
|
$(TEST) --test-sandbox --cov
|
|
|
|
.PHONY: lint
|
|
lint:
|
|
$(POETRY_RUN) ruff $(CODE)
|
|
$(POETRY_RUN) black --check $(CODE)
|
|
$(POETRY_RUN) pytest --dead-fixtures --dup-fixtures
|
|
$(POETRY_RUN) mypy $(MAIN_CODE)
|
|
$(POETRY_RUN) poetry check
|
|
|
|
.PHONY: format
|
|
format:
|
|
$(POETRY_RUN) isort $(CODE)
|
|
$(POETRY_RUN) black $(CODE)
|
|
$(POETRY_RUN) ruff --fix $(CODE)
|
|
|
|
.PHONY: check
|
|
check: lint test
|
|
|
|
.PHONY: docs
|
|
docs:
|
|
mkdir -p ./docs
|
|
cp README.md ./docs/
|
|
cp CHANGELOG.md ./docs/
|
|
cp CONTRIBUTING.md ./docs/
|
|
$(POETRY_RUN) mkdocs build -s -v
|
|
|
|
.PHONY: docs-serve
|
|
docs-serve:
|
|
$(POETRY_RUN) mkdocs serve
|
|
|
|
.PHONY: next-version
|
|
next-version:
|
|
@$(POETRY_RUN) python -m scripts.version
|
|
|
|
.PHONY: bump-version
|
|
bump-version:
|
|
poetry version $(v)
|
|
$(POETRY_RUN) python -m scripts.update_package_version $(v)
|
|
$(POETRY_RUN) python -m scripts.update_issue_templates $(v)
|
|
git add . && git commit -m "chore(release): bump version to $(v)"
|
|
git tag -a $(v) -m ""
|
|
|
|
.PHONY: install-poetry
|
|
install-poetry:
|
|
pip install poetry==2.3.2
|
|
|
|
.PHONY: install-docs
|
|
install-docs:
|
|
poetry install --only docs
|
|
|
|
.PHONY: install-bump
|
|
install-bump:
|
|
poetry install --only bump
|
|
|
|
.PHONY: install
|
|
install:
|
|
poetry install -E all
|
|
|
|
.PHONY: publish
|
|
publish:
|
|
@poetry publish --build --no-interaction --username=$(pypi_username) --password=$(pypi_password)
|
|
|
|
.PHONY: publish-opensource
|
|
publish-opensource:
|
|
@poetry publish --build --no-interaction -r opensource --username=$(pypi_username) --password=$(pypi_password)
|
|
|
|
.PHONY: config-opensource
|
|
config-opensource:
|
|
@poetry config repositories.opensource https://opensource.tbank.ru/api/v4/projects/238/packages/pypi
|
|
|
|
.PHONY: download-protos
|
|
download-protos:
|
|
$(POETRY_RUN) python -m scripts.download_protos
|
|
|
|
.PHONY: gen-grpc
|
|
gen-grpc:
|
|
rm -r ${PACKAGE_PROTO_DIR}
|
|
$(POETRY_RUN) python -m grpc_tools.protoc -I${PROTOS} --python_out=${OUT} --mypy_out=${OUT} --grpc_python_out=${OUT} ${PROTO_DIR}/google/api/*.proto
|
|
$(POETRY_RUN) python -m grpc_tools.protoc -I${PROTOS} --python_out=${OUT} --mypy_out=${OUT} --grpc_python_out=${OUT} ${PROTO_DIR}/*.proto
|
|
touch ${PACKAGE_PROTO_DIR}/__init__.py
|
|
|
|
.PHONY: gen-client
|
|
gen-client: download-protos gen-grpc
|