summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2005-07-05 23:14:55 +0000
committerwiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2005-07-05 23:14:55 +0000
commit05a0b43d298b49d218494a6c2d4f4e1f5d2ef161 (patch)
tree381045a71192c1719be92dd4841bad64f9ef04c0
parentfb09c558d5c36a437a3bc9ca568149f6e25e9ef9 (diff)
downloaddocutils-05a0b43d298b49d218494a6c2d4f4e1f5d2ef161.tar.gz
moved expose_internals logic out of FinalChecks into a
separate transform, universal.ExposeInternals git-svn-id: https://svn.code.sf.net/p/docutils/code/trunk/docutils@3658 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
-rw-r--r--docs/ref/transforms.txt4
-rw-r--r--docutils/transforms/__init__.py1
-rw-r--r--docutils/transforms/misc.py43
-rw-r--r--docutils/transforms/universal.py25
-rwxr-xr-xtest/test_transforms/test_expose_internals.py41
-rwxr-xr-xtest/test_transforms/test_transitions.py2
6 files changed, 86 insertions, 30 deletions
diff --git a/docs/ref/transforms.txt b/docs/ref/transforms.txt
index 28b9c002f..9468619fd 100644
--- a/docs/ref/transforms.txt
+++ b/docs/ref/transforms.txt
@@ -73,7 +73,9 @@ universal.Decorations Transformer 820
misc.Transitions standalone (r) 830
-universal.FinalChecks Transformer 840
+universal.ExposeInternals Transformer 840
+
+universal.FinalChecks Transformer 850
universal.Messages Transformer 860
diff --git a/docutils/transforms/__init__.py b/docutils/transforms/__init__.py
index 6039e1a63..25c690f66 100644
--- a/docutils/transforms/__init__.py
+++ b/docutils/transforms/__init__.py
@@ -75,6 +75,7 @@ class Transformer(TransformSpec):
from docutils.transforms import universal
default_transforms = (universal.Decorations,
+ universal.ExposeInternals,
universal.FinalChecks,
universal.Messages,
universal.FilterMessages)
diff --git a/docutils/transforms/misc.py b/docutils/transforms/misc.py
index eb50a1124..fd8ba6b25 100644
--- a/docutils/transforms/misc.py
+++ b/docutils/transforms/misc.py
@@ -71,6 +71,28 @@ class ClassAttribute(Transform):
class Transitions(Transform):
+ """
+ Move transitions at the end of sections up the tree. Complain
+ on transitions after a title, at the beginning or end of the
+ document, and after another transition.
+
+ For example, transform this::
+
+ <section>
+ ...
+ <transition>
+ <section>
+ ...
+
+ into this::
+
+ <section>
+ ...
+ <transition>
+ <section>
+ ...
+ """
+
default_priority = 830
def apply(self):
@@ -78,27 +100,6 @@ class Transitions(Transform):
self.visit_transition(node)
def visit_transition(self, node):
- """
- Move transitions at the end of sections up the tree. Complain
- on transitions after a title, at the beginning or end of the
- document, and after another transition.
-
- For example, transform this::
-
- <section>
- ...
- <transition>
- <section>
- ...
-
- into this::
-
- <section>
- ...
- <transition>
- <section>
- ...
- """
index = node.parent.index(node)
error = None
if (index == 0 or
diff --git a/docutils/transforms/universal.py b/docutils/transforms/universal.py
index 53ddde878..1918016fc 100644
--- a/docutils/transforms/universal.py
+++ b/docutils/transforms/universal.py
@@ -143,6 +143,23 @@ class TestMessages(Transform):
self.document += msg
+class ExposeInternals(Transform):
+
+ """
+ Expose internal attributes if ``expose_internals`` setting is set.
+ """
+
+ default_priority = 840
+
+ def apply(self):
+ if self.document.settings.expose_internals:
+ for node in self.document.traverse():
+ for att in self.document.settings.expose_internals:
+ value = getattr(node, att, None)
+ if value is not None:
+ node['internal:' + att] = value
+
+
class FinalChecks(Transform):
"""
@@ -152,19 +169,13 @@ class FinalChecks(Transform):
- Check for illegal transitions, move transitions.
"""
- default_priority = 840
+ default_priority = 850
def apply(self):
visitor = FinalCheckVisitor(
self.document,
self.document.transformer.unknown_reference_resolvers)
self.document.walk(visitor)
- if self.document.settings.expose_internals:
- for node in self.document.traverse():
- for att in self.document.settings.expose_internals:
- value = getattr(node, att, None)
- if value is not None:
- node['internal:' + att] = value
# *After* resolving all references, check for unreferenced
# targets:
for target in self.document.traverse(nodes.target):
diff --git a/test/test_transforms/test_expose_internals.py b/test/test_transforms/test_expose_internals.py
new file mode 100755
index 000000000..37747a68b
--- /dev/null
+++ b/test/test_transforms/test_expose_internals.py
@@ -0,0 +1,41 @@
+#! /usr/bin/env python
+
+# Author: Felix Wiemann
+# Contact: Felix_Wiemann@ososo.de
+# Revision: $Revision$
+# Date: $Date$
+# Copyright: This module has been placed in the public domain.
+
+"""
+Test module for universal.ExposeInternals transform.
+"""
+
+
+from docutils.transforms.universal import ExposeInternals
+from __init__ import DocutilsTestSupport
+from docutils.parsers.rst import Parser
+
+def suite():
+ parser = Parser()
+ s = DocutilsTestSupport.TransformTestSuite(parser)
+ s.generateTests(totest)
+ return s
+
+
+totest = {}
+
+totest['transitions'] = ((ExposeInternals,), [
+["""\
+This is a test.
+""",
+"""\
+[Test disabled at the moment. How do we activate the expose_internals
+setting for this test suite?]
+""",
+0],
+])
+
+
+if __name__ == '__main__':
+ import unittest
+ unittest.main(defaultTest='suite')
diff --git a/test/test_transforms/test_transitions.py b/test/test_transforms/test_transitions.py
index 9711c4aee..24a69bb52 100755
--- a/test/test_transforms/test_transitions.py
+++ b/test/test_transforms/test_transitions.py
@@ -7,7 +7,7 @@
# Copyright: This module has been placed in the public domain.
"""
-Test module for transforms/__init__.py.
+Test module for misc.Transitions transform.
"""
from docutils.transforms.misc import Transitions