@startuml skinparam defaultFontName DejaVu Sans Mono skinparam class { BackgroundColor White ArrowColor Black BorderColor Black } hide members show methods hide circle Iterable <|-- Reversible Iterable <|-- Iterator Iterator <|-- Generator Sized <|-- Collection Iterable <|-- Collection Container <|-- Collection Reversible <|-- Sequence Collection <|-- Sequence Collection <|-- Mapping Collection <|-- Set Sized <|-- MappingView MappingView <|-- KeysView MappingView <|-- ValuesView MappingView <|-- ItemsView Set <|-- KeysView Set <|-- ItemsView Sequence <|-- MutableSequence Sequence <|-- ByteString Mapping <|-- MutableMapping Set <|-- MutableSet abstract class Container { {abstract} __contains__() .. } abstract class Iterable { {abstract} __iter__() .. } abstract class Sized { {abstract} __len__() .. } abstract class Reversible { {abstract} __reversed__() .. } abstract class Iterator { {abstract} __next__() .. __iter__() } abstract class Generator { {abstract} send() {abstract} throw() .. __iter__() __next__() close() } abstract class Collection { {abstract} __contains__() {abstract} __iter__() {abstract} __len__() .. } abstract class Set { {abstract} __contains__() {abstract} __iter__() {abstract} __len__() .. __le__() __lt__() __eq__() __gt__() __ge__() __and__() __or__() __sub__() __xor__() isdisjoint() } abstract class MutableSet { {abstract} __contains__() {abstract} __iter__() {abstract} __len__() {abstract} add() {abstract} discard() .. __ior__() __iand__() __isub__() __ixor__() clear() pop() remove() } abstract class MappingView { .. __len__() } show MappingView members abstract class KeysView { .. __contains__() __iter__() } abstract class ValuesView { .. __contains__() __iter__() } abstract class ItemsView { .. __contains__() __iter__() } abstract class Mapping { {abstract} __getitem__() {abstract} __iter__() {abstract} __len__() .. __contains__() __eq__() get() keys() values() items() } abstract class MutableMapping { {abstract} __getitem__() {abstract} __setitem__() {abstract} __delitem__() {abstract} __iter__() {abstract} __len__() .. __eq__() __contains__() pop() popitem() clear() update() setdefault() } abstract class Sequence { {abstract} __getitem__() {abstract} __len__() .. __contains__() __iter__() __reversed__() count() index() } abstract class MutableSequence { {abstract} __getitem__() {abstract} __setitem__() {abstract} __delitem__() {abstract} __len__() {abstract} insert() .. __iadd__() append() clear() extend() pop() reverse() remove() } abstract class ByteString { {abstract} __getitem__() {abstract} __len__() .. } @enduml