I have a class that inherits from MutableSequence
like this:
class QqTag(MutableSequence):
def __init__(self):
self._children = []
def __getitem__(self, idx: int) -> 'QqTag':
return self._children[idx]
mypy complains that Signature of "__getitem__" incompatible with supertype "Sequence"
.
In Sequence
, this method is defined as:
@abstractmethod
def __getitem__(self, index):
raise IndexError
So, what's the problem and why mypy isn't happy with my implementation?
As mentioned in comments, a typeof slice can also be passed. Ie, change idx: int
to idx: Union[int, slice]
.
This will make mypy happy (at least on my machine ;):
class QqTag(MutableSequence):
def __init__(self):
self._children = []
def __getitem__(self, idx: Union[int, slice]) -> 'QqTag':
return self._children[idx]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With