From f8ec952343583324c4f5dbefa4fb846f395ea6e4 Mon Sep 17 00:00:00 2001 From: Yobmod Date: Thu, 17 Jun 2021 17:49:48 +0100 Subject: fix issue with mypy update to 0.9 --- git/util.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'git/util.py') diff --git a/git/util.py b/git/util.py index edbd5f1e..05eeb4ad 100644 --- a/git/util.py +++ b/git/util.py @@ -971,7 +971,7 @@ class IterableList(list): # END for each item return list.__getattribute__(self, attr) - def __getitem__(self, index: Union[int, slice, str]) -> Any: + def __getitem__(self, index: Union[int, slice, str]) -> Any: # type: ignore if isinstance(index, int): return list.__getitem__(self, index) elif isinstance(index, slice): @@ -983,7 +983,7 @@ class IterableList(list): raise IndexError("No item found with id %r" % (self._prefix + index)) from e # END handle getattr - def __delitem__(self, index: Union[int, str, slice]) -> None: + def __delitem__(self, index: Union[int, str, slice]) -> None: # type: ignore delindex = cast(int, index) if not isinstance(index, int): -- cgit v1.2.1 From 18b6aa55309adfa8aa99bdaf9e8f80337befe74e Mon Sep 17 00:00:00 2001 From: Yobmod Date: Thu, 17 Jun 2021 18:10:46 +0100 Subject: add SupportsIndex to IterableList, with version import guards --- git/util.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'git/util.py') diff --git a/git/util.py b/git/util.py index 05eeb4ad..516c315c 100644 --- a/git/util.py +++ b/git/util.py @@ -29,7 +29,7 @@ import pathlib if TYPE_CHECKING: from git.remote import Remote from git.repo.base import Repo -from .types import PathLike, TBD, Literal +from .types import PathLike, TBD, Literal, SupportsIndex # --------------------------------------------------------------------- @@ -971,7 +971,10 @@ class IterableList(list): # END for each item return list.__getattribute__(self, attr) - def __getitem__(self, index: Union[int, slice, str]) -> Any: # type: ignore + def __getitem__(self, index: Union[SupportsIndex, int, slice, str]) -> Any: + + assert isinstance(index, (int, str, slice)), "Index of IterableList should be an int or str" + if isinstance(index, int): return list.__getitem__(self, index) elif isinstance(index, slice): @@ -983,12 +986,13 @@ class IterableList(list): raise IndexError("No item found with id %r" % (self._prefix + index)) from e # END handle getattr - def __delitem__(self, index: Union[int, str, slice]) -> None: # type: ignore + def __delitem__(self, index: Union[SupportsIndex, int, slice, str]) -> Any: + + assert isinstance(index, (int, str)), "Index of IterableList should be an int or str" delindex = cast(int, index) if not isinstance(index, int): delindex = -1 - assert not isinstance(index, slice) name = self._prefix + index for i, item in enumerate(self): if getattr(item, self._id_attr) == name: -- cgit v1.2.1