Fix type hints for unittest.util.unorderable_list_difference() (#11012)

Fix type hints for unorderable_list_difference()

It claimed that the arguments were `Sequence` types (immutable), but the function removes elements from them, so they must be `MutableSequence` types. Specifically, it calls `pop()` on the first argument and `remove()` on the second argument.

See the function implementation for details:
0b06d2482d/Lib/unittest/util.py (L98-L113)
This commit is contained in:
Rob Percival
2023-11-10 17:53:03 +00:00
committed by GitHub
parent 99563a2e6e
commit cc0b41a994

View File

@@ -1,4 +1,4 @@
from collections.abc import Sequence
from collections.abc import MutableSequence, Sequence
from typing import Any, TypeVar
from typing_extensions import TypeAlias
@@ -17,7 +17,7 @@ def _common_shorten_repr(*args: str) -> tuple[str, ...]: ...
def safe_repr(obj: object, short: bool = False) -> str: ...
def strclass(cls: type) -> str: ...
def sorted_list_difference(expected: Sequence[_T], actual: Sequence[_T]) -> tuple[list[_T], list[_T]]: ...
def unorderable_list_difference(expected: Sequence[_T], actual: Sequence[_T]) -> tuple[list[_T], list[_T]]: ...
def unorderable_list_difference(expected: MutableSequence[_T], actual: MutableSequence[_T]) -> tuple[list[_T], list[_T]]: ...
def three_way_cmp(x: Any, y: Any) -> int: ...
def _count_diff_all_purpose(actual: Sequence[_T], expected: Sequence[_T]) -> list[_Mismatch[_T]]: ...
def _count_diff_hashable(actual: Sequence[_T], expected: Sequence[_T]) -> list[_Mismatch[_T]]: ...