# HG changeset patch # User Paul Boddie # Date 1493311411 -7200 # Node ID 23b993064a50bfbfeee3ea94e3d2ea3fd050e50d # Parent 0c696e4a7ca349bc961c4999b2a510a1811a447a Added document node prettyprinting. diff -r 0c696e4a7ca3 -r 23b993064a50 moinformat.py --- a/moinformat.py Thu Apr 27 18:13:53 2017 +0200 +++ b/moinformat.py Thu Apr 27 18:43:31 2017 +0200 @@ -84,6 +84,12 @@ if text: self.append(text) + def __str__(self): + return self.prettyprint() + + def prettyprint(self, indent=""): + pass + class Region(Container): "A region of the page." @@ -107,6 +113,12 @@ def __repr__(self): return "Region(%r, %r, %r)" % (self.nodes, self.level, self.type) + def prettyprint(self, indent=""): + l = ["%sRegion: level=%d type=%s" % (indent, self.level, self.type)] + for node in self.nodes: + l.append(node.prettyprint(indent + " ")) + return "\n".join(l) + def to_string(self, out): out.start_region(self.level, self.type) for node in self.nodes: @@ -124,6 +136,12 @@ def __repr__(self): return "Block(%r)" % self.nodes + def prettyprint(self, indent=""): + l = ["%sBlock: final=%s" % (indent, self.final)] + for node in self.nodes: + l.append(node.prettyprint(indent + " ")) + return "\n".join(l) + def to_string(self, out): out.start_block(self.final) for node in self.nodes: @@ -143,6 +161,9 @@ def __repr__(self): return "Text(%r)" % self.s + def prettyprint(self, indent=""): + return "%sText: %r" % (indent, self.s) + def to_string(self, out): out.text(self.s) diff -r 0c696e4a7ca3 -r 23b993064a50 tests/test_parser.py --- a/tests/test_parser.py Thu Apr 27 18:13:53 2017 +0200 +++ b/tests/test_parser.py Thu Apr 27 18:43:31 2017 +0200 @@ -61,4 +61,10 @@ print serialise(d, HTMLSerialiser) print "----" +for d in [d0, d1, d2, d3]: + print + print "----" + print d.prettyprint() + print "----" + # vim: tabstop=4 expandtab shiftwidth=4