[pypy-svn] r44260 - in pypy/branch/graphserver-dist: dotviewer dotviewer/test pypy/bin pypy/translator/tool
arigo at codespeak.net
arigo at codespeak.net
Fri Jun 15 09:11:04 CEST 2007
Author: arigo
Date: Fri Jun 15 09:11:03 2007
New Revision: 44260
Added:
pypy/branch/graphserver-dist/dotviewer/
- copied from r44247, user/arigo/hack/pypy-hack/dotviewer/
pypy/branch/graphserver-dist/dotviewer/__init__.py (contents, props changed)
Removed:
pypy/branch/graphserver-dist/pypy/translator/tool/pygame.py
Modified:
pypy/branch/graphserver-dist/dotviewer/dotviewer.py
pypy/branch/graphserver-dist/dotviewer/graphclient.py
pypy/branch/graphserver-dist/dotviewer/test/test_interactive.py
pypy/branch/graphserver-dist/dotviewer/test/test_translator.py
pypy/branch/graphserver-dist/pypy/bin/dotviewer.py
pypy/branch/graphserver-dist/pypy/translator/tool/ (props changed)
pypy/branch/graphserver-dist/pypy/translator/tool/graphpage.py
Log:
Move the dotviewer directory from my user dir to pypy/dist/. I'm
putting it there for now because it's really a stand-alone tool, so
people can checkout only the dotviewer/ directory.
Added: pypy/branch/graphserver-dist/dotviewer/__init__.py
==============================================================================
Modified: pypy/branch/graphserver-dist/dotviewer/dotviewer.py
==============================================================================
--- user/arigo/hack/pypy-hack/dotviewer/dotviewer.py (original)
+++ pypy/branch/graphserver-dist/dotviewer/dotviewer.py Fri Jun 15 09:11:03 2007
@@ -4,18 +4,35 @@
dotviewer.py filename.dot
dotviewer.py filename.plain
+ dotviewer.py --server port
In the first form, show the graph contained in a .dot file.
In the second form, the graph was already compiled to a .plain file.
+In the third form, listen for connexion on the given port and display
+the graphs sent by the remote side.
"""
-import graphclient
+import sys
-if __name__ == '__main__':
- import sys
- args = sys.argv[1:]
- if len(args) != 1:
+def main(args = sys.argv[1:]):
+ import getopt
+ options, args = getopt.getopt(args, 's:h', ['server=', 'help'])
+ server_port = None
+ for option, value in options:
+ if option in ('-h', '--help'):
+ print >> sys.stderr, __doc__
+ sys.exit(2)
+ if option in ('-s', '--server'):
+ server_port = int(value)
+ if not args and server_port is None:
print >> sys.stderr, __doc__
sys.exit(2)
+ for filename in args:
+ import graphclient
+ graphclient.display_dot_file(filename)
+ if server_port is not None:
+ import graphserver
+ graphserver.listen_server(('', server_port))
- graphclient.display_dot_file(args[0])
+if __name__ == '__main__':
+ main()
Modified: pypy/branch/graphserver-dist/dotviewer/graphclient.py
==============================================================================
--- user/arigo/hack/pypy-hack/dotviewer/graphclient.py (original)
+++ pypy/branch/graphserver-dist/dotviewer/graphclient.py Fri Jun 15 09:11:03 2007
@@ -8,6 +8,8 @@
def display_dot_file(dotfile, wait=True):
""" Display the given dot file in a subprocess.
"""
+ if not os.path.exists(dotfile):
+ raise IOError("No such file: %s" % (dotfile,))
import graphpage
page = graphpage.DotFileGraphPage(str(dotfile))
display_page(page, wait=wait)
Modified: pypy/branch/graphserver-dist/dotviewer/test/test_interactive.py
==============================================================================
--- user/arigo/hack/pypy-hack/dotviewer/test/test_interactive.py (original)
+++ pypy/branch/graphserver-dist/dotviewer/test/test_interactive.py Fri Jun 15 09:11:03 2007
@@ -1,6 +1,6 @@
import py
import sys, os, signal, thread, time
-from test.conftest import option
+from dotviewer.test.conftest import option
SOURCE1 = r'''digraph _generated__graph {
subgraph _generated__ {
@@ -40,7 +40,7 @@
udir = py.path.local.make_numbered_dir(prefix='usession-dot-', keep=3)
udir.join('graph1.dot').write(SOURCE1)
- import graphclient
+ from dotviewer import graphclient
mod.pkgdir = py.path.local(graphclient.this_dir)
mod.udir = udir
@@ -105,7 +105,7 @@
def display1(filename, lock, errors):
try:
try:
- from graphclient import display_dot_file
+ from dotviewer.graphclient import display_dot_file
print "=== display_dot_file(%s) with GRAPHSERVER=%s" % (
filename, os.environ.get('GRAPHSERVER', ''),)
display_dot_file(udir.join(filename))
Modified: pypy/branch/graphserver-dist/dotviewer/test/test_translator.py
==============================================================================
--- user/arigo/hack/pypy-hack/dotviewer/test/test_translator.py (original)
+++ pypy/branch/graphserver-dist/dotviewer/test/test_translator.py Fri Jun 15 09:11:03 2007
@@ -3,7 +3,7 @@
"""
import py, sys
-from test.conftest import option
+from dotviewer.test.conftest import option
def setup_module(mod):
if not option.pygame:
@@ -12,12 +12,6 @@
import pypy
except ImportError:
py.test.skip("cannot import pypy")
- # to avoid confusion, prevent importing pypy.translator.tool.pygame
- sys.modules['pypy.translator.tool.pygame'] = None
- # patch GraphPage to redirect to this dotviewer
- import graphclient
- from pypy.translator.tool.graphpage import GraphPage
- GraphPage.display = graphclient.display_page
# ____________________________________________________________
Modified: pypy/branch/graphserver-dist/pypy/bin/dotviewer.py
==============================================================================
--- pypy/branch/graphserver-dist/pypy/bin/dotviewer.py (original)
+++ pypy/branch/graphserver-dist/pypy/bin/dotviewer.py Fri Jun 15 09:11:03 2007
@@ -1,48 +1,11 @@
#! /usr/bin/env python
"""
-Command-line interface for a dot file viewer -- either viewing normal .dot
-files or connecting to a graph server like a browser.
+Command-line interface for a dot file viewer.
+Run with no arguments for help.
"""
import autopath
-import sys, py
-from pypy.translator.tool.pygame import graphclient
-
-from py.compat import optparse
-
-usage = '''
- %s filename.dot
- %s filename.plain
- %s hostname:port
- %s :port
-
-In the first form, show the graph contained in a .dot file.
-In the second form, the graph was already compiled to a .plain file.
-In the other forms, connect to a graph server like
-goal/translate.py.
-''' % (sys.argv[0], sys.argv[0], sys.argv[0], sys.argv[0])
-
-parser = optparse.OptionParser(usage=usage)
-parser.add_option("--reload", action="store_true", dest="reload",
- default=False, help="reload the dot file continously")
-
+from dotviewer.dotviewer import main
if __name__ == '__main__':
- options, args = parser.parse_args()
- if len(args) != 1:
- if args:
- parser.error("too many arguments")
- else:
- parser.print_help()
- sys.exit(2)
- filename = args[0]
- if py.path.local(filename).check():
- graphclient.display_dot_file(filename,
- reload_repeatedly=options.reload)
- elif filename.count(':') != 1:
- print >> sys.stderr, 'No such file:', filename
- sys.exit(1)
- else:
- hostname, port = args[0].split(':')
- port = int(port)
- graphclient.display_remote_layout(hostname, port)
+ main()
Modified: pypy/branch/graphserver-dist/pypy/translator/tool/graphpage.py
==============================================================================
--- pypy/branch/graphserver-dist/pypy/translator/tool/graphpage.py (original)
+++ pypy/branch/graphserver-dist/pypy/translator/tool/graphpage.py Fri Jun 15 09:11:03 2007
@@ -7,7 +7,7 @@
from pypy.annotation.classdef import ClassDef
from pypy.tool.uid import uid
-from pypy.translator.tool.pygame.graphpage import GraphPage
+from dotviewer.graphpage import GraphPage
class VariableHistoryGraphPage(GraphPage):
More information about the pypy-svn
mailing list