summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgoodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2004-01-23 02:35:13 +0000
committergoodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2004-01-23 02:35:13 +0000
commit01d56f433064b9af6de868d0acdc3beaae3fa0bb (patch)
tree1554312271166afa24a5c3bfbd78117243747e09
parent569583e4dadbfbe9eaafb7d64b6096ecfa37d472 (diff)
downloaddocutils-01d56f433064b9af6de868d0acdc3beaae3fa0bb.tar.gz
Added FilterMessages transform (removes system messages below the verbosity threshold)
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@1811 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
-rw-r--r--docutils/HISTORY.txt5
-rw-r--r--docutils/docs/ref/transforms.txt4
-rw-r--r--docutils/docutils/transforms/__init__.py3
-rw-r--r--docutils/docutils/transforms/universal.py23
4 files changed, 33 insertions, 2 deletions
diff --git a/docutils/HISTORY.txt b/docutils/HISTORY.txt
index bf35db11d..7fd37c1bc 100644
--- a/docutils/HISTORY.txt
+++ b/docutils/HISTORY.txt
@@ -186,6 +186,11 @@ Changes Since 0.3
* docutils/parsers/rst/languages/ru.py: Added to project; Russian
mappings by Roman Suzi.
+* docutils/transforms/universal.py:
+
+ - Added FilterMessages transform (removes system messages below the
+ verbosity threshold).
+
* docutils/writers/html4css1.py:
- Fixed unicode handling of attribute values (bug 760673).
diff --git a/docutils/docs/ref/transforms.txt b/docutils/docs/ref/transforms.txt
index 4c5fe135a..fa866487c 100644
--- a/docutils/docs/ref/transforms.txt
+++ b/docutils/docs/ref/transforms.txt
@@ -71,7 +71,9 @@ universal.FinalChecks Transformer 840
universal.Messages Transformer 860
-universal.TestMessages DocutilsTestSupport 890
+universal.FilterMessages Transformer 870
+
+universal.TestMessages DocutilsTestSupport 880
misc.CallBack n/a 990
============================== ============================ ========
diff --git a/docutils/docutils/transforms/__init__.py b/docutils/docutils/transforms/__init__.py
index 24cc4771f..aa3e1b525 100644
--- a/docutils/docutils/transforms/__init__.py
+++ b/docutils/docutils/transforms/__init__.py
@@ -76,7 +76,8 @@ class Transformer(TransformSpec):
default_transforms = (universal.Decorations,
universal.FinalChecks,
- universal.Messages)
+ universal.Messages,
+ universal.FilterMessages)
"""These transforms are applied to all document trees."""
def __init__(self, document):
diff --git a/docutils/docutils/transforms/universal.py b/docutils/docutils/transforms/universal.py
index 4523304f2..e7d1f150c 100644
--- a/docutils/docutils/transforms/universal.py
+++ b/docutils/docutils/transforms/universal.py
@@ -111,6 +111,29 @@ class Messages(Transform):
self.document += section
+class FilterMessages(Transform):
+
+ """
+ Remove system messages below verbosity threshold.
+ """
+
+ default_priority = 870
+
+ def apply(self):
+ visitor = SystemMessageFilterVisitor(self.document)
+ self.document.walk(visitor)
+
+
+class SystemMessageFilterVisitor(nodes.SparseNodeVisitor):
+
+ def unknown_visit(self, node):
+ pass
+
+ def visit_system_message(self, node):
+ if node['level'] < self.document.reporter['writer'].report_level:
+ node.parent.remove(node)
+
+
class TestMessages(Transform):
"""