mirror of
https://github.com/kennethreitz/langchain.git
synced 2026-06-05 23:00:18 +00:00
5c3fe8b0d1
### Description: This PR introduces a new option format_diff to the existing Makefile. This option allows us to apply the formatting tools (Black and isort) only to the changed Python and ipynb files since the last commit. This will make our development process more efficient as we only format the codes that we modify. Along with this change, comments were added to make the Makefile more understandable and maintainable. ### Issue: N/A ### Dependencies: Add dependency to black. ### Tag maintainer: @baskaryan ### Twitter handle: [kzk_maeda](https://twitter.com/kzk_maeda) --------- Co-authored-by: Bagatur <baskaryan@gmail.com>
92 lines
2.6 KiB
Makefile
92 lines
2.6 KiB
Makefile
.PHONY: all clean format lint test tests test_watch integration_tests docker_tests help extended_tests
|
|
|
|
# Default target executed when no arguments are given to make.
|
|
all: help
|
|
|
|
######################
|
|
# TESTING AND COVERAGE
|
|
######################
|
|
|
|
# Run unit tests and generate a coverage report.
|
|
coverage:
|
|
poetry run pytest --cov \
|
|
--cov-config=.coveragerc \
|
|
--cov-report xml \
|
|
--cov-report term-missing:skip-covered
|
|
|
|
# Define a variable for the test file path.
|
|
TEST_FILE ?= tests/unit_tests/
|
|
|
|
test:
|
|
poetry run pytest --disable-socket --allow-unix-socket $(TEST_FILE)
|
|
|
|
tests:
|
|
poetry run pytest --disable-socket --allow-unix-socket $(TEST_FILE)
|
|
|
|
extended_tests:
|
|
poetry run pytest --disable-socket --allow-unix-socket --only-extended tests/unit_tests
|
|
|
|
test_watch:
|
|
poetry run ptw --now . -- tests/unit_tests
|
|
|
|
integration_tests:
|
|
poetry run pytest tests/integration_tests
|
|
|
|
docker_tests:
|
|
docker build -t my-langchain-image:test .
|
|
docker run --rm my-langchain-image:test
|
|
|
|
######################
|
|
# DOCUMENTATION
|
|
######################
|
|
|
|
docs_compile:
|
|
poetry run nbdoc_build --srcdir $(srcdir)
|
|
|
|
docs_build:
|
|
cd docs && poetry run make html
|
|
|
|
docs_clean:
|
|
cd docs && poetry run make clean
|
|
|
|
docs_linkcheck:
|
|
poetry run linkchecker docs/_build/html/index.html
|
|
|
|
######################
|
|
# LINTING AND FORMATTING
|
|
######################
|
|
|
|
# Define a variable for Python and notebook files.
|
|
PYTHON_FILES=.
|
|
lint format: PYTHON_FILES=.
|
|
lint_diff format_diff: PYTHON_FILES=$(shell git diff --name-only --diff-filter=d master | grep -E '\.py$$|\.ipynb$$')
|
|
|
|
lint lint_diff:
|
|
poetry run mypy $(PYTHON_FILES)
|
|
poetry run black $(PYTHON_FILES) --check
|
|
poetry run ruff .
|
|
|
|
format format_diff:
|
|
poetry run black $(PYTHON_FILES)
|
|
poetry run ruff --select I --fix $(PYTHON_FILES)
|
|
|
|
######################
|
|
# HELP
|
|
######################
|
|
|
|
help:
|
|
@echo '----'
|
|
@echo 'coverage - run unit tests and generate coverage report'
|
|
@echo 'docs_build - build the documentation'
|
|
@echo 'docs_clean - clean the documentation build artifacts'
|
|
@echo 'docs_linkcheck - run linkchecker on the documentation'
|
|
@echo 'format - run code formatters'
|
|
@echo 'lint - run linters'
|
|
@echo 'test - run unit tests'
|
|
@echo 'tests - run unit tests'
|
|
@echo 'test TEST_FILE=<test_file> - run all tests in file'
|
|
@echo 'extended_tests - run only extended unit tests'
|
|
@echo 'test_watch - run unit tests in watch mode'
|
|
@echo 'integration_tests - run integration tests'
|
|
@echo 'docker_tests - run unit tests in docker'
|