[pypy-svn] pypy documentation-cleanup: merge heads

lac commits-noreply at bitbucket.org
Tue Apr 26 18:21:48 CEST 2011


Author: Laura Creighton <lac at openend.se>
Branch: documentation-cleanup
Changeset: r43642:ebc27a998c59
Date: 2011-04-26 18:21 +0200
http://bitbucket.org/pypy/pypy/changeset/ebc27a998c59/

Log:	merge heads

diff --git a/pypy/doc/pypyconfig.py b/pypy/doc/pypyconfig.py
new file mode 100644
--- /dev/null
+++ b/pypy/doc/pypyconfig.py
@@ -0,0 +1,9 @@
+
+
+def setup(app):
+    import sys, os
+    sys.path.append(os.path.abspath("../../"))
+    from pypy.config import makerestdoc
+    import py
+    role = makerestdoc.register_config_role(py.path.local())
+    app.add_role("config", role)

diff --git a/pypy/config/makerestdoc.py b/pypy/config/makerestdoc.py
--- a/pypy/config/makerestdoc.py
+++ b/pypy/config/makerestdoc.py
@@ -221,7 +221,7 @@
         from docutils import nodes
         from pypy.config.pypyoption import get_pypy_config
         from pypy.config.makerestdoc import get_cmdline
-        txt = docdir.join("config", text + ".txt")
+        txt = docdir.join("config", text + ".rst")
         html = docdir.join("config", text + ".html")
         assert txt.check()
         assert name == "config"
@@ -247,9 +247,8 @@
                     shortest_long_option = cmd
             text = shortest_long_option
         target = prefix + relative
-        print text, target
         reference_node = nodes.reference(rawtext, text, name=text, refuri=target)
         return [reference_node], []
     config_role.content = True
     config_role.options = {}
-    roles.register_canonical_role("config", config_role)
+    return config_role

diff --git a/pypy/tool/rest/directive.py b/pypy/tool/rest/directive.py
--- a/pypy/tool/rest/directive.py
+++ b/pypy/tool/rest/directive.py
@@ -1,108 +1,9 @@
-# XXX this file is messy since it tries to deal with several docutils versions
 import py
 
-from pypy.tool.rest.convert import convert_dot, latexformula2png
-
 import sys
 import docutils
 from docutils import nodes
