| 1 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,129 +0,0 @@ |
| 1 |
-About _xdot.py_ |
|
| 2 |
-================= |
|
| 3 |
- |
|
| 4 |
-_xdot.py_ is an interactive viewer for graphs written in [Graphviz](http://www.graphviz.org/)'s [dot language](http://www.graphviz.org/doc/info/lang.html). |
|
| 5 |
- |
|
| 6 |
-It uses internally the GraphViz's [xdot output format](http://www.graphviz.org/doc/info/output.html#d:xdot) as an intermediate format, and [PyGTK](http://www.pygtk.org/) and [Cairo](http://cairographics.org/) for rendering. |
|
| 7 |
- |
|
| 8 |
-_xdot.py_ can be used either as a standalone application from command line, or as a library embedded in your Python application. |
|
| 9 |
- |
|
| 10 |
-Status |
|
| 11 |
-====== |
|
| 12 |
- |
|
| 13 |
-_xdot.py_ script became much more popular than I ever anticipated, and there are several interested in improving it further. However, for several years now, _xdot.py_ already meets my own needs, and unfortunately I don't have much time for maintaing it myself. |
|
| 14 |
- |
|
| 15 |
-So I'm looking into transition _xdot.py_ maitenance to [others](https://github.com/jrfonseca/xdot.py/wiki/Forks): either hand over the maintenance _xdot.py_ to a community or indicate an official fork of _xdot.py_. |
|
| 16 |
- |
|
| 17 |
-I encourage people interested in development of _xdot.py_ to fork the [GitHub repository](https://github.com/jrfonseca/xdot.py), and join the new [mailing list](https://groups.google.com/d/forum/xdot-py). |
|
| 18 |
- |
|
| 19 |
-Features |
|
| 20 |
-======== |
|
| 21 |
- |
|
| 22 |
- * Since it doesn't use bitmaps it is fast and has a small memory footprint. |
|
| 23 |
- * Arbitrary zoom. |
|
| 24 |
- * Keyboard/mouse navigation. |
|
| 25 |
- * Supports events on the nodes with URLs. |
|
| 26 |
- * Animated jumping between nodes. |
|
| 27 |
- * Highlights node/edge under mouse. |
|
| 28 |
- |
|
| 29 |
-Known Issues |
|
| 30 |
-============ |
|
| 31 |
- |
|
| 32 |
- * Not all xdot attributes are supported or correctly rendered yet. It works well for my applications but YMMV. |
|
| 33 |
- |
|
| 34 |
- * Text doesn't scale properly to large sizes if font hinting is enabled. I haven't found a reliable way to disable font hinting during rendering yet. |
|
| 35 |
- |
|
| 36 |
-See also: |
|
| 37 |
- |
|
| 38 |
- * [github issue tracker](https://github.com/jrfonseca/xdot.py/issues) |
|
| 39 |
- |
|
| 40 |
-Screenshots |
|
| 41 |
-=========== |
|
| 42 |
- |
|
| 43 |
-[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-profile1.png) |
|
| 44 |
-[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-profile2.png) |
|
| 45 |
-[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-cfg.png) |
|
| 46 |
- |
|
| 47 |
-Requirements |
|
| 48 |
-============ |
|
| 49 |
- |
|
| 50 |
- * [Python 3](http://www.python.org/download/) |
|
| 51 |
- |
|
| 52 |
- * [PyGObject bindings for GTK3](https://wiki.gnome.org/action/show/Projects/PyGObject) |
|
| 53 |
- |
|
| 54 |
- * [Graphviz](http://www.graphviz.org/Download.php) |
|
| 55 |
- |
|
| 56 |
-Windows users |
|
| 57 |
- |
|
| 58 |
-Download and install: |
|
| 59 |
- |
|
| 60 |
- * [Python for Windows](http://www.python.org/download/) |
|
| 61 |
- |
|
| 62 |
- * [PyGObject bindings for GTK3](https://wiki.gnome.org/action/show/Projects/PyGObject) |
|
| 63 |
- |
|
| 64 |
- * [Graphviz for Windows](http://www.graphviz.org/Download_windows.php) |
|
| 65 |
- |
|
| 66 |
-Debian/Ubuntu users |
|
| 67 |
- |
|
| 68 |
-Run: |
|
| 69 |
- |
|
| 70 |
- apt-get install gir1.2-gtk-3.0 python3-gi python3-gi-cairo graphviz |
|
| 71 |
- |
|
| 72 |
-Usage |
|
| 73 |
-===== |
|
| 74 |
- |
|
| 75 |
-Command Line |
|
| 76 |
- |
|
| 77 |
- Usage: |
|
| 78 |
- xdot.py [file] |
|
| 79 |
- |
|
| 80 |
- Options: |
|
| 81 |
- -h, --help show this help message and exit |
|
| 82 |
- -f FILTER, --filter=FILTER |
|
| 83 |
- graphviz filter: dot, neato, twopi, circo, or fdp |
|
| 84 |
- [default: dot] |
|
| 85 |
- -n, --no-filter assume input is already filtered into xdot format (use |
|
| 86 |
- e.g. dot -Txdot) |
|
| 87 |
- -g GEOMETRY default window size in form WxH |
|
| 88 |
- |
|
| 89 |
- Shortcuts: |
|
| 90 |
- Up, Down, Left, Right scroll |
|
| 91 |
- PageUp, +, = zoom in |
|
| 92 |
- PageDown, - zoom out |
|
| 93 |
- R reload dot file |
|
| 94 |
- F find |
|
| 95 |
- Q quit |
|
| 96 |
- P print |
|
| 97 |
- Escape halt animation |
|
| 98 |
- Ctrl-drag zoom in/out |
|
| 99 |
- Shift-drag zooms an area |
|
| 100 |
- |
|
| 101 |
-If no input file is given then it will read the dot graph from the standard input. |
|
| 102 |
- |
|
| 103 |
-Embedding |
|
| 104 |
- |
|
| 105 |
-See included `sample.py` script for an example of how to embedded _xdot.py_ into another application. |
|
| 106 |
- |
|
| 107 |
-[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-sample.png) |
|
| 108 |
- |
|
| 109 |
-Download |
|
| 110 |
-======== |
|
| 111 |
- |
|
| 112 |
- * https://pypi.python.org/pypi/xdot |
|
| 113 |
- |
|
| 114 |
- * https://github.com/jrfonseca/xdot.py |
|
| 115 |
- |
|
| 116 |
-Links |
|
| 117 |
-===== |
|
| 118 |
- |
|
| 119 |
- * [Graphviz homepage](http://www.graphviz.org/) |
|
| 120 |
- |
|
| 121 |
- * [ZGRViewer](http://zvtm.sourceforge.net/zgrviewer.html) -- another superb graphviz/dot viewer |
|
| 122 |
- |
|
| 123 |
- * [dot2tex](https://github.com/kjellmf/dot2tex) -- python script to convert xdot output from Graphviz to a series of PSTricks or PGF/TikZ commands. |
|
| 124 |
- |
|
| 125 |
- * The [PyPy project](http://pypy.org/) also includes an [interactive dot viewer based on graphviz's plain format and the pygame library](http://morepypy.blogspot.com/2008/01/visualizing-python-tokenizer.html). |
| ... | ... |
@@ -126,4 +126,4 @@ Links |
| 126 | 126 |
|
| 127 | 127 |
* [dot2tex](https://github.com/kjellmf/dot2tex) -- python script to convert xdot output from Graphviz to a series of PSTricks or PGF/TikZ commands. |
| 128 | 128 |
|
| 129 |
- * The [pypy project](http://codespeak.net/pypy/) also includes an [interactive dot viewer based on graphviz's plain format and the pygame library](http://morepypy.blogspot.com/2008/01/visualizing-python-tokenizer.html). |
|
| 129 |
+ * The [PyPy project](http://pypy.org/) also includes an [interactive dot viewer based on graphviz's plain format and the pygame library](http://morepypy.blogspot.com/2008/01/visualizing-python-tokenizer.html). |
| ... | ... |
@@ -3,14 +3,14 @@ About _xdot.py_ |
| 3 | 3 |
|
| 4 | 4 |
_xdot.py_ is an interactive viewer for graphs written in [Graphviz](http://www.graphviz.org/)'s [dot language](http://www.graphviz.org/doc/info/lang.html). |
| 5 | 5 |
|
| 6 |
-It uses internally the graphviz's [xdot output format](http://www.graphviz.org/doc/info/output.html#d:xdot) as an intermediate format, and [PyGTK](http://www.pygtk.org/) and [Cairo](http://cairographics.org/) for rendering. |
|
| 6 |
+It uses internally the GraphViz's [xdot output format](http://www.graphviz.org/doc/info/output.html#d:xdot) as an intermediate format, and [PyGTK](http://www.pygtk.org/) and [Cairo](http://cairographics.org/) for rendering. |
|
| 7 | 7 |
|
| 8 |
-_xdot.py_ can be used either as a standalone application from command line, or as a library embedded in your python application. |
|
| 8 |
+_xdot.py_ can be used either as a standalone application from command line, or as a library embedded in your Python application. |
|
| 9 | 9 |
|
| 10 | 10 |
Status |
| 11 | 11 |
====== |
| 12 | 12 |
|
| 13 |
-_xdot.py_ script became much more popular than I ever anticipated, and there are several interested in improving it further. However, for several years now, _xdot.py_ already meets my own needs, and unfortunately I don't have much time for maintain it myself. |
|
| 13 |
+_xdot.py_ script became much more popular than I ever anticipated, and there are several interested in improving it further. However, for several years now, _xdot.py_ already meets my own needs, and unfortunately I don't have much time for maintaing it myself. |
|
| 14 | 14 |
|
| 15 | 15 |
So I'm looking into transition _xdot.py_ maitenance to [others](https://github.com/jrfonseca/xdot.py/wiki/Forks): either hand over the maintenance _xdot.py_ to a community or indicate an official fork of _xdot.py_. |
| 16 | 16 |
|
| ... | ... |
@@ -31,14 +31,12 @@ Known Issues |
| 31 | 31 |
|
| 32 | 32 |
* Not all xdot attributes are supported or correctly rendered yet. It works well for my applications but YMMV. |
| 33 | 33 |
|
| 34 |
- * Text doesn't scale properly to large sizes if font hinting is enabled. I haven't find a reliable way to disable font hinting during rendering yet. |
|
| 34 |
+ * Text doesn't scale properly to large sizes if font hinting is enabled. I haven't found a reliable way to disable font hinting during rendering yet. |
|
| 35 | 35 |
|
| 36 | 36 |
See also: |
| 37 | 37 |
|
| 38 | 38 |
* [github issue tracker](https://github.com/jrfonseca/xdot.py/issues) |
| 39 | 39 |
|
| 40 |
- * [googlecode issue tracker](https://code.google.com/archive/p/jrfonseca/issues). |
|
| 41 |
- |
|
| 42 | 40 |
Screenshots |
| 43 | 41 |
=========== |
| 44 | 42 |
|
| ... | ... |
@@ -37,7 +37,7 @@ See also: |
| 37 | 37 |
|
| 38 | 38 |
* [github issue tracker](https://github.com/jrfonseca/xdot.py/issues) |
| 39 | 39 |
|
| 40 |
- * [googlecode issue tracker](https://code.google.com/p/jrfonseca/issues/list?q=xdot). |
|
| 40 |
+ * [googlecode issue tracker](https://code.google.com/archive/p/jrfonseca/issues). |
|
| 41 | 41 |
|
| 42 | 42 |
Screenshots |
| 43 | 43 |
=========== |
| ... | ... |
@@ -125,6 +125,6 @@ Links |
| 125 | 125 |
|
| 126 | 126 |
* [ZGRViewer](http://zvtm.sourceforge.net/zgrviewer.html) -- another superb graphviz/dot viewer |
| 127 | 127 |
|
| 128 |
- * [dot2tex](http://code.google.com/p/dot2tex/) -- python script to convert xdot output from Graphviz to a series of PSTricks or PGF/TikZ commands. |
|
| 128 |
+ * [dot2tex](https://github.com/kjellmf/dot2tex) -- python script to convert xdot output from Graphviz to a series of PSTricks or PGF/TikZ commands. |
|
| 129 | 129 |
|
| 130 | 130 |
* The [pypy project](http://codespeak.net/pypy/) also includes an [interactive dot viewer based on graphviz's plain format and the pygame library](http://morepypy.blogspot.com/2008/01/visualizing-python-tokenizer.html). |
| ... | ... |
@@ -49,9 +49,9 @@ Screenshots |
| 49 | 49 |
Requirements |
| 50 | 50 |
============ |
| 51 | 51 |
|
| 52 |
- * [Python](http://www.python.org/download/) (2.6 or 2.7) |
|
| 52 |
+ * [Python 3](http://www.python.org/download/) |
|
| 53 | 53 |
|
| 54 |
- * [PyGTK](http://www.pygtk.org/downloads.html) (2.10 or greater) |
|
| 54 |
+ * [PyGObject bindings for GTK3](https://wiki.gnome.org/action/show/Projects/PyGObject) |
|
| 55 | 55 |
|
| 56 | 56 |
* [Graphviz](http://www.graphviz.org/Download.php) |
| 57 | 57 |
|
| ... | ... |
@@ -62,9 +62,7 @@ Download and install: |
| 62 | 62 |
|
| 63 | 63 |
* [Python for Windows](http://www.python.org/download/) |
| 64 | 64 |
|
| 65 |
- * [GTK+ Runtime for Windows](http://www.gtk.org/download/win32.php) |
|
| 66 |
- |
|
| 67 |
- * [PyCairo, PyGobject, and PyGTK for Windows](http://www.pygtk.org/downloads.html) |
|
| 65 |
+ * [PyGObject bindings for GTK3](https://wiki.gnome.org/action/show/Projects/PyGObject) |
|
| 68 | 66 |
|
| 69 | 67 |
* [Graphviz for Windows](http://www.graphviz.org/Download_windows.php) |
| 70 | 68 |
|
| ... | ... |
@@ -73,7 +71,7 @@ Debian/Ubuntu users |
| 73 | 71 |
|
| 74 | 72 |
Run: |
| 75 | 73 |
|
| 76 |
- apt-get install python-gtk2 graphviz |
|
| 74 |
+ apt-get install python3-gi-cairo graphviz |
|
| 77 | 75 |
|
| 78 | 76 |
Usage |
| 79 | 77 |
===== |
| ... | ... |
@@ -109,7 +109,7 @@ If no input file is given then it will read the dot graph from the standard inpu |
| 109 | 109 |
Embedding |
| 110 | 110 |
--------- |
| 111 | 111 |
|
| 112 |
-See included `example.py` script for an example of how to embedded _xdot.py_ into another application. |
|
| 112 |
+See included `sample.py` script for an example of how to embedded _xdot.py_ into another application. |
|
| 113 | 113 |
|
| 114 | 114 |
[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-sample.png) |
| 115 | 115 |
|
| ... | ... |
@@ -12,7 +12,7 @@ Status |
| 12 | 12 |
|
| 13 | 13 |
_xdot.py_ script became much more popular than I ever anticipated, and there are several interested in improving it further. However, for several years now, _xdot.py_ already meets my own needs, and unfortunately I don't have much time for maintain it myself. |
| 14 | 14 |
|
| 15 |
-So I'm looking into transition _xdot.py_ maitenance to others: either hand over the maintenance _xdot.py_ to a community or indicate an official fork of _xdot.py_. |
|
| 15 |
+So I'm looking into transition _xdot.py_ maitenance to [others](https://github.com/jrfonseca/xdot.py/wiki/Forks): either hand over the maintenance _xdot.py_ to a community or indicate an official fork of _xdot.py_. |
|
| 16 | 16 |
|
| 17 | 17 |
I encourage people interested in development of _xdot.py_ to fork the [GitHub repository](https://github.com/jrfonseca/xdot.py), and join the new [mailing list](https://groups.google.com/d/forum/xdot-py). |
| 18 | 18 |
|
Just duplicates the info on github.
| ... | ... |
@@ -26,49 +26,6 @@ Features |
| 26 | 26 |
* Animated jumping between nodes. |
| 27 | 27 |
* Highlights node/edge under mouse. |
| 28 | 28 |
|
| 29 |
-Changelog |
|
| 30 |
-========= |
|
| 31 |
- |
|
| 32 |
- * **2013-05-12**: Text based node search (by Salva and ludw1g.m3i3r, issue 68) |
|
| 33 |
- |
|
| 34 |
- * **2012-11-24**: Printing support (by ludw1g.m3i3r, issue 74) |
|
| 35 |
- |
|
| 36 |
- * **2011-09-01**: Fix forward slash escaping (issue 61) |
|
| 37 |
- |
|
| 38 |
- * **2011-02-13**: Show dotted lines in xdot (by djs52uk, issue 50) |
|
| 39 |
- |
|
| 40 |
- * **2010-12-12**: Support images (thanks to Alberto RodrÃguez) |
|
| 41 |
- |
|
| 42 |
- * **2010-01-32**: Add Quit key binding (from sk, issue #30) |
|
| 43 |
- |
|
| 44 |
- * **2009-09-30**: Add a reload button (fixes issue #22) |
|
| 45 |
- |
|
| 46 |
- * **2009-09-30**: Properly handle motion-notify-event (from lodatom, issue #24) |
|
| 47 |
- |
|
| 48 |
- * **2009-09-20**: Automatically reloads open file when it changes (from Robert Meerman, issue #21) |
|
| 49 |
- |
|
| 50 |
- * **2009-09-20**: Add support for [ColorBrewer Color Schemes](http://colorbrewer.org/) (from to michael.hliao, issue #23). |
|
| 51 |
- |
|
| 52 |
- * **2009-08-09**: Upload to [PyPi](http://pypi.python.org/pypi/xdot) (thanks to Marius Gedminas, issue #19) |
|
| 53 |
- |
|
| 54 |
- * **2009-05-24**: Reloads the file on the 'r' key (from peterbjorgensen). |
|
| 55 |
- |
|
| 56 |
- * **2009-04-09**: Render subgraphs correctly. |
|
| 57 |
- |
|
| 58 |
- * **2009-03-04**: Support filled bezier shapes. |
|
| 59 |
- |
|
| 60 |
- * **2009-01-29**: Check for unicode input; check subprocess returncode (from Jaap Karssenberg). |
|
| 61 |
- |
|
| 62 |
- * **2008-10-27**: Replace pydot and pyparsing by a much faster hand written lexer and parser (issue #9). |
|
| 63 |
- |
|
| 64 |
- * **2008-09-02**: Make mouse wheel zoom around the mouse cursor rather than center of window (from Marius Gedminas). |
|
| 65 |
- |
|
| 66 |
- * **2008-09-02**: Handle polylines. Handle ports in node names. |
|
| 67 |
- |
|
| 68 |
- * **2008-07-27**: Allow to specify the graphviz filter to use. |
|
| 69 |
- |
|
| 70 |
- * **2008-07-13**: Commit several enhancements done by [Marius Gedminas](http://mg.pov.lt/blog/europython2008-sprints-day-2.html), such as, animated jumping between nodes, highlighted node/edge under mouse, and support to more xdot language features. |
|
| 71 |
- |
|
| 72 | 29 |
Known Issues |
| 73 | 30 |
============ |
| 74 | 31 |
|
| ... | ... |
@@ -1,20 +1,20 @@ |
| 1 |
-About **xdot.py** |
|
| 1 |
+About _xdot.py_ |
|
| 2 | 2 |
================= |
| 3 | 3 |
|
| 4 |
-xdot.py is an interactive viewer for graphs written in [Graphviz](http://www.graphviz.org/)'s [dot language](http://www.graphviz.org/doc/info/lang.html). |
|
| 4 |
+_xdot.py_ is an interactive viewer for graphs written in [Graphviz](http://www.graphviz.org/)'s [dot language](http://www.graphviz.org/doc/info/lang.html). |
|
| 5 | 5 |
|
| 6 | 6 |
It uses internally the graphviz's [xdot output format](http://www.graphviz.org/doc/info/output.html#d:xdot) as an intermediate format, and [PyGTK](http://www.pygtk.org/) and [Cairo](http://cairographics.org/) for rendering. |
| 7 | 7 |
|
| 8 |
-xdot.py can be used either as a standalone application from command line, or as a library embedded in your python application. |
|
| 8 |
+_xdot.py_ can be used either as a standalone application from command line, or as a library embedded in your python application. |
|
| 9 | 9 |
|
| 10 | 10 |
Status |
| 11 | 11 |
====== |
| 12 | 12 |
|
| 13 |
-xdot.py script became much more popular than I ever anticipated, and there are several interested in improving it further. However, for several years now, xdot.py already meets my own needs, and unfortunately I don't have much time for maintain it myself. |
|
| 13 |
+_xdot.py_ script became much more popular than I ever anticipated, and there are several interested in improving it further. However, for several years now, _xdot.py_ already meets my own needs, and unfortunately I don't have much time for maintain it myself. |
|
| 14 | 14 |
|
| 15 |
-So I'm looking into transition xdot.py maitenance to others: either hand over the maintenance xdot.py to a community or indicate an official fork of xdot.py. |
|
| 15 |
+So I'm looking into transition _xdot.py_ maitenance to others: either hand over the maintenance _xdot.py_ to a community or indicate an official fork of _xdot.py_. |
|
| 16 | 16 |
|
| 17 |
-I encourage people interested in development of xdot.py to fork the (GitHub repository)[https://github.com/jrfonseca/xdot.py], and join the new (mailing list)[https://groups.google.com/d/forum/xdot-py]. |
|
| 17 |
+I encourage people interested in development of _xdot.py_ to fork the [GitHub repository](https://github.com/jrfonseca/xdot.py), and join the new [mailing list](https://groups.google.com/d/forum/xdot-py). |
|
| 18 | 18 |
|
| 19 | 19 |
Features |
| 20 | 20 |
======== |
| ... | ... |
@@ -47,9 +47,9 @@ Changelog |
| 47 | 47 |
|
| 48 | 48 |
* **2009-09-20**: Automatically reloads open file when it changes (from Robert Meerman, issue #21) |
| 49 | 49 |
|
| 50 |
- * **2009-09-20**: Add support for [ColorBrewer Color Schemes](http://colorbrewer.org/)(from to michael.hliao, issue #23). |
|
| 50 |
+ * **2009-09-20**: Add support for [ColorBrewer Color Schemes](http://colorbrewer.org/) (from to michael.hliao, issue #23). |
|
| 51 | 51 |
|
| 52 |
- * **2009-08-09**: Upload to [PyPi](http://pypi.python.org/pypi/xdot)(thanks to Marius Gedminas, issue #19) |
|
| 52 |
+ * **2009-08-09**: Upload to [PyPi](http://pypi.python.org/pypi/xdot) (thanks to Marius Gedminas, issue #19) |
|
| 53 | 53 |
|
| 54 | 54 |
* **2009-05-24**: Reloads the file on the 'r' key (from peterbjorgensen). |
| 55 | 55 |
|
| ... | ... |
@@ -152,7 +152,7 @@ If no input file is given then it will read the dot graph from the standard inpu |
| 152 | 152 |
Embedding |
| 153 | 153 |
--------- |
| 154 | 154 |
|
| 155 |
-See included `example.py` script for an example of how to embedded xdot.py into another application. |
|
| 155 |
+See included `example.py` script for an example of how to embedded _xdot.py_ into another application. |
|
| 156 | 156 |
|
| 157 | 157 |
[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-sample.png) |
| 158 | 158 |
|
| ... | ... |
@@ -10,9 +10,11 @@ xdot.py can be used either as a standalone application from command line, or as |
| 10 | 10 |
Status |
| 11 | 11 |
====== |
| 12 | 12 |
|
| 13 |
-xdot.py script became much more popular than I ever anticipated, and it there is potential for further enhancements. However xdot.py already meets my own needs as it is now, and unfortunately I don't have much time for maintain it myself. |
|
| 13 |
+xdot.py script became much more popular than I ever anticipated, and there are several interested in improving it further. However, for several years now, xdot.py already meets my own needs, and unfortunately I don't have much time for maintain it myself. |
|
| 14 | 14 |
|
| 15 |
-If this version of xdot.py does not meet your needs then take a look at the [outstanding issues](https://code.google.com/p/jrfonseca/issues/list?q=xdot) or the comments below, for patches and links for other forks. xdot.py is small and self contained, so feel free to include it in your own projects. |
|
| 15 |
+So I'm looking into transition xdot.py maitenance to others: either hand over the maintenance xdot.py to a community or indicate an official fork of xdot.py. |
|
| 16 |
+ |
|
| 17 |
+I encourage people interested in development of xdot.py to fork the (GitHub repository)[https://github.com/jrfonseca/xdot.py], and join the new (mailing list)[https://groups.google.com/d/forum/xdot-py]. |
|
| 16 | 18 |
|
| 17 | 19 |
Features |
| 18 | 20 |
======== |
| ... | ... |
@@ -74,7 +76,11 @@ Known Issues |
| 74 | 76 |
|
| 75 | 77 |
* Text doesn't scale properly to large sizes if font hinting is enabled. I haven't find a reliable way to disable font hinting during rendering yet. |
| 76 | 78 |
|
| 77 |
-See also the [googlecode issue tracker](https://code.google.com/p/jrfonseca/issues/list?q=xdot). |
|
| 79 |
+See also: |
|
| 80 |
+ |
|
| 81 |
+ * [github issue tracker](https://github.com/jrfonseca/xdot.py/issues) |
|
| 82 |
+ |
|
| 83 |
+ * [googlecode issue tracker](https://code.google.com/p/jrfonseca/issues/list?q=xdot). |
|
| 78 | 84 |
|
| 79 | 85 |
Screenshots |
| 80 | 86 |
=========== |
| ... | ... |
@@ -86,7 +92,7 @@ Screenshots |
| 86 | 92 |
Requirements |
| 87 | 93 |
============ |
| 88 | 94 |
|
| 89 |
- * [Python](http://www.python.org/download/) (2.4 or greater) |
|
| 95 |
+ * [Python](http://www.python.org/download/) (2.6 or 2.7) |
|
| 90 | 96 |
|
| 91 | 97 |
* [PyGTK](http://www.pygtk.org/downloads.html) (2.10 or greater) |
| 92 | 98 |
|
| ... | ... |
@@ -79,9 +79,9 @@ See also the [googlecode issue tracker](https://code.google.com/p/jrfonseca/issu |
| 79 | 79 |
Screenshots |
| 80 | 80 |
=========== |
| 81 | 81 |
|
| 82 |
-[](http://wiki.jrfonseca.googlecode.com/git/xdot-profile1.png) |
|
| 83 |
-[](http://wiki.jrfonseca.googlecode.com/git/xdot-profile2.png) |
|
| 84 |
-[](http://wiki.jrfonseca.googlecode.com/git/xdot-cfg.png) |
|
| 82 |
+[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-profile1.png) |
|
| 83 |
+[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-profile2.png) |
|
| 84 |
+[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-cfg.png) |
|
| 85 | 85 |
|
| 86 | 86 |
Requirements |
| 87 | 87 |
============ |
| ... | ... |
@@ -148,7 +148,7 @@ Embedding |
| 148 | 148 |
|
| 149 | 149 |
See included `example.py` script for an example of how to embedded xdot.py into another application. |
| 150 | 150 |
|
| 151 |
-[](http://wiki.jrfonseca.googlecode.com/git/xdot-sample.png) |
|
| 151 |
+[](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-sample.png) |
|
| 152 | 152 |
|
| 153 | 153 |
Download |
| 154 | 154 |
======== |
| ... | ... |
@@ -146,44 +146,7 @@ If no input file is given then it will read the dot graph from the standard inpu |
| 146 | 146 |
Embedding |
| 147 | 147 |
--------- |
| 148 | 148 |
|
| 149 |
- #!/usr/bin/env python |
|
| 150 |
- |
|
| 151 |
- import gtk |
|
| 152 |
- import gtk.gdk |
|
| 153 |
- |
|
| 154 |
- import xdot |
|
| 155 |
- |
|
| 156 |
- class MyDotWindow(xdot.DotWindow): |
|
| 157 |
- |
|
| 158 |
- def __init__(self): |
|
| 159 |
- xdot.DotWindow.__init__(self) |
|
| 160 |
- self.widget.connect('clicked', self.on_url_clicked)
|
|
| 161 |
- |
|
| 162 |
- def on_url_clicked(self, widget, url, event): |
|
| 163 |
- dialog = gtk.MessageDialog( |
|
| 164 |
- parent = self, |
|
| 165 |
- buttons = gtk.BUTTONS_OK, |
|
| 166 |
- message_format="%s clicked" % url) |
|
| 167 |
- dialog.connect('response', lambda dialog, response: dialog.destroy())
|
|
| 168 |
- dialog.run() |
|
| 169 |
- return True |
|
| 170 |
- |
|
| 171 |
- dotcode = """ |
|
| 172 |
- digraph G {
|
|
| 173 |
- Hello [URL="http://en.wikipedia.org/wiki/Hello"] |
|
| 174 |
- World [URL="http://en.wikipedia.org/wiki/World"] |
|
| 175 |
- Hello -> World |
|
| 176 |
- } |
|
| 177 |
- """ |
|
| 178 |
- |
|
| 179 |
- def main(): |
|
| 180 |
- window = MyDotWindow() |
|
| 181 |
- window.set_dotcode(dotcode) |
|
| 182 |
- window.connect('destroy', gtk.main_quit)
|
|
| 183 |
- gtk.main() |
|
| 184 |
- |
|
| 185 |
- if __name__ == '__main__': |
|
| 186 |
- main() |
|
| 149 |
+See included `example.py` script for an example of how to embedded xdot.py into another application. |
|
| 187 | 150 |
|
| 188 | 151 |
[](http://wiki.jrfonseca.googlecode.com/git/xdot-sample.png) |
| 189 | 152 |
|
| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,206 @@ |
| 1 |
+About **xdot.py** |
|
| 2 |
+================= |
|
| 3 |
+ |
|
| 4 |
+xdot.py is an interactive viewer for graphs written in [Graphviz](http://www.graphviz.org/)'s [dot language](http://www.graphviz.org/doc/info/lang.html). |
|
| 5 |
+ |
|
| 6 |
+It uses internally the graphviz's [xdot output format](http://www.graphviz.org/doc/info/output.html#d:xdot) as an intermediate format, and [PyGTK](http://www.pygtk.org/) and [Cairo](http://cairographics.org/) for rendering. |
|
| 7 |
+ |
|
| 8 |
+xdot.py can be used either as a standalone application from command line, or as a library embedded in your python application. |
|
| 9 |
+ |
|
| 10 |
+Status |
|
| 11 |
+====== |
|
| 12 |
+ |
|
| 13 |
+xdot.py script became much more popular than I ever anticipated, and it there is potential for further enhancements. However xdot.py already meets my own needs as it is now, and unfortunately I don't have much time for maintain it myself. |
|
| 14 |
+ |
|
| 15 |
+If this version of xdot.py does not meet your needs then take a look at the [outstanding issues](https://code.google.com/p/jrfonseca/issues/list?q=xdot) or the comments below, for patches and links for other forks. xdot.py is small and self contained, so feel free to include it in your own projects. |
|
| 16 |
+ |
|
| 17 |
+Features |
|
| 18 |
+======== |
|
| 19 |
+ |
|
| 20 |
+ * Since it doesn't use bitmaps it is fast and has a small memory footprint. |
|
| 21 |
+ * Arbitrary zoom. |
|
| 22 |
+ * Keyboard/mouse navigation. |
|
| 23 |
+ * Supports events on the nodes with URLs. |
|
| 24 |
+ * Animated jumping between nodes. |
|
| 25 |
+ * Highlights node/edge under mouse. |
|
| 26 |
+ |
|
| 27 |
+Changelog |
|
| 28 |
+========= |
|
| 29 |
+ |
|
| 30 |
+ * **2013-05-12**: Text based node search (by Salva and ludw1g.m3i3r, issue 68) |
|
| 31 |
+ |
|
| 32 |
+ * **2012-11-24**: Printing support (by ludw1g.m3i3r, issue 74) |
|
| 33 |
+ |
|
| 34 |
+ * **2011-09-01**: Fix forward slash escaping (issue 61) |
|
| 35 |
+ |
|
| 36 |
+ * **2011-02-13**: Show dotted lines in xdot (by djs52uk, issue 50) |
|
| 37 |
+ |
|
| 38 |
+ * **2010-12-12**: Support images (thanks to Alberto RodrÃguez) |
|
| 39 |
+ |
|
| 40 |
+ * **2010-01-32**: Add Quit key binding (from sk, issue #30) |
|
| 41 |
+ |
|
| 42 |
+ * **2009-09-30**: Add a reload button (fixes issue #22) |
|
| 43 |
+ |
|
| 44 |
+ * **2009-09-30**: Properly handle motion-notify-event (from lodatom, issue #24) |
|
| 45 |
+ |
|
| 46 |
+ * **2009-09-20**: Automatically reloads open file when it changes (from Robert Meerman, issue #21) |
|
| 47 |
+ |
|
| 48 |
+ * **2009-09-20**: Add support for [ColorBrewer Color Schemes](http://colorbrewer.org/)(from to michael.hliao, issue #23). |
|
| 49 |
+ |
|
| 50 |
+ * **2009-08-09**: Upload to [PyPi](http://pypi.python.org/pypi/xdot)(thanks to Marius Gedminas, issue #19) |
|
| 51 |
+ |
|
| 52 |
+ * **2009-05-24**: Reloads the file on the 'r' key (from peterbjorgensen). |
|
| 53 |
+ |
|
| 54 |
+ * **2009-04-09**: Render subgraphs correctly. |
|
| 55 |
+ |
|
| 56 |
+ * **2009-03-04**: Support filled bezier shapes. |
|
| 57 |
+ |
|
| 58 |
+ * **2009-01-29**: Check for unicode input; check subprocess returncode (from Jaap Karssenberg). |
|
| 59 |
+ |
|
| 60 |
+ * **2008-10-27**: Replace pydot and pyparsing by a much faster hand written lexer and parser (issue #9). |
|
| 61 |
+ |
|
| 62 |
+ * **2008-09-02**: Make mouse wheel zoom around the mouse cursor rather than center of window (from Marius Gedminas). |
|
| 63 |
+ |
|
| 64 |
+ * **2008-09-02**: Handle polylines. Handle ports in node names. |
|
| 65 |
+ |
|
| 66 |
+ * **2008-07-27**: Allow to specify the graphviz filter to use. |
|
| 67 |
+ |
|
| 68 |
+ * **2008-07-13**: Commit several enhancements done by [Marius Gedminas](http://mg.pov.lt/blog/europython2008-sprints-day-2.html), such as, animated jumping between nodes, highlighted node/edge under mouse, and support to more xdot language features. |
|
| 69 |
+ |
|
| 70 |
+Known Issues |
|
| 71 |
+============ |
|
| 72 |
+ |
|
| 73 |
+ * Not all xdot attributes are supported or correctly rendered yet. It works well for my applications but YMMV. |
|
| 74 |
+ |
|
| 75 |
+ * Text doesn't scale properly to large sizes if font hinting is enabled. I haven't find a reliable way to disable font hinting during rendering yet. |
|
| 76 |
+ |
|
| 77 |
+See also the [googlecode issue tracker](https://code.google.com/p/jrfonseca/issues/list?q=xdot). |
|
| 78 |
+ |
|
| 79 |
+Screenshots |
|
| 80 |
+=========== |
|
| 81 |
+ |
|
| 82 |
+[](http://wiki.jrfonseca.googlecode.com/git/xdot-profile1.png) |
|
| 83 |
+[](http://wiki.jrfonseca.googlecode.com/git/xdot-profile2.png) |
|
| 84 |
+[](http://wiki.jrfonseca.googlecode.com/git/xdot-cfg.png) |
|
| 85 |
+ |
|
| 86 |
+Requirements |
|
| 87 |
+============ |
|
| 88 |
+ |
|
| 89 |
+ * [Python](http://www.python.org/download/) (2.4 or greater) |
|
| 90 |
+ |
|
| 91 |
+ * [PyGTK](http://www.pygtk.org/downloads.html) (2.10 or greater) |
|
| 92 |
+ |
|
| 93 |
+ * [Graphviz](http://www.graphviz.org/Download.php) |
|
| 94 |
+ |
|
| 95 |
+Windows users |
|
| 96 |
+------------- |
|
| 97 |
+ |
|
| 98 |
+Download and install: |
|
| 99 |
+ |
|
| 100 |
+ * [Python for Windows](http://www.python.org/download/) |
|
| 101 |
+ |
|
| 102 |
+ * [GTK+ Runtime for Windows](http://www.gtk.org/download/win32.php) |
|
| 103 |
+ |
|
| 104 |
+ * [PyCairo, PyGobject, and PyGTK for Windows](http://www.pygtk.org/downloads.html) |
|
| 105 |
+ |
|
| 106 |
+ * [Graphviz for Windows](http://www.graphviz.org/Download_windows.php) |
|
| 107 |
+ |
|
| 108 |
+Debian/Ubuntu users |
|
| 109 |
+------------------- |
|
| 110 |
+ |
|
| 111 |
+Run: |
|
| 112 |
+ |
|
| 113 |
+ apt-get install python-gtk2 graphviz |
|
| 114 |
+ |
|
| 115 |
+Usage |
|
| 116 |
+===== |
|
| 117 |
+ |
|
| 118 |
+Command Line |
|
| 119 |
+------------ |
|
| 120 |
+ |
|
| 121 |
+ Usage: |
|
| 122 |
+ xdot.py [file] |
|
| 123 |
+ |
|
| 124 |
+ Options: |
|
| 125 |
+ -h, --help show this help message and exit |
|
| 126 |
+ -f FILTER, --filter=FILTER |
|
| 127 |
+ graphviz filter: dot, neato, twopi, circo, or fdp |
|
| 128 |
+ [default: dot] |
|
| 129 |
+ -n, --no-filter assume input is already filtered into xdot format (use |
|
| 130 |
+ e.g. dot -Txdot) |
|
| 131 |
+ |
|
| 132 |
+ Shortcuts: |
|
| 133 |
+ Up, Down, Left, Right scroll |
|
| 134 |
+ PageUp, +, = zoom in |
|
| 135 |
+ PageDown, - zoom out |
|
| 136 |
+ R reload dot file |
|
| 137 |
+ F find |
|
| 138 |
+ Q quit |
|
| 139 |
+ P print |
|
| 140 |
+ Escape halt animation |
|
| 141 |
+ Ctrl-drag zoom in/out |
|
| 142 |
+ Shift-drag zooms an area |
|
| 143 |
+ |
|
| 144 |
+If no input file is given then it will read the dot graph from the standard input. |
|
| 145 |
+ |
|
| 146 |
+Embedding |
|
| 147 |
+--------- |
|
| 148 |
+ |
|
| 149 |
+ #!/usr/bin/env python |
|
| 150 |
+ |
|
| 151 |
+ import gtk |
|
| 152 |
+ import gtk.gdk |
|
| 153 |
+ |
|
| 154 |
+ import xdot |
|
| 155 |
+ |
|
| 156 |
+ class MyDotWindow(xdot.DotWindow): |
|
| 157 |
+ |
|
| 158 |
+ def __init__(self): |
|
| 159 |
+ xdot.DotWindow.__init__(self) |
|
| 160 |
+ self.widget.connect('clicked', self.on_url_clicked)
|
|
| 161 |
+ |
|
| 162 |
+ def on_url_clicked(self, widget, url, event): |
|
| 163 |
+ dialog = gtk.MessageDialog( |
|
| 164 |
+ parent = self, |
|
| 165 |
+ buttons = gtk.BUTTONS_OK, |
|
| 166 |
+ message_format="%s clicked" % url) |
|
| 167 |
+ dialog.connect('response', lambda dialog, response: dialog.destroy())
|
|
| 168 |
+ dialog.run() |
|
| 169 |
+ return True |
|
| 170 |
+ |
|
| 171 |
+ dotcode = """ |
|
| 172 |
+ digraph G {
|
|
| 173 |
+ Hello [URL="http://en.wikipedia.org/wiki/Hello"] |
|
| 174 |
+ World [URL="http://en.wikipedia.org/wiki/World"] |
|
| 175 |
+ Hello -> World |
|
| 176 |
+ } |
|
| 177 |
+ """ |
|
| 178 |
+ |
|
| 179 |
+ def main(): |
|
| 180 |
+ window = MyDotWindow() |
|
| 181 |
+ window.set_dotcode(dotcode) |
|
| 182 |
+ window.connect('destroy', gtk.main_quit)
|
|
| 183 |
+ gtk.main() |
|
| 184 |
+ |
|
| 185 |
+ if __name__ == '__main__': |
|
| 186 |
+ main() |
|
| 187 |
+ |
|
| 188 |
+[](http://wiki.jrfonseca.googlecode.com/git/xdot-sample.png) |
|
| 189 |
+ |
|
| 190 |
+Download |
|
| 191 |
+======== |
|
| 192 |
+ |
|
| 193 |
+ * https://pypi.python.org/pypi/xdot |
|
| 194 |
+ |
|
| 195 |
+ * https://github.com/jrfonseca/xdot.py |
|
| 196 |
+ |
|
| 197 |
+Links |
|
| 198 |
+===== |
|
| 199 |
+ |
|
| 200 |
+ * [Graphviz homepage](http://www.graphviz.org/) |
|
| 201 |
+ |
|
| 202 |
+ * [ZGRViewer](http://zvtm.sourceforge.net/zgrviewer.html) -- another superb graphviz/dot viewer |
|
| 203 |
+ |
|
| 204 |
+ * [dot2tex](http://code.google.com/p/dot2tex/) -- python script to convert xdot output from Graphviz to a series of PSTricks or PGF/TikZ commands. |
|
| 205 |
+ |
|
| 206 |
+ * The [pypy project](http://codespeak.net/pypy/) also includes an [interactive dot viewer based on graphviz's plain format and the pygame library](http://morepypy.blogspot.com/2008/01/visualizing-python-tokenizer.html). |