@@ -19,14 +19,47 @@ set -e
1919
2020FOLDERS_TO_FORMAT=(" dags" " xlml" )
2121
22- for folder in " ${FOLDERS_TO_FORMAT[@]} "
23- do
24- pyink " $folder " --pyink-indentation=2 --pyink-use-majority-quotes --line-length=80
25- done
26-
27- for folder in " ${FOLDERS_TO_FORMAT[@]} "
28- do
29- pylint " ./$folder " --fail-under=9.6
30- done
22+ # for folder in "${FOLDERS_TO_FORMAT[@]}"
23+ # do
24+ # pyink "$folder" --pyink-indentation=2 --pyink-use-majority-quotes --line-length=80
25+ # done
26+ #
27+ # for folder in "${FOLDERS_TO_FORMAT[@]}"
28+ # do
29+ # pylint "./$folder" --fail-under=9.6
30+ # done
31+
32+ HEAD_SHA=" $( git rev-parse HEAD) "
33+ BASE_BRANCH=" maxtext/dev"
34+
35+ if ! git rev-parse --verify " $BASE_BRANCH " > /dev/null 2>&1 ; then
36+ git fetch origin " $BASE_BRANCH " :" $BASE_BRANCH " || {
37+ echo " [code-style] base branch '$BASE_BRANCH ' not found, skip diff-based check."
38+ exit 0
39+ }
40+ fi
41+
42+ CHANGED_PY_FILES=" $(
43+ git diff --name-only --diff-filter=ACM " ${BASE_BRANCH} " " ${HEAD_SHA} " \
44+ | grep ' \.py$' \
45+ | while read -r f; do
46+ for folder in " ${FOLDERS_TO_FORMAT[@]} " ; do
47+ if [[ " $f " == " $folder /" * ]]; then
48+ echo " $f "
49+ break
50+ fi
51+ done
52+ done \
53+ | sort -u
54+ ) "
55+
56+ if [[ -z " ${CHANGED_PY_FILES} " ]]; then
57+ echo " [pre-push hook] no changed files detected between ${HEAD_SHA} and ${BASE_BRANCH} "
58+ exit 1
59+ fi
60+
61+ pyink ${CHANGED_PY_FILES} --pyink-indentation=2 --pyink-use-majority-quotes --line-length=80 --check --diff
62+
63+ pylint ${CHANGED_PY_FILES} --fail-under=9.6 --disable=E1123
3164
3265echo " Successfully clean up all codes."
0 commit comments