-from docutils.parsers.rst import directives, states, roles
-from docutils.parsers.rst.directives import images
-
-if hasattr(images, "image"):
-    directives_are_functions = True
-else:
-    directives_are_functions = False
-
-try:
-    from docutils.utils import unescape # docutils version > 0.3.5
-except ImportError:
-    from docutils.parsers.rst.states import unescape # docutils 0.3.5
-
-if not directives_are_functions:
-    ImageClass = images.Image
-
-else:
-    class ImageClass(object):
-        option_spec = images.image.options
-        def run(self):
-            return images.image(u'image',
-                                self.arguments,
-                                self.options,
-                                self.content,
-                                self.lineno,
-                                self.content_offset,
-                                self.block_text,
-                                self.state,
-                                self.state_machine)
-
-
-backend_to_image_format = {"html": "png", "latex": "pdf"}
-
-class GraphvizDirective(ImageClass):
-    def convert(self, fn, path):
-        path = py.path.local(path).dirpath()
-        dot = path.join(fn)
-        result = convert_dot(dot, backend_to_image_format[_backend])
-        return result.relto(path)
-
-    def run(self):
-        newname = self.convert(self.arguments[0],
-                               self.state.document.settings._source)
-        text = self.block_text.replace("graphviz", "image", 1)
-        self.block_text = text.replace(self.arguments[0], newname, 1)
-        self.name = u'image'
-        self.arguments = [newname]
-        return ImageClass.run(self)
-    
-    def old_interface(self):
-        def f(name, arguments, options, content, lineno,
-              content_offset, block_text, state, state_machine):
-            for arg in "name arguments options content lineno " \
-                       "content_offset block_text state state_machine".split():
-                setattr(self, arg, locals()[arg])
-            return self.run()
-        f.arguments = (1, 0, 1)
-        f.options = self.option_spec
-        return f
-
-
-_backend = None
-def set_backend_and_register_directives(backend):
-    #XXX this is only used to work around the inflexibility of docutils:
-    # a directive does not know the target format
-    global _backend
-    _backend = backend
-    if not directives_are_functions:
-        directives.register_directive("graphviz", GraphvizDirective)
-    else:
-        directives.register_directive("graphviz",
-                                      GraphvizDirective().old_interface())
-    roles.register_canonical_role("latexformula", latexformula_role)
-
-def latexformula_role(name, rawtext, text, lineno, inliner,
-                      options={}, content=[]):
-    if _backend == 'latex':
-        options['format'] = 'latex'
-        return roles.raw_role(name, rawtext, text, lineno, inliner,
-                              options, content)
-    else:
-        # XXX: make the place of the image directory configurable
-        sourcedir = py.path.local(inliner.document.settings._source).dirpath()
-        imagedir = sourcedir.join("img")
-        if not imagedir.check():
-            imagedir.mkdir()
-        # create halfway senseful imagename:
-        # use hash of formula + alphanumeric characters of it
-        # could
-        imagename = "%s_%s.png" % (
-            hash(text), "".join([c for c in text if c.isalnum()]))
-        image = imagedir.join(imagename)
-        latexformula2png(unescape(text, True), image)
-        imagenode = nodes.image(image.relto(sourcedir), uri=image.relto(sourcedir))
-        return [imagenode], []
-latexformula_role.content = True
-latexformula_role.options = {}
+from docutils.parsers.rst import roles
 
 def register_linkrole(role_name, callback):
     def source_role(name, rawtext, text, lineno, inliner, options={},

diff --git a/pypy/doc/image/parsing_example8.dot b/pypy/doc/image/parsing_example8.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example8.dot
+++ /dev/null
@@ -1,21 +0,0 @@
-digraph G{
-"-1213611892" [label="list"];
-"-1213611892" -> "-1213608980";
-"-1213608980" [shape=box,label="DECIMAL\n'1'"];
-"-1213611892" -> "-1213623476";
-"-1213623476" [label="list"];
-"-1213623476" -> "-1213623380";
-"-1213623380" [shape=box,label="DECIMAL\n'2'"];
-"-1213623476" -> "-1213442868";
-"-1213442868" [label="list"];
-"-1213442868" -> "-1213441652";
-"-1213441652" [shape=box,label="DECIMAL\n'3'"];
-"-1213442868" -> "-1213441332";
-"-1213441332" [label="list"];
-"-1213441332" -> "-1213441620";
-"-1213441620" [shape=box,label="DECIMAL\n'4'"];
-"-1213441332" -> "-1213443060";
-"-1213443060" [label="list"];
-"-1213443060" -> "-1213442100";
-"-1213442100" [shape=box,label="DECIMAL\n'5'"];
-}
\ No newline at end of file

diff --git a/pypy/doc/image/parsing_example5.dot b/pypy/doc/image/parsing_example5.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example5.dot
+++ /dev/null
@@ -1,21 +0,0 @@
-digraph G{
-"-1219949908" [label="n"];
-"-1219949908" -> "-1214026452";
-"-1214026452" [shape=box,label="__0_a\n'a'"];
-"-1219949908" -> "-1214028276";
-"-1214028276" [shape=box,label="__1_b\n'b'"];
-"-1219949908" -> "-1214027316";
-"-1214027316" [shape=box,label="__2_c\n'c'"];
-"-1219949908" -> "-1219949876";
-"-1219949876" [label="n"];
-"-1219949876" -> "-1214141364";
-"-1214141364" [shape=box,label="__0_a\n'a'"];
-"-1219949876" -> "-1214141748";
-"-1214141748" [shape=box,label="__1_b\n'b'"];
-"-1219949876" -> "-1214140756";
-"-1214140756" [shape=box,label="__2_c\n'c'"];
-"-1219949876" -> "-1219949748";
-"-1219949748" [label="m"];
-"-1219949748" -> "-1214414868";
-"-1214414868" [shape=box,label="__5_d\n'd'"];
-}
\ No newline at end of file

diff --git a/pypy/doc/image/parsing_example10.dot b/pypy/doc/image/parsing_example10.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example10.dot
+++ /dev/null
@@ -1,37 +0,0 @@
-digraph G{
-"-1220061652" [label="object"];
-"-1220061652" -> "-1220127636";
-"-1220127636" [label="entry"];
-"-1220127636" -> "-1213915636";
-"-1213915636" [shape=box,label="STRING\n'a'"];
-"-1220127636" -> "-1214251156";
-"-1214251156" [shape=box,label="STRING\n'5'"];
-"-1220061652" -> "-1220063188";
-"-1220063188" [label="entry"];
-"-1220063188" -> "-1214253076";
-"-1214253076" [shape=box,label="STRING\n'b'"];
-"-1220063188" -> "-1220059444";
-"-1220059444" [label="array"];
-"-1220059444" -> "-1214253364";
-"-1214253364" [shape=box,label="NUMBER\n'1'"];
-"-1220059444" -> "-1214254292";
-"-1214254292" [shape=box,label="__0_null\n'null'"];
-"-1220059444" -> "-1214253268";
-"-1214253268" [shape=box,label="NUMBER\n'3'"];
-"-1220059444" -> "-1214252596";
-"-1214252596" [shape=box,label="__1_true\n'true'"];
-"-1220059444" -> "-1220062260";
-"-1220062260" [label="object"];
-"-1220062260" -> "-1220060116";
-"-1220060116" [label="entry"];
-"-1220060116" -> "-1214211860";
-"-1214211860" [shape=box,label="STRING\n'f'"];
-"-1220060116" -> "-1214210132";
-"-1214210132" [shape=box,label="STRING\n'g'"];
-"-1220062260" -> "-1220062868";
-"-1220062868" [label="entry"];
-"-1220062868" -> "-1214211956";
-"-1214211956" [shape=box,label="STRING\n'h'"];
-"-1220062868" -> "-1214212308";
-"-1214212308" [shape=box,label="NUMBER\n'6'"];
-}

diff --git a/pypy/doc/rlib.rst b/pypy/doc/rlib.rst
--- a/pypy/doc/rlib.rst
+++ b/pypy/doc/rlib.rst
@@ -323,7 +323,35 @@
 produces a syntax tree that follows the precedence of the operators. For example
 the expression ``12 + 4 * 5`` is parsed into the following tree:
 
-.. graphviz:: image/parsing_example1.dot
+.. graphviz::
+
+    digraph G{
+    "-1213931828" [label="additive"];
+    "-1213931828" -> "-1213951956";
+    "-1213951956" [label="multitive"];
+    "-1213951956" -> "-1213949172";
+    "-1213949172" [label="primary"];
+    "-1213949172" -> "-1213949812";
+    "-1213949812" [shape=box,label="DECIMAL\l'12'"];
+    "-1213931828" -> "-1213935220";
+    "-1213935220" [shape=box,label="__0_+\l'+'"];
+    "-1213931828" -> "-1213951316";
+    "-1213951316" [label="additive"];
+    "-1213951316" -> "-1213948180";
+    "-1213948180" [label="multitive"];
+    "-1213948180" -> "-1213951380";
+    "-1213951380" [label="primary"];
+    "-1213951380" -> "-1213951508";
+    "-1213951508" [shape=box,label="DECIMAL\l'4'"];
+    "-1213948180" -> "-1213948788";
+    "-1213948788" [shape=box,label="__1_*\l'*'"];
+    "-1213948180" -> "-1213951060";
+    "-1213951060" [label="multitive"];
+    "-1213951060" -> "-1213948980";
+    "-1213948980" [label="primary"];
+    "-1213948980" -> "-1213950420";
+    "-1213950420" [shape=box,label="DECIMAL\l'5'"];
+    }
 
 Parse Trees
 -----------
@@ -380,11 +408,43 @@
 
 Parsing the string "A, A, A" gives the tree:
 
-.. graphviz:: image/parsing_example2.dot
+.. graphviz::
+
+    digraph G{
+    "-1213678004" [label="n"];
+    "-1213678004" -> "-1213681108";
+    "-1213681108" [shape=box,label="__0_A\n'A'"];
+    "-1213678004" -> "-1213681332";
+    "-1213681332" [shape=box,label="__1_,\n','"];
+    "-1213678004" -> "-1213837780";
+    "-1213837780" [label="n"];
+    "-1213837780" -> "-1213837716";
+    "-1213837716" [shape=box,label="__0_A\n'A'"];
+    "-1213837780" -> "-1213839476";
+    "-1213839476" [shape=box,label="__1_,\n','"];
+    "-1213837780" -> "-1213839956";
+    "-1213839956" [label="n"];
+    "-1213839956" -> "-1213840948";
+    "-1213840948" [shape=box,label="__0_A\n'A'"];
+    }
 
 After transformation the tree has the "," nodes removed:
 
-.. graphviz:: image/parsing_example3.dot
+.. graphviz::
+
+    digraph G{
+    "-1219325716" [label="n"];
+    "-1219325716" -> "-1219325844";
+    "-1219325844" [shape=box,label="__0_A\n'A'"];
+    "-1219325716" -> "-1219324372";
+    "-1219324372" [label="n"];
+    "-1219324372" -> "-1219325524";
+    "-1219325524" [shape=box,label="__0_A\n'A'"];
+    "-1219324372" -> "-1219324308";
+    "-1219324308" [label="n"];
+    "-1219324308" -> "-1219325492";
+    "-1219325492" [shape=box,label="__0_A\n'A'"];
+    }
 
 <symbol>
 ++++++++
@@ -401,12 +461,61 @@
 
 Parsing the string "a b c (a b c d)" gives the tree:
 
-.. graphviz:: image/parsing_example4.dot
+.. graphviz::
+
+    digraph G{
+    "-1214029460" [label="n"];
+    "-1214029460" -> "-1214026452";
+    "-1214026452" [shape=box,label="__0_a\n'a'"];
+    "-1214029460" -> "-1214028276";
+    "-1214028276" [shape=box,label="__1_b\n'b'"];
+    "-1214029460" -> "-1214027316";
+    "-1214027316" [shape=box,label="__2_c\n'c'"];
+    "-1214029460" -> "-1214026868";
+    "-1214026868" [label="m"];
+    "-1214026868" -> "-1214140436";
+    "-1214140436" [shape=box,label="__3_(\n'('"];
+    "-1214026868" -> "-1214143508";
+    "-1214143508" [label="n"];
+    "-1214143508" -> "-1214141364";
+    "-1214141364" [shape=box,label="__0_a\n'a'"];
+    "-1214143508" -> "-1214141748";
+    "-1214141748" [shape=box,label="__1_b\n'b'"];
+    "-1214143508" -> "-1214140756";
+    "-1214140756" [shape=box,label="__2_c\n'c'"];
+    "-1214143508" -> "-1214144468";
+    "-1214144468" [label="m"];
+    "-1214144468" -> "-1214414868";
+    "-1214414868" [shape=box,label="__5_d\n'd'"];
+    "-1214026868" -> "-1214141492";
+    "-1214141492" [shape=box,label="__4_)\n')'"];
+    }
 
 After transformation the tree looks like this:
 
-.. graphviz:: image/parsing_example5.dot
+.. graphviz::
 
+    digraph G{
+    "-1219949908" [label="n"];
+    "-1219949908" -> "-1214026452";
+    "-1214026452" [shape=box,label="__0_a\n'a'"];
+    "-1219949908" -> "-1214028276";
+    "-1214028276" [shape=box,label="__1_b\n'b'"];
+    "-1219949908" -> "-1214027316";
+    "-1214027316" [shape=box,label="__2_c\n'c'"];
+    "-1219949908" -> "-1219949876";
+    "-1219949876" [label="n"];
+    "-1219949876" -> "-1214141364";
+    "-1214141364" [shape=box,label="__0_a\n'a'"];
+    "-1219949876" -> "-1214141748";
+    "-1214141748" [shape=box,label="__1_b\n'b'"];
+    "-1219949876" -> "-1214140756";
+    "-1214140756" [shape=box,label="__2_c\n'c'"];
+    "-1219949876" -> "-1219949748";
+    "-1219949748" [label="m"];
+    "-1219949748" -> "-1214414868";
+    "-1214414868" [shape=box,label="__5_d\n'd'"];
+    }
 
 >nonterminal_1 nonterminal_2 ... nonterminal_n<
 +++++++++++++++++++++++++++++++++++++++++++++++
@@ -421,23 +530,76 @@
 
 Parsing the string "1 2" gives the tree:
 
-.. graphviz:: image/parsing_example6.dot
-    
+.. graphviz::
+
+    digraph G{
+    "-1213518708" [label="list"];
+    "-1213518708" -> "-1213518196";
+    "-1213518196" [shape=box,label="DECIMAL\n'1'"];
+    "-1213518708" -> "-1213518260";
+    "-1213518260" [label="list"];
+    "-1213518260" -> "-1213520308";
+    "-1213520308" [shape=box,label="DECIMAL\n'2'"];
+    }
+
 after the transformation the tree looks like:
 
-.. graphviz:: image/parsing_example7.dot
+.. graphviz::
+
+    digraph G{
+    "-1219505652" [label="list"];
+    "-1219505652" -> "-1213518196";
+    "-1213518196" [shape=box,label="DECIMAL\n'1'"];
+    "-1219505652" -> "-1213520308";
+    "-1213520308" [shape=box,label="DECIMAL\n'2'"];
+    }
 
 Note that the transformation works recursively. That means that the following
 also works: if the string "1 2 3 4 5" is parsed the tree at first looks like
 this:
 
-.. graphviz:: image/parsing_example8.dot
+.. graphviz::
+
+    digraph G{
+    "-1213611892" [label="list"];
+    "-1213611892" -> "-1213608980";
+    "-1213608980" [shape=box,label="DECIMAL\n'1'"];
+    "-1213611892" -> "-1213623476";
+    "-1213623476" [label="list"];
+    "-1213623476" -> "-1213623380";
+    "-1213623380" [shape=box,label="DECIMAL\n'2'"];
+    "-1213623476" -> "-1213442868";
+    "-1213442868" [label="list"];
+    "-1213442868" -> "-1213441652";
+    "-1213441652" [shape=box,label="DECIMAL\n'3'"];
+    "-1213442868" -> "-1213441332";
+    "-1213441332" [label="list"];
+    "-1213441332" -> "-1213441620";
+    "-1213441620" [shape=box,label="DECIMAL\n'4'"];
+    "-1213441332" -> "-1213443060";
+    "-1213443060" [label="list"];
+    "-1213443060" -> "-1213442100";
+    "-1213442100" [shape=box,label="DECIMAL\n'5'"];
+    }
 
 But after transformation the whole thing collapses to one node with a lot of
 children:
 
-.. graphviz:: image/parsing_example9.dot
+.. graphviz::
 
+    digraph G{
+    "-1219430228" [label="list"];
+    "-1219430228" -> "-1213608980";
+    "-1213608980" [shape=box,label="DECIMAL\n'1'"];
+    "-1219430228" -> "-1213623380";
+    "-1213623380" [shape=box,label="DECIMAL\n'2'"];
+    "-1219430228" -> "-1213441652";
+    "-1213441652" [shape=box,label="DECIMAL\n'3'"];
+    "-1219430228" -> "-1213441620";
+    "-1213441620" [shape=box,label="DECIMAL\n'4'"];
+    "-1219430228" -> "-1213442100";
+    "-1213442100" [shape=box,label="DECIMAL\n'5'"];
+    }
 
 Extensions to the EBNF grammar format
 -------------------------------------
@@ -506,8 +668,45 @@
 
 looks like this:
 
-.. graphviz:: image/parsing_example10.dot
+.. graphviz::
 
+    digraph G{
+    "-1220061652" [label="object"];
+    "-1220061652" -> "-1220127636";
+    "-1220127636" [label="entry"];
+    "-1220127636" -> "-1213915636";
+    "-1213915636" [shape=box,label="STRING\n'a'"];
+    "-1220127636" -> "-1214251156";
+    "-1214251156" [shape=box,label="STRING\n'5'"];
+    "-1220061652" -> "-1220063188";
+    "-1220063188" [label="entry"];
+    "-1220063188" -> "-1214253076";
+    "-1214253076" [shape=box,label="STRING\n'b'"];
+    "-1220063188" -> "-1220059444";
+    "-1220059444" [label="array"];
+    "-1220059444" -> "-1214253364";
+    "-1214253364" [shape=box,label="NUMBER\n'1'"];
+    "-1220059444" -> "-1214254292";
+    "-1214254292" [shape=box,label="__0_null\n'null'"];
+    "-1220059444" -> "-1214253268";
+    "-1214253268" [shape=box,label="NUMBER\n'3'"];
+    "-1220059444" -> "-1214252596";
+    "-1214252596" [shape=box,label="__1_true\n'true'"];
+    "-1220059444" -> "-1220062260";
+    "-1220062260" [label="object"];
+    "-1220062260" -> "-1220060116";
+    "-1220060116" [label="entry"];
+    "-1220060116" -> "-1214211860";
+    "-1214211860" [shape=box,label="STRING\n'f'"];
+    "-1220060116" -> "-1214210132";
+    "-1214210132" [shape=box,label="STRING\n'g'"];
+    "-1220062260" -> "-1220062868";
+    "-1220062868" [label="entry"];
+    "-1220062868" -> "-1214211956";
+    "-1214211956" [shape=box,label="STRING\n'h'"];
+    "-1220062868" -> "-1214212308";
+    "-1214212308" [shape=box,label="NUMBER\n'6'"];
+    }
 
 
 .. _`Prolog interpreter`: https://bitbucket.org/cfbolz/pyrolog/

diff --git a/pypy/doc/image/parsing_example6.dot b/pypy/doc/image/parsing_example6.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example6.dot
+++ /dev/null
@@ -1,9 +0,0 @@
-digraph G{
-"-1213518708" [label="list"];
-"-1213518708" -> "-1213518196";
-"-1213518196" [shape=box,label="DECIMAL\n'1'"];
-"-1213518708" -> "-1213518260";
-"-1213518260" [label="list"];
-"-1213518260" -> "-1213520308";
-"-1213520308" [shape=box,label="DECIMAL\n'2'"];
-}
\ No newline at end of file

diff --git a/pypy/doc/image/parsing_example4.dot b/pypy/doc/image/parsing_example4.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example4.dot
+++ /dev/null
@@ -1,27 +0,0 @@
-digraph G{
-"-1214029460" [label="n"];
-"-1214029460" -> "-1214026452";
-"-1214026452" [shape=box,label="__0_a\n'a'"];
-"-1214029460" -> "-1214028276";
-"-1214028276" [shape=box,label="__1_b\n'b'"];
-"-1214029460" -> "-1214027316";
-"-1214027316" [shape=box,label="__2_c\n'c'"];
-"-1214029460" -> "-1214026868";
-"-1214026868" [label="m"];
-"-1214026868" -> "-1214140436";
-"-1214140436" [shape=box,label="__3_(\n'('"];
-"-1214026868" -> "-1214143508";
-"-1214143508" [label="n"];
-"-1214143508" -> "-1214141364";
-"-1214141364" [shape=box,label="__0_a\n'a'"];
-"-1214143508" -> "-1214141748";
-"-1214141748" [shape=box,label="__1_b\n'b'"];
-"-1214143508" -> "-1214140756";
-"-1214140756" [shape=box,label="__2_c\n'c'"];
-"-1214143508" -> "-1214144468";
-"-1214144468" [label="m"];
-"-1214144468" -> "-1214414868";
-"-1214414868" [shape=box,label="__5_d\n'd'"];
-"-1214026868" -> "-1214141492";
-"-1214141492" [shape=box,label="__4_)\n')'"];
-}
\ No newline at end of file

diff --git a/pypy/doc/image/parsing_example7.dot b/pypy/doc/image/parsing_example7.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example7.dot
+++ /dev/null
@@ -1,7 +0,0 @@
-digraph G{
-"-1219505652" [label="list"];
-"-1219505652" -> "-1213518196";
-"-1213518196" [shape=box,label="DECIMAL\n'1'"];
-"-1219505652" -> "-1213520308";
-"-1213520308" [shape=box,label="DECIMAL\n'2'"];
-}
\ No newline at end of file

diff --git a/pypy/doc/image/parsing_example2.dot b/pypy/doc/image/parsing_example2.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example2.dot
+++ /dev/null
@@ -1,17 +0,0 @@
-digraph G{
-"-1213678004" [label="n"];
-"-1213678004" -> "-1213681108";
-"-1213681108" [shape=box,label="__0_A\n'A'"];
-"-1213678004" -> "-1213681332";
-"-1213681332" [shape=box,label="__1_,\n','"];
-"-1213678004" -> "-1213837780";
-"-1213837780" [label="n"];
-"-1213837780" -> "-1213837716";
-"-1213837716" [shape=box,label="__0_A\n'A'"];
-"-1213837780" -> "-1213839476";
-"-1213839476" [shape=box,label="__1_,\n','"];
-"-1213837780" -> "-1213839956";
-"-1213839956" [label="n"];
-"-1213839956" -> "-1213840948";
-"-1213840948" [shape=box,label="__0_A\n'A'"];
-}

diff --git a/pypy/tool/rest/convert.py b/pypy/tool/rest/convert.py
deleted file mode 100644
--- a/pypy/tool/rest/convert.py
+++ /dev/null
@@ -1,163 +0,0 @@
-import py
-
-ExecutionFailed = py.process.cmdexec.Error
-# utility functions to convert between various formats
-
-format_to_dotargument = {"png": "png",
-                         "eps": "ps",
-                         "ps":  "ps",
-                         "pdf": "ps",
-                        }
-
-def ps2eps(ps):
-    # XXX write a pure python version
-    if not py.path.local.sysfind("ps2epsi") and \
-           not py.path.local.sysfind("ps2eps"):
-        raise SystemExit("neither ps2eps nor ps2epsi found")
-    try:
-        eps = ps.new(ext=".eps")
-        py.process.cmdexec('ps2epsi "%s" "%s"' % (ps, eps))
-    except ExecutionFailed:
-        py.process.cmdexec('ps2eps -l -f "%s"' % ps)
-
-def ps2pdf(ps, compat_level="1.2"):
-    if not py.path.local.sysfind("gs"):
-        raise SystemExit("ERROR: gs not found")
-    pdf = ps.new(ext=".pdf")
-    options = dict(OPTIONS="-dSAFER -dCompatibilityLevel=%s" % compat_level,
-                   infile=ps, outfile=pdf)
-    cmd = ('gs %(OPTIONS)s -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite '
-           '"-sOutputFile=%(outfile)s" %(OPTIONS)s -c .setpdfwrite '
-           '-f "%(infile)s"') % options
-    py.process.cmdexec(cmd)
-    return pdf
-
-def eps2pdf(eps):
-    # XXX write a pure python version
-    if not py.path.local.sysfind("epstopdf"):
-        raise SystemExit("ERROR: epstopdf not found")
-    py.process.cmdexec('epstopdf "%s"' % eps)
-
-def dvi2eps(dvi, dest=None):
-    if dest is None:
-        dest = eps.new(ext=".eps")
-    command = 'dvips -q -E -n 1 -D 600 -p 1 -o "%s" "%s"' % (dest, dvi)
-    if not py.path.local.sysfind("dvips"):
-        raise SystemExit("ERROR: dvips not found")
-    py.process.cmdexec(command)
-
-def convert_dot(fn, new_extension):
-    if not py.path.local.sysfind("dot"):
-        raise SystemExit("ERROR: dot not found")
-    result = fn.new(ext=new_extension)
-    print result
-    arg = "-T%s" % (format_to_dotargument[new_extension], )
-    py.std.os.system('dot "%s" "%s" > "%s"' % (arg, fn, result))
-    if new_extension == "eps":
-        ps = result.new(ext="ps")
-        result.move(ps)
-        ps2eps(ps)
-        ps.remove()
-    elif new_extension == "pdf":
-        # convert to eps file first, to get the bounding box right
-        eps = result.new(ext="eps")
-        ps = result.new(ext="ps")
-        result.move(ps)
-        ps2eps(ps)
-        eps2pdf(eps)
-        ps.remove()
-        eps.remove()
-    return result
- 
-
-class latexformula2png(object):
-    def __init__(self, formula, dest, temp=None):
-        self.formula = formula
-        try:
-            import Image
-            self.Image = Image
-            self.scale = 2 # create a larger image
-            self.upscale = 5 # create the image upscale times larger, then scale it down
-        except ImportError:
-            self.scale = 2
-            self.upscale = 1
-            self.Image = None
-        self.output_format = ('pngmono', 'pnggray', 'pngalpha')[2]
-        if temp is None:
-            temp = py.test.ensuretemp("latexformula")
-        self.temp = temp
-        self.latex = self.temp.join('formula.tex')
-        self.dvi = self.temp.join('formula.dvi')
-        self.eps = self.temp.join('formula.eps')
-        self.png = self.temp.join('formula.png')
-        self.saveas(dest)
-
-    def saveas(self, dest):
-        self.gen_latex()
-        self.gen_dvi()
-        dvi2eps(self.dvi, self.eps)
-        self.gen_png()
-        self.scale_image()
-        self.png.copy(dest)
-
-    def gen_latex(self):
-        self.latex.write ("""
-        \\documentclass{article}
-        \\pagestyle{empty}
-        \\begin{document}
-
-        %s
-        \\pagebreak
-        
-        \\end{document}
-        """ % (self.formula))
-
-    def gen_dvi(self):
-        origdir = py.path.local()
-        self.temp.chdir()
-        py.process.cmdexec('latex "%s"' % (self.latex))
-        origdir.chdir()
-
-    def gen_png(self):
-        tempdir = py.path.local.mkdtemp()
-        
-        re_bbox = py.std.re.compile('%%BoundingBox:\s*(\d+) (\d+) (\d+) (\d+)')
-        eps = self.eps.read()
-        x1, y1, x2, y2 = [int(i) for i in re_bbox.search(eps).groups()]
-        X = x2 - x1 + 2
-        Y = y2 - y1 + 2
-        mx = -x1
-        my = -y1
-        ps = self.temp.join('temp.ps')
-        source = self.eps
-        ps.write("""
-        1 1 1 setrgbcolor
-        newpath
-        -1 -1 moveto
-        %(X)d  -1 lineto
-        %(X)d %(Y)d lineto
-        -1 %(Y)d lineto
-        closepath
-        fill
-        %(mx)d %(my)d translate
-        0 0 0 setrgbcolor
-        (%(source)s) run
-        
-        """ % locals())
-
-        sx = int((x2 - x1) * self.scale * self.upscale)
-        sy = int((y2 - y1) * self.scale * self.upscale)
-        res = 72 * self.scale * self.upscale
-        command = ('gs -q -g%dx%d -r%dx%d -sDEVICE=%s -sOutputFile="%s" '
-                   '-dNOPAUSE -dBATCH "%s"') % (
-                    sx, sy, res, res, self.output_format, self.png, ps)
-        py.process.cmdexec(command)
-
-    def scale_image(self):
-        if self.Image is None:
-            return
-        image = self.Image.open(str(self.png))
-        image.resize((image.size[0] / self.upscale,
-                      image.size[1] / self.upscale),
-                     self.Image.ANTIALIAS).save(str(self.png))
-

diff --git a/pypy/doc/image/parsing_example9.dot b/pypy/doc/image/parsing_example9.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example9.dot
+++ /dev/null
@@ -1,13 +0,0 @@
-digraph G{
-"-1219430228" [label="list"];
-"-1219430228" -> "-1213608980";
-"-1213608980" [shape=box,label="DECIMAL\n'1'"];
-"-1219430228" -> "-1213623380";
-"-1213623380" [shape=box,label="DECIMAL\n'2'"];
-"-1219430228" -> "-1213441652";
-"-1213441652" [shape=box,label="DECIMAL\n'3'"];
-"-1219430228" -> "-1213441620";
-"-1213441620" [shape=box,label="DECIMAL\n'4'"];
-"-1219430228" -> "-1213442100";
-"-1213442100" [shape=box,label="DECIMAL\n'5'"];
-}
\ No newline at end of file

diff --git a/pypy/doc/image/parsing_example3.dot b/pypy/doc/image/parsing_example3.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example3.dot
+++ /dev/null
@@ -1,13 +0,0 @@
-digraph G{
-"-1219325716" [label="n"];
-"-1219325716" -> "-1219325844";
-"-1219325844" [shape=box,label="__0_A\n'A'"];
-"-1219325716" -> "-1219324372";
-"-1219324372" [label="n"];
-"-1219324372" -> "-1219325524";
-"-1219325524" [shape=box,label="__0_A\n'A'"];
-"-1219324372" -> "-1219324308";
-"-1219324308" [label="n"];
-"-1219324308" -> "-1219325492";
-"-1219325492" [shape=box,label="__0_A\n'A'"];
-}

diff --git a/pypy/doc/conf.py b/pypy/doc/conf.py
--- a/pypy/doc/conf.py
+++ b/pypy/doc/conf.py
@@ -16,13 +16,13 @@
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.append(os.path.abspath('.'))
+sys.path.append(os.path.abspath('.'))
 
 # -- General configuration -----------------------------------------------------
 
 # Add any Sphinx extension module names here, as strings. They can be extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.ifconfig']
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.ifconfig', 'sphinx.ext.graphviz', 'pypyconfig']
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
@@ -196,3 +196,4 @@
 
 # Example configuration for intersphinx: refer to the Python standard library.
 intersphinx_mapping = {'http://docs.python.org/': None}
+

diff --git a/pypy/doc/image/parsing_example1.dot b/pypy/doc/image/parsing_example1.dot
deleted file mode 100644
--- a/pypy/doc/image/parsing_example1.dot
+++ /dev/null
@@ -1,27 +0,0 @@
-digraph G{
-"-1213931828" [label="additive"];
-"-1213931828" -> "-1213951956";
-"-1213951956" [label="multitive"];
-"-1213951956" -> "-1213949172";
-"-1213949172" [label="primary"];
-"-1213949172" -> "-1213949812";
-"-1213949812" [shape=box,label="DECIMAL\l'12'"];
-"-1213931828" -> "-1213935220";
-"-1213935220" [shape=box,label="__0_+\l'+'"];
-"-1213931828" -> "-1213951316";
-"-1213951316" [label="additive"];
-"-1213951316" -> "-1213948180";
-"-1213948180" [label="multitive"];
-"-1213948180" -> "-1213951380";
-"-1213951380" [label="primary"];
-"-1213951380" -> "-1213951508";
-"-1213951508" [shape=box,label="DECIMAL\l'4'"];
-"-1213948180" -> "-1213948788";
-"-1213948788" [shape=box,label="__1_*\l'*'"];
-"-1213948180" -> "-1213951060";
-"-1213951060" [label="multitive"];
-"-1213951060" -> "-1213948980";
-"-1213948980" [label="primary"];
-"-1213948980" -> "-1213950420";
-"-1213950420" [shape=box,label="DECIMAL\l'5'"];
-}

diff --git a/pypy/doc/config/makemodules.py b/pypy/doc/config/makemodules.py
--- a/pypy/doc/config/makemodules.py
+++ b/pypy/doc/config/makemodules.py
@@ -7,12 +7,12 @@
 if __name__ == '__main__':
     c = config.Config(pypyoption.pypy_optiondescription).usemodules
     prefix = "objspace.usemodules"
-    thisdir.join(prefix + ".txt").ensure()
+    thisdir.join(prefix + ".rst").ensure()
     for p in c.getpaths(include_groups=True):
-        basename = prefix + "." + p + ".txt"
+        basename = prefix + "." + p + ".rst"
         f = thisdir.join(basename)
-        if f.check() and f.size():
-            continue
+        #if f.check() and f.size():
+        #    continue
         print "making docs for", p
         text = ["Use the '%s' module. " % (p, )]
         if p in pypyoption.essential_modules:


More information about the Pypy-commit mailing list