[pypy-dev] Dotviewer capabilities

Carl Friedrich Bolz cfbolz at gmx.de
Thu Jun 26 00:45:13 CEST 2008

Hi Dinu,

Dinu Gherman wrote:
> while preparing a talk for EuroPython.org and chatting with
> Christian Tismer I remembered that PyPy had a nice PyGame GUI
> for browsing GraphViz .dot files.
> So I wanted to play with it and made a new SVN checkout (very
> funky Mandelbrot sets during compilation, BTW... ;-) Then it
> occured to me that I don't need PyPy to run dotviewer (great,
> because it's still compiling). So I throwed a few of my .dot
> files at dotviewer and got slightly surprised to see a few ra-
> ther basic things not quite working as I'd expect (like rec-
> tangular and record-like node shapes. I've created the follow-
> ing sample files to illustrate my findings:
>    http://python.net/~gherman/tmp/sample.dot
>    http://python.net/~gherman/tmp/sample.pdf
>    http://python.net/~gherman/tmp/sample.sample-dotviewer.jpg

The PyPy dot viewer isn't working well for records, since PyPy hasn't
used them so far. I guess adding support would maybe be easy. Apart from
the fact that the borders of the record boxes are missing, what else do
you think is wrong with the jpg above? It looks very similar to the pdf.

> I'm running PyGame 1.8.0rc5 on Mac OS X 10.5.3, BTW.
> So, am I running dotviewer in some wrong fashion? Do I need
> to run it on a different PyGame version or another OS? Or is
> there some documentation for docviewer and its capabilities,
> that I haven't found yet?
> In fact, what I hoped to find in dotviewer is a browser for
> dot files in which I can fold individual parts of a graph in
> and out (while GraphViz is, perhaps, recalculating the layout).
> If dotviewer cannot do that, maybe somebody knows of another
> browser which can?

The dotviewer is a browser for large dot files. However, it does not
support folding on arbitrary graphs, only zooming and navigation (by
clicking on nodes, links etc). If you need folding, you need some
customization of the dotviewer, which is possible as well. There are
even examples of doing that somewhere in PyPy, but I don't remember
where :-). Grepping might help.


Carl Friedrich

More information about the Pypy-dev mailing list