[Hook Scripts] # Run mypy on all python scripts that exist in the tree. This will only generate # errors and warnings related to the CLs being uploaded as long as all other # scripts are already linter clean. However, mypy warnings will be repeated when # uploading multiple CLs. This is a known limitation which also affects pylint. # https://android.googlesource.com/platform/tools/repohooks/#todo_limitations. # # We cannot use `find ... -execdir mypy {} +` directly since find does not # propagate status codes from the -execXXX family of arguments so we use xargs # instead. We also cannot use pipes directly in a hook script so we wrap # everything inside a shell command (`sh -c`). mypy = sh -c "find . -name '*.py' | MYPYPATH=${REPO_ROOT}/external/python/markupsafe/src:${REPO_ROOT}/external/python/jinja/src:${REPO_ROOT}/prebuilts/libprotobuf/python xargs -I{} mypy --follow-imports=silent {}" [Builtin Hooks] clang_format = true commit_msg_bug_field = true commit_msg_changeid_field = true rustfmt = true pylint3 = true [Builtin Hooks Options] clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp rustfmt = --config-path=rustfmt.toml pylint3 = --disable=no-member,no-name-in-module --init-hook "import sys, os; sys.path.append('${REPO_ROOT}/prebuilts/libprotobuf/python'); sys.path.append('${REPO_ROOT}/external/python/jinja/src')" ${PREUPLOAD_FILES}