The table is correct. See the interactive session below for confirmation. I think the source of your confusion is that some of the more complex ABCs are able to generate some of the required methods from the ones that are listed (for example, Mapping is able to automatically create __contains__ from __getitem__, so the former is not listed as a required abstract method).
>>> Container.__abstractmethods__
frozenset({'__contains__'})
>>> Hashable.__abstractmethods__
frozenset({'__hash__'})
>>> Iterable.__abstractmethods__
frozenset({'__iter__'})
>>> Reversible.__abstractmethods__
frozenset({'__reversed__', '__iter__'})
>>> Generator.__abstractmethods__
frozenset({'send', 'throw'})
>>> Sized.__abstractmethods__
frozenset({'__len__'})
>>> Callable.__abstractmethods__
frozenset({'__call__'})
>>> Collection.__abstractmethods__
frozenset({'__iter__', '__len__', '__contains__'})
>>> Sequence.__abstractmethods__
frozenset({'__getitem__', '__len__'})
>>> MutableSequence.__abstractmethods__
frozenset({'insert', '__getitem__', '__len__', '__delitem__', '__setitem__'})
>>> ByteString.__abstractmethods__
frozenset({'__getitem__', '__len__'})
>>> Set.__abstractmethods__
frozenset({'__iter__', '__len__', '__contains__'})
>>> MutableSet.__abstractmethods__
frozenset({'add', '__len__', '__iter__', 'discard', '__contains__'})
>>> Mapping.__abstractmethods__
frozenset({'__getitem__', '__iter__', '__len__'})
>>> MutableMapping.__abstractmethods__
frozenset({'__getitem__', '__len__', '__iter__', '__delitem__', '__setitem__'})
>>> MappingView.__abstractmethods__
frozenset()
>>> ItemsView.__abstractmethods__
frozenset()
>>> KeysView.__abstractmethods__
frozenset()
>>> ValuesView.__abstractmethods__
frozenset()
>>> Awaitable.__abstractmethods__
frozenset({'__await__'})
>>> Coroutine.__abstractmethods__
frozenset({'send', 'throw', '__await__'})
>>> AsyncIterable.__abstractmethods__
frozenset({'__aiter__'})
>>> AsyncIterator.__abstractmethods__
frozenset({'__anext__'})
>>> AsyncGenerator.__abstractmethods__
frozenset({'athrow', 'asend'})
|