check-presubmit: don't use __name__ in user output
Follow-up for I109d1d914b8b485613f4e3c4da20fbd6a474d0e4.
BUG=None
TEST=repo upload
Change-Id: I37f3326491c4f1f75e23b0fda52268bc1ca31196
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/5515311
Commit-Queue: George Burgess <gbiv@chromium.org>
Tested-by: George Burgess <gbiv@chromium.org>
Reviewed-by: Jordan Abrahams-Whitehead <ajordanr@google.com>
diff --git a/toolchain_utils_githooks/check-presubmit.py b/toolchain_utils_githooks/check-presubmit.py
index 0e2920b..b003d66 100755
--- a/toolchain_utils_githooks/check-presubmit.py
+++ b/toolchain_utils_githooks/check-presubmit.py
@@ -8,6 +8,7 @@
import argparse
import dataclasses
import datetime
+import functools
import multiprocessing
import multiprocessing.pool
import os
@@ -21,6 +22,7 @@
import threading
import traceback
from typing import (
+ Callable,
Dict,
Iterable,
List,
@@ -526,7 +528,7 @@
)
-def check_py_types_impl(
+def check_py_types(
mypy: Optional[MyPyInvocation],
toolchain_utils_root: str,
thread_pool: multiprocessing.pool.ThreadPool,
@@ -728,7 +730,7 @@
def check_no_compiler_wrapper_changes(
toolchain_utils_root: str,
_thread_pool: multiprocessing.pool.ThreadPool,
- files: List[str],
+ files: Iterable[str],
) -> CheckResult:
compiler_wrapper_prefix = (
os.path.join(toolchain_utils_root, "compiler_wrapper") + "/"
@@ -759,15 +761,16 @@
def check_tests(
toolchain_utils_root: str,
_thread_pool: multiprocessing.pool.ThreadPool,
- files: List[str],
+ files: Iterable[str],
) -> CheckResult:
"""Runs tests."""
run_tests_for = os.path.join(
toolchain_utils_root, "py", "bin", "run_tests_for.py"
)
+ cmd = [run_tests_for, "--"]
+ cmd += files
exit_code, stdout_and_stderr = run_command_unchecked(
- [run_tests_for, "--"] + files,
- toolchain_utils_root,
+ cmd, toolchain_utils_root
)
return CheckResult(
ok=exit_code == 0,
@@ -1014,21 +1017,20 @@
files = [os.path.abspath(f) for f in files]
- # `functools.partial(foo, x).__name__` is an AttributeError, so just define
- # a very thin wrapper here.
- def check_py_types(*args, **kwargs):
- return check_py_types_impl(mypy, *args, **kwargs)
-
- # Note that we extract .__name__s from these, so please name them in a
- # user-friendly way.
- checks = (
- check_cros_lint,
- check_py_format,
- check_py_types,
- check_go_format,
- check_tests,
- check_no_compiler_wrapper_changes,
- )
+ CheckFn = Callable[
+ [str, multiprocessing.pool.ThreadPool, Iterable[str]], CheckResults
+ ]
+ checks: List[Tuple[str, CheckFn]] = [
+ ("check_cros_lint", check_cros_lint),
+ ("check_py_format", check_py_format),
+ ("check_py_types", functools.partial(check_py_types, mypy)),
+ ("check_go_format", check_go_format),
+ ("check_tests", check_tests),
+ (
+ "check_no_compiler_wrapper_changes",
+ check_no_compiler_wrapper_changes,
+ ),
+ ]
toolchain_utils_root = detect_toolchain_utils_root()
@@ -1041,8 +1043,8 @@
# For our single print statement...
spawn_print_lock = threading.RLock()
- def run_check(check_fn):
- name = check_fn.__name__
+ def run_check(arg: Tuple[str, CheckFn]) -> Tuple[str, CheckResults]:
+ name, check_fn = arg
with spawn_print_lock:
print("*** Spawning %s" % name)
return name, check_fn(toolchain_utils_root, pool, files)