I like the full.png diagram, however, I see some issues with it.
Most seriously, the methods it lists don't match the documentation.
E.g. if you check MappingView:
you see it has only a __len__ mixin method.
The other methods in the diagram are implementation details
and should be removed.
Some presentation points (all IMHO of course):
* Get rid of the empty boxes.
* Get rid of the trailing (). Since all methods have this, it adds no info.
* There is no visual distinction between the abstract methods
and the mixin methods. I'd suggest making the abstract methods italic
or something like that.
Stephan
Thank you for your observations Stephan.
The
reason behind that is that I genretated it from a copy of the source
code, and I was sondering about getting rid of it or not... But I think
you'r right: let's display only the documented part.
About
the displaying of the abstract method, sadly it seems that pyreverse
doesn't support it... It didn't find a way to hide the paranetesis
either. I could make those changes whth a graphic tool though. Same
thing with the empty box.
Whereas it's possible with plantuml. But may be I have to use a pure python tool. What's your opinions about that?
Another
thing: for exemple, in the case of Collection, it asks to implement the
three method __iter__, __contains__ and __sized__, but since it inherit
them from Iterable, Container and Sized, they're not shown.
I think it's better to make them appear since:
1. you have to implement them to inherit from it;
2.
the three methods are checked during the __subclasshook__ of this ABC
to know if a class is a virtual subclass of it or not (when pass as a
second argument of issubclass() for example).
I
don't think it's an error in UML to re-display them since they are
abstracts (it would be if they were concretes because it would mean that
they were been overriden).