diff --git a/libs/langchain/Makefile b/libs/langchain/Makefile index c4cd64cd85..14b7ec338c 100644 --- a/libs/langchain/Makefile +++ b/libs/langchain/Makefile @@ -76,6 +76,7 @@ lint format: PYTHON_FILES=. lint_diff format_diff: PYTHON_FILES=$(shell git diff --relative=libs/langchain --name-only --diff-filter=d master | grep -E '\.py$$|\.ipynb$$') lint lint_diff: + ./scripts/check_pydantic.sh . poetry run ruff . poetry run black $(PYTHON_FILES) --check poetry run mypy $(PYTHON_FILES) diff --git a/libs/langchain/scripts/check_pydantic.sh b/libs/langchain/scripts/check_pydantic.sh new file mode 100755 index 0000000000..7c2d9c5c0a --- /dev/null +++ b/libs/langchain/scripts/check_pydantic.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# +# This script searches for lines starting with "import pydantic" or "from pydantic" +# in tracked files within a Git repository. +# +# Usage: ./scripts/check_pydantic.sh /path/to/repository + +# Check if a path argument is provided +if [ $# -ne 1 ]; then + echo "Usage: $0 /path/to/repository" + exit 1 +fi + +repository_path="$1" + +# Search for lines matching the pattern within the specified repository +result=$(git -C "$repository_path" grep -E '^import pydantic|^from pydantic') + +# Check if any matching lines were found +if [ -n "$result" ]; then + echo "ERROR: The following lines need to be updated:" + echo "$result" + echo "Please replace the code with an import from langchain.pydantic_v1." + echo "For example, replace 'from pydantic import BaseModel'" + echo "with 'from langchain.pydantic_v1 import BaseModel'" + exit 1 +fi