The attached GraphViz dotfile is adapted from the Python documentation for collections.abc.
Last active
January 3, 2019 12:00
-
-
Save wcooley/d8ce6bc40ecad9bfbf4437d390a7792f to your computer and use it in GitHub Desktop.
GraphViz chart of abstract base classes from as of 3.6/3.7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph python_abcs { | |
graph [rankdir=BT,rank=max,label="Python 3.6/3.7 Abstract Base Classes"] | |
node [shape=record,nojustify=true] | |
edge [arrowhead=onormal] | |
# Rank Manipulation | |
{ | |
rank=max | |
Container | |
Hashable | |
Callable | |
Awaitable | |
AsyncIterable | |
} | |
{ | |
rank=same | |
Collection | |
} | |
# Nodes Labels | |
# | |
# For the most consistent alignment, include separator bar ("|") and | |
# closing brace ("}") at end of line. | |
# | |
Container [label=<{ | |
<b>\N</b>| | |
| | |
<i>__contains__</i>}>] | |
Hashable [label=<{ | |
<b>\N</b>| | |
| | |
<i>__hash__</i>}>] | |
Iterable [label=<{ | |
<b>\N</b>| | |
| | |
<i>__iter__</i>}>] | |
Iterator [label=<{ | |
<b>\N</b>| | |
__iter__| | |
<i>__next__</i>}>] | |
Reversible [label=<{ | |
<b>\N</b>| | |
| | |
<i>__reversed__</i>}>] | |
Generator [label=<{ | |
<b>\N</b>| | |
close<br/> __iter__<br/> __next__| | |
<i>send</i><br/><i>throw</i>}>] | |
Sized [label=<{ | |
<b>\N</b>| | |
| | |
<i>__len__</i>}>] | |
Callable [label=<{ | |
<b>\N</b>| | |
| | |
<i>__call__</i>}>] | |
Collection [label=<{ | |
<b>\N</b>| | |
| | |
<i>__contains__<br/>__iter__<br/>__len__</i>}>] | |
Sequence [label=<{ | |
<b>\N</b>| | |
__contains__<br/>__iter__<br/>__reversed__<br/>index<br/>count| | |
<i>__getitem__<br/>__len__</i>}>] | |
MutableSequence [label=<{ | |
<b>\N</b>| | |
<i>Sequence</i> methods<br/>+<br/>append extend<br/>reverse<br/>pop remove<br/>__iadd__| | |
<i>__getitem__<br/>__setitem__<br/>__delitem__<br/>__len__<br/>insert</i>}>] | |
ByteString [label=<{ | |
<b>\N</b>| | |
<i>Sequence</i> methods| | |
<i>__getitem__<br/>__len__</i>}>] | |
Set [label=<{ | |
<b>\N</b>| | |
__le__ __lt__<br/>__eq__ __ne__<br/>__gt__ __ge__<br/>__and__ __or__<br/>__sub__ __xor__<br/>isdisjoint| | |
<i>__contains__<br/>__iter__<br/>__len__</i>}>] | |
MutableSet [label=<{ | |
<b>\N</b>| | |
<i>Set</i> methods<br/>+<br/>clear pop remove<br/>__ior__ __iand__<br/>__isub__ __ixor__| | |
<i>__contains__<br/>__iter__<br/>__len__<br/>add<br/>discard</i>}>] | |
Mapping [label=<{ | |
<b>\N</b>| | |
__contains__<br/>keys items<br/>values get<br/>__eq__ __ne__| | |
<i>__getitem__<br/>__iter__<br/>__len__</i>}>] | |
MutableMapping [label=<{ | |
<b>\N</b>| | |
<i>Mapping</i> methods<br/>+<br/>pop popitem<br/>clear update<br/>setdefault| | |
<i>__getitem__<br/>__setitem__<br/>__delitem__<br/>__iter__<br/>__len__</i>}>] | |
MappingView [label=<{ | |
<b>\N</b>| | |
__len__| | |
}>] | |
ItemsView [label=<{ | |
<b>\N</b>| | |
__contains__<br/>__iter__| | |
}>] | |
KeysView [label=<{ | |
<b>\N</b>| | |
__contains__<br/>__iter__| | |
}>] | |
ValuesView [label=<{ | |
<b>\N</b>| | |
__contains__<br/>__iter__| | |
}>] | |
Awaitable [label=<{ | |
<b>\N</b>| | |
| | |
<i>__await__</i>}>] | |
Coroutine [label=<{ | |
<b>\N</b>| | |
close| | |
<i>send<br/>throw</i>}>] | |
AsyncIterable [label=<{ | |
<b>\N</b>| | |
| | |
<i>__aiter__</i>}>] | |
AsyncIterator [label=<{ | |
<b>\N</b>| | |
__aiter__| | |
<i>__anext__</i>}>] | |
AsyncGenerator [label=<{ | |
<b>\N</b>| | |
aclose<br/>__aiter__<br/>__anext__| | |
<i>asend<br/>athrow</i>}>] | |
# Inheritance | |
Iterator -> Iterable | |
Reversible -> Iterable | |
Generator -> Iterator | |
Collection -> Sized | |
Collection -> Iterable | |
Collection -> Container | |
Sequence -> Reversible | |
Sequence -> Collection | |
MutableSequence -> Sequence | |
ByteString -> Sequence | |
Set -> Collection | |
MutableSet -> Set | |
Mapping -> Collection | |
MutableMapping -> Mapping | |
MappingView -> Sized | |
ItemsView -> MappingView | |
ItemsView -> Set | |
KeysView -> MappingView | |
KeysView -> Set | |
ValuesView -> MappingView | |
ValuesView -> Collection [label=" 3.7 ",decorate=true] | |
Coroutine -> Awaitable | |
AsyncIterator -> AsyncIterable | |
AsyncGenerator -> AsyncIterator | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment