core/tools: narrow list[object] for batch command argv typing

basedpyright treated bare list elements as Unknown after isinstance(list);
cast to list[object] so prek basedpyright exits clean.
This commit is contained in:
2026-07-19 20:39:16 +08:00
parent e1e4df0f3f
commit 182546d60e
2 changed files with 5 additions and 6 deletions
+2 -4
View File
@@ -84,9 +84,7 @@ def _indent_block(text: str, *, prefix: str = " ") -> str:
"""Indent every line of *text* (for multi-line -c bodies in confirm prompts)."""
if not text:
return prefix
return "\n".join(
prefix + line if line else prefix.rstrip() for line in text.splitlines()
)
return "\n".join(prefix + line if line else prefix.rstrip() for line in text.splitlines())
def _format_argv_for_confirm(argv: Sequence[str], *, code: str | None) -> str:
@@ -198,7 +196,7 @@ def _batch_step_argv(item: object) -> list[str] | None:
if not isinstance(command, list) or not command:
return None
argv: list[str] = []
for part in command:
for part in cast("list[object]", command):
if not isinstance(part, str):
return None
argv.append(part)
@@ -57,8 +57,9 @@ def _parse_step(raw: object, index: int) -> dict[str, Any]:
if not isinstance(command, list) or not command:
msg = f"commands[{index}].command must be a non-empty argv list"
raise WorkspaceError(msg)
argv = [part for part in command if isinstance(part, str)]
if len(argv) != len(command):
command_parts = cast("list[object]", command)
argv = [part for part in command_parts if isinstance(part, str)]
if len(argv) != len(command_parts):
msg = f"commands[{index}].command must be a list of strings"
raise WorkspaceError(msg)
cwd = data.get("cwd")