fix: resolve pyright reportUnnecessaryIsInstance in _resolve_one_bottle

Validate list entries against object-typed raw_list before narrowing to
list[str], so the isinstance(pname, str) check is not redundant.
This commit is contained in:
2026-06-25 07:08:37 +00:00
committed by didericis
parent a7fb92acd8
commit 76a4d9142f
+6 -3
View File
@@ -50,10 +50,11 @@ def _resolve_one_bottle(
return bottle return bottle
# Normalize to list, accepting both str and list[str]. # Normalize to list, accepting both str and list[str].
raw_list: list[object]
if isinstance(parent_name_raw, str): if isinstance(parent_name_raw, str):
parent_names: list[str] = [parent_name_raw] raw_list = [parent_name_raw]
elif isinstance(parent_name_raw, list): elif isinstance(parent_name_raw, list):
parent_names = parent_name_raw # type: ignore[assignment] raw_list = parent_name_raw
else: else:
raise ManifestError( raise ManifestError(
f"bottle '{name}' extends must be a string or list of strings " f"bottle '{name}' extends must be a string or list of strings "
@@ -61,12 +62,14 @@ def _resolve_one_bottle(
) )
# Validate each entry before resolving any of them. # Validate each entry before resolving any of them.
for i, pname in enumerate(parent_names): parent_names: list[str] = []
for i, pname in enumerate(raw_list):
if not isinstance(pname, str): if not isinstance(pname, str):
raise ManifestError( raise ManifestError(
f"bottle '{name}' extends[{i}] must be a string " f"bottle '{name}' extends[{i}] must be a string "
f"(was {type(pname).__name__})" f"(was {type(pname).__name__})"
) )
parent_names.append(pname)
if pname == name: if pname == name:
raise ManifestError( raise ManifestError(
f"bottle '{name}' extends itself; remove the self-reference" f"bottle '{name}' extends itself; remove the self-reference"