Skip to content

Commit f8dc41c

Browse files
committed
pre-commit mypy-pathfinder cleanup
1 parent 132932e commit f8dc41c

File tree

3 files changed

+24
-14
lines changed

3 files changed

+24
-14
lines changed

cuda_pathfinder/cuda/pathfinder/_dynamic_libs/dynamic_lib_subprocess.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@ def _load_nvidia_dynamic_lib_for_test(libname: str) -> str:
5858
if loaded_dl_fresh.was_already_loaded_from_elsewhere:
5959
raise RuntimeError("loaded_dl_fresh.was_already_loaded_from_elsewhere")
6060

61-
_validate_abs_path(loaded_dl_fresh.abs_path)
61+
abs_path = loaded_dl_fresh.abs_path
62+
if not isinstance(abs_path, str):
63+
raise RuntimeError(f"loaded_dl_fresh.abs_path is not a string: {abs_path!r}")
64+
_validate_abs_path(abs_path)
6265
assert loaded_dl_fresh.found_via is not None
6366

6467
loaded_dl_from_cache = load_nvidia_dynamic_lib(libname)
@@ -69,10 +72,13 @@ def _load_nvidia_dynamic_lib_for_test(libname: str) -> str:
6972
supported_libs = SUPPORTED_WINDOWS_DLLS if IS_WINDOWS else SUPPORTED_LINUX_SONAMES
7073
if not loaded_dl_no_cache.was_already_loaded_from_elsewhere and libname in supported_libs:
7174
raise RuntimeError("not loaded_dl_no_cache.was_already_loaded_from_elsewhere")
72-
if not os.path.samefile(loaded_dl_no_cache.abs_path, loaded_dl_fresh.abs_path):
73-
raise RuntimeError(f"not os.path.samefile({loaded_dl_no_cache.abs_path=!r}, {loaded_dl_fresh.abs_path=!r})")
74-
_validate_abs_path(loaded_dl_no_cache.abs_path)
75-
return loaded_dl_fresh.abs_path
75+
abs_path_no_cache = loaded_dl_no_cache.abs_path
76+
if not isinstance(abs_path_no_cache, str):
77+
raise RuntimeError(f"loaded_dl_no_cache.abs_path is not a string: {abs_path_no_cache!r}")
78+
if not os.path.samefile(abs_path_no_cache, abs_path):
79+
raise RuntimeError(f"not os.path.samefile({abs_path_no_cache=!r}, {abs_path=!r})")
80+
_validate_abs_path(abs_path_no_cache)
81+
return abs_path
7682

7783

7884
def probe_dynamic_lib_and_print_json(libname: str, mode: str) -> None:

cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_nvidia_dynamic_lib.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
MODE_CANARY,
3232
STATUS_NOT_FOUND,
3333
STATUS_OK,
34+
DynamicLibSubprocessPayload,
3435
build_dynamic_lib_subprocess_command,
3536
parse_dynamic_lib_subprocess_payload,
3637
)
@@ -116,13 +117,16 @@ def _resolve_system_loaded_abs_path_in_subprocess(libname: str) -> str | None:
116117
if result.returncode != 0:
117118
_raise_canary_probe_child_process_error(returncode=result.returncode, stderr=result.stderr)
118119

119-
payload = parse_dynamic_lib_subprocess_payload(
120+
payload: DynamicLibSubprocessPayload = parse_dynamic_lib_subprocess_payload(
120121
result.stdout,
121122
libname=libname,
122123
error_label="Canary probe child process",
123124
)
125+
abs_path: str | None = payload.abs_path
124126
if payload.status == STATUS_OK:
125-
return payload.abs_path
127+
if abs_path is None:
128+
raise RuntimeError(f"Canary probe child process emitted unexpected payload for {libname!r}: {payload!r}")
129+
return abs_path
126130
if payload.status == STATUS_NOT_FOUND:
127131
return None
128132
raise RuntimeError(f"Canary probe child process emitted unexpected payload for {libname!r}: {payload!r}")

cuda_pathfinder/cuda/pathfinder/_dynamic_libs/subprocess_protocol.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
from pathlib import Path
1010
from typing import Literal
1111

12-
MODE_CANARY = "canary"
13-
MODE_LOAD = "load"
14-
VALID_MODES: tuple[str, ...] = (MODE_CANARY, MODE_LOAD)
12+
MODE_CANARY: Literal["canary"] = "canary"
13+
MODE_LOAD: Literal["load"] = "load"
14+
VALID_MODES: tuple[Literal["canary"], Literal["load"]] = (MODE_CANARY, MODE_LOAD)
1515

16-
STATUS_OK = "ok"
17-
STATUS_NOT_FOUND = "not-found"
18-
VALID_STATUSES: tuple[str, ...] = (STATUS_OK, STATUS_NOT_FOUND)
16+
STATUS_OK: Literal["ok"] = "ok"
17+
STATUS_NOT_FOUND: Literal["not-found"] = "not-found"
18+
VALID_STATUSES: tuple[Literal["ok"], Literal["not-found"]] = (STATUS_OK, STATUS_NOT_FOUND)
1919

2020
DYNAMIC_LIB_SUBPROCESS_MODULE = "cuda.pathfinder._dynamic_libs.dynamic_lib_subprocess"
2121
DYNAMIC_LIB_SUBPROCESS_CWD = Path(__file__).resolve().parents[3]
@@ -27,7 +27,7 @@ class DynamicLibSubprocessPayload:
2727
abs_path: str | None
2828

2929

30-
def format_dynamic_lib_subprocess_payload(status: str, abs_path: str | None) -> str:
30+
def format_dynamic_lib_subprocess_payload(status: Literal["ok", "not-found"], abs_path: str | None) -> str:
3131
if status not in VALID_STATUSES:
3232
raise ValueError(f"Unsupported subprocess payload status: {status!r}")
3333
return json.dumps({"status": status, "abs_path": abs_path})

0 commit comments

Comments
 (0)