classDiagram
class Container {
<<abstract>>
+__contains__()
}
class Iterable {
<<abstract>>
+__iter__()
}
class Iterator {
<<abstract>>
+__next__()
+__iter__()
}
class Reversible {
<<abstract>>
+__reversed__()
}
class Sized {
<<abstract>>
+__len__()
}
class Collection {
<<abstract>>
+__contains__()
+__iter__()
+__len__()
}
class Sequence {
<<abstract>>
+__getitem__()
+__len__()
+__contains__()
+__iter__()
+__reversed__()
+index()
+count()
}
class MutableSequence {
<<abstract>>
+__getitem__()
+__setitem__()
+__delitem__()
+__len__()
+insert()
+append()
+clear()
+reverse()
+extend()
+pop()
+remove()
+__iadd__()
}
class Set {
<<abstract>>
+__contains__()
+__iter__()
+__len__()
+__le__()
+__lt__()
+__eq__()
+__ne__()
+__gt__()
+__ge__()
+__and__()
+__or__()
+__sub__()
+__xor__()
+isdisjoint()
}
class MutableSet {
<<abstract>>
+__contains__()
+__iter__()
+__len__()
+add()
+discard()
+clear()
+pop()
+remove()
+__ior__()
+__iand__()
+__ixor__()
+__isub__()
}
class Mapping {
<<abstract>>
+__getitem__()
+__iter__()
+__len__()
+__contains__()
+keys()
+items()
+values()
+get()
+__eq__()
+__ne__()
}
class MutableMapping {
<<abstract>>
+__getitem__()
+__setitem__()
+__delitem__()
+__iter__()
+__len__()
+pop()
+popitem()
+clear()
+update()
+setdefault()
}
Iterable <|-- Iterator
Iterable <|-- Reversible
Sized <|-- Collection
Iterable <|-- Collection
Container <|-- Collection
Reversible <|-- Sequence
Collection <|-- Sequence
Sequence <|-- MutableSequence
Collection <|-- Set
Set <|-- MutableSet
Collection <|-- Mapping
Mapping <|-- MutableMapping
MutableSequence <-- list
Sequence <-- tuple
Sequence <-- range
Sequence <-- str
MutableMapping <-- dict
Set <-- frozenset
MutableSet <-- set