community[patch]: Add linter to catch @root_validator (#24070)

- Add linter to prevent further usage of vanilla root validator
- Udpate remaining root validators
This commit is contained in:
Eugene Yurtsev
2024-07-10 10:51:03 -04:00
committed by GitHub
parent 9c6efadec3
commit c4e149d4f1
16 changed files with 39 additions and 19 deletions

View File

@@ -14,7 +14,7 @@ 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')
result=$(git -C "$repository_path" grep -En '^import pydantic|^from pydantic')
# Check if any matching lines were found
if [ -n "$result" ]; then
@@ -25,3 +25,20 @@ if [ -n "$result" ]; then
echo "with 'from langchain_core.pydantic_v1 import BaseModel'"
exit 1
fi
# Forbid vanilla usage of @root_validator
# This prevents the code from using either @root_validator or @root_validator()
# Search for lines matching the pattern within the specified repository
result=$(git -C "$repository_path" grep -En '(@root_validator\s*$)|(@root_validator\(\))' -- '*.py')
# Check if any matching lines were found
if [ -n "$result" ]; then
echo "ERROR: The following lines need to be updated:"
echo
echo "$result"
echo
echo "Please replace @root_validator or @root_validator() with either:"
echo
echo "@root_validator(pre=True) or @root_validator(pre=False, skip_on_failure=True)"
exit 1
fi