<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/ebe02cae9dab3d68ac6f69c53d3df124b7922b84">https://github.com/macports/macports-ports/commit/ebe02cae9dab3d68ac6f69c53d3df124b7922b84</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new ebe02cae9da py-docutils: add commit r8555 to address various usage issues
</span>ebe02cae9da is described below
<span style='display:block; white-space:pre;color:#808000;'>commit ebe02cae9dab3d68ac6f69c53d3df124b7922b84
</span>Author: Michael Dickens <michaelld@macports.org>
AuthorDate: Thu Nov 11 14:13:26 2021 -0500
<span style='display:block; white-space:pre;color:#404040;'> py-docutils: add commit r8555 to address various usage issues
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/63765
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/63739
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/63727
</span>---
python/py-docutils/Portfile | 4 +
python/py-docutils/files/patch-commit-8885.diff | 448 ++++++++++++++++++++++++
2 files changed, 452 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-docutils/Portfile b/python/py-docutils/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index bf0bd67190f..a04492fdbf8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-docutils/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-docutils/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,6 +6,7 @@ PortGroup select 1.0
</span>
name py-docutils
version 0.18
<span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> categories-append textproc
license public-domain BSD PSF-2.1.1
maintainers {jmr @jmroot} alexnicksay.com:alex openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,6 +36,9 @@ if {$subport ne $name} {
</span> copy -force ${filespath}/docutils ${worksrcpath}/${subport}
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-commit-8885.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch.pre_args -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-patch {
reinplace \
"s,@PYTHON_BRANCH@,${python.branch},g" \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-docutils/files/patch-commit-8885.diff b/python/py-docutils/files/patch-commit-8885.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..ee3cdfb3dfe
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-docutils/files/patch-commit-8885.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,448 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docutils/nodes.py b/docutils/nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 720caef..454ae7d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docutils/nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docutils/nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,39 +212,57 @@ class Node(object):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ visitor.dispatch_departure(self)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return stop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- def _fast_traverse(self, cls):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ def _fast_findall(self, cls):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """Return iterator that only supports instance checks."""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if isinstance(self, cls):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for child in self.children:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for subnode in child._fast_traverse(cls):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for subnode in child._fast_findall(cls):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield subnode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- def _all_traverse(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ def _superfast_findall(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """Return iterator that doesn't check for a condition."""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is different from ``iter(self)`` implemented via
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # __getitem__() and __len__() in the Element subclass,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # which yields only the direct children.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for child in self.children:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for subnode in child._all_traverse():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for subnode in child._superfast_findall():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield subnode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def traverse(self, condition=None, include_self=True, descend=True,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ siblings=False, ascend=False):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ """Return list of nodes following `self`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ For looping, Node.findall() is faster and more memory efficient.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # traverse() may be eventually removed:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warnings.warn('nodes.Node.traverse() is obsoleted by Node.findall().',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PendingDeprecationWarning, stacklevel=2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return list(self.findall(condition, include_self, descend,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ siblings, ascend))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ def findall(self, condition=None, include_self=True, descend=True,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ siblings=False, ascend=False):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Return an iterator yielding
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Return an iterator yielding nodes following `self`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * self (if include_self is true)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * all descendants in tree traversal order (if descend is true)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * all siblings (if siblings is true) and their descendants (if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- also descend is true)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * the siblings of the parent (if ascend is true) and their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- descendants (if also descend is true), and so on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * self (if `include_self` is true)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * all descendants in tree traversal order (if `descend` is true)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * all siblings (if `siblings` is true) and their descendants (if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ also `descend` is true)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the siblings of the parent (if `ascend` is true) and their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ descendants (if also `descend` is true), and so on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If `condition` is not None, the iterator yields only nodes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for which ``condition(node)`` is true. If `condition` is a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node class ``cls``, it is equivalent to a function consisting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ of ``return isinstance(node, cls)``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- If ascend is true, assume siblings to be true as well.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ If `ascend` is true, assume `siblings` to be true as well.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ To allow processing of the return value or modification while
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ iterating, wrap calls to findall() in a ``tuple()`` or ``list()``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ For example, given the following tree::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -256,26 +274,25 @@ class Node(object):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <reference name="Baz" refid="baz">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Baz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Then list(emphasis.traverse()) equals ::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Then tuple(emphasis.traverse()) equals ::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [<emphasis>, <strong>, <#text: Foo>, <#text: Bar>]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (<emphasis>, <strong>, <#text: Foo>, <#text: Bar>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- and list(strong.traverse(ascend=True)) equals ::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ and list(strong.traverse(ascend=True) equals ::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [<strong>, <#text: Foo>, <#text: Bar>, <reference>, <#text: Baz>]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ascend:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ siblings=True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check for special argument combinations that allow using an
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # optimized version of traverse()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if include_self and descend and not siblings:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if condition is None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for subnode in self._all_traverse():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for subnode in self._superfast_findall():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield subnode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elif isinstance(condition, type):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for subnode in self._fast_traverse(condition):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for subnode in self._fast_findall(condition):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield subnode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if `condition` is a class (check for TypeType for Python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -290,7 +307,7 @@ class Node(object):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if descend and len(self.children):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for child in self:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for subnode in child.traverse(condition=condition,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for subnode in child.findall(condition=condition,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_self=True, descend=True,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ siblings=False, ascend=False):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield subnode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -299,7 +316,7 @@ class Node(object):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while node.parent:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ index = node.parent.index(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for sibling in node.parent[index+1:]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for subnode in sibling.traverse(condition=condition,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for subnode in sibling.findall(condition=condition,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_self=True, descend=descend,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ siblings=False, ascend=False):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ yield subnode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -311,16 +328,15 @@ class Node(object):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def next_node(self, condition=None, include_self=False, descend=True,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ siblings=False, ascend=False):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Return the first node in the iterator returned by traverse(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Return the first node in the iterator returned by findall(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ or None if the iterable is empty.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Parameter list is the same as of traverse. Note that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- include_self defaults to False, though.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Parameter list is the same as of traverse. Note that `include_self`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ defaults to False, though.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- node_iterator = self.traverse(condition, include_self,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- descend, siblings, ascend)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return next(node_iterator)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return next(self.findall(condition, include_self,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ descend, siblings, ascend))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ except StopIteration:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -469,6 +485,11 @@ class Element(Node):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ element[0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ to iterate over the child nodes (without descending), use::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for child in element:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Elements may be constructed using the ``+=`` operator. To add one new
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ child node to element, do::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docutils/parsers/recommonmark_wrapper.py b/docutils/parsers/recommonmark_wrapper.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 218642b..73f76de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docutils/parsers/recommonmark_wrapper.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docutils/parsers/recommonmark_wrapper.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -78,7 +78,7 @@ if CommonMarkParser:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ---------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # merge adjoining Text nodes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in document.traverse(nodes.TextElement):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in document.findall(nodes.TextElement):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ children = node.children
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while i+1 < len(children):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,18 +89,18 @@ if CommonMarkParser:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i += 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # add "code" class argument to inline literal (code spans)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in document.traverse(lambda n: isinstance(n,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # add "code" class argument to literal elements (inline and block)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in document.findall(lambda n: isinstance(n,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (nodes.literal, nodes.literal_block))):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node['classes'].append('code')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # move "language" argument to classes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in document.traverse(nodes.literal_block):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in document.findall(nodes.literal_block):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if 'language' in node.attributes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node['classes'].append(node['language'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ del node['language']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # remove empty target nodes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in list(document.traverse(nodes.target)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in list(document.findall(nodes.target)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # remove empty name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node['names'] = [v for v in node['names'] if v]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if node.children or [v for v in node.attributes.values() if v]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -109,12 +109,12 @@ if CommonMarkParser:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # replace raw nodes if raw is not allowed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not document.settings.raw_enabled:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in document.traverse(nodes.raw):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in document.findall(nodes.raw):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ warning = document.reporter.warning('Raw content disabled.')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node.parent.replace(node, warning)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # fix section nodes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in document.traverse(nodes.section):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in document.findall(nodes.section):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # remove spurious IDs (first may be from duplicate name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if len(node['ids']) > 1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node['ids'].pop()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,7 +132,7 @@ if CommonMarkParser:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ del node['level']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # drop pending_xref (Sphinx cross reference extension)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in document.traverse(addnodes.pending_xref):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in document.findall(addnodes.pending_xref):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reference = node.children[0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if 'name' not in reference:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reference['name'] = nodes.fully_normalize_name(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docutils/parsers/rst/states.py b/docutils/parsers/rst/states.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 02482b2..2103261 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docutils/parsers/rst/states.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docutils/parsers/rst/states.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2064,7 +2064,7 @@ class Body(RSTState):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ del substitution_node[i]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i += 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in substitution_node.traverse(nodes.Element):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in substitution_node.findall(nodes.Element):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if self.disallowed_inside_substitution_definitions(node):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pformat = nodes.literal_block('', node.pformat().rstrip())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ msg = self.reporter.error(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docutils/transforms/frontmatter.py b/docutils/transforms/frontmatter.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 28fc20b..b3fc7bd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docutils/transforms/frontmatter.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docutils/transforms/frontmatter.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,10 +281,10 @@ class SectionSubTitle(TitlePromoter):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not self.document.settings.setdefault('sectsubtitle_xform', True):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for section in self.document.traverse(nodes.section):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for section in self.document.findall(nodes.section):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # On our way through the node tree, we are modifying it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # but only the not-yet-visited part, so that the iterator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # returned by traverse() is not corrupted.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # returned by findall() is not corrupted.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.promote_subtitle(section)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -513,7 +513,7 @@ class DocInfo(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # @@ keep original formatting? (e.g. ``:authors: A. Test, *et-al*``)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ text = ''.join(unicode(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in field[1].traverse(nodes.Text))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in field[1].findall(nodes.Text))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not text:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ raise TransformError
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for authorsep in self.language.author_separators:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docutils/transforms/misc.py b/docutils/transforms/misc.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cd68ee1..3e92325 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docutils/transforms/misc.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docutils/transforms/misc.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -94,7 +94,7 @@ class Transitions(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_priority = 830
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in self.document.traverse(nodes.transition):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in self.document.findall(nodes.transition):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.visit_transition(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def visit_transition(self, node):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docutils/transforms/references.py b/docutils/transforms/references.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b0f4bc0..7aafa86 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docutils/transforms/references.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docutils/transforms/references.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -41,7 +41,7 @@ class PropagateTargets(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_priority = 260
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for target in self.document.traverse(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for target in self.document.findall(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only block-level targets without reference (like ".. _target:"):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (isinstance(target.parent, nodes.TextElement) or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (target.hasattr('refid') or target.hasattr('refuri') or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -118,10 +118,10 @@ class AnonymousHyperlinks(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ anonymous_refs = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ anonymous_targets = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in self.document.traverse(nodes.reference):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in self.document.findall(nodes.reference):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if node.get('anonymous'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ anonymous_refs.append(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in self.document.traverse(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in self.document.findall(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if node.get('anonymous'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ anonymous_targets.append(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if len(anonymous_refs) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -354,7 +354,7 @@ class ExternalTargets(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_priority = 640
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for target in self.document.traverse(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for target in self.document.findall(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if target.hasattr('refuri'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ refuri = target['refuri']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for name in target['names']:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -374,7 +374,7 @@ class InternalTargets(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_priority = 660
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for target in self.document.traverse(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for target in self.document.findall(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not target.hasattr('refuri') and not target.hasattr('refid'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.resolve_reference_ids(target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -671,7 +671,7 @@ class Substitutions(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ line_length_limit = getattr(self.document.settings,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "line_length_limit", 10000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- subreflist = list(self.document.traverse(nodes.substitution_reference))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ subreflist = list(self.document.findall(nodes.substitution_reference))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for ref in subreflist:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ msg = ''
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ refname = ref['refname']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -714,7 +714,7 @@ class Substitutions(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subdef_copy = subdef.deepcopy()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Take care of nested substitution references:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for nested_ref in subdef_copy.traverse(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for nested_ref in subdef_copy.findall(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nodes.substitution_reference):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nested_name = normed[nested_ref['refname'].lower()]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if nested_name in nested.setdefault(nested_name, []):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -777,7 +777,7 @@ class TargetNotes(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes = {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nodelist = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for target in self.document.traverse(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for target in self.document.findall(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only external targets.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not target.hasattr('refuri'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -793,7 +793,7 @@ class TargetNotes(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes[target['refuri']] = footnote
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nodelist.append(footnote)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Take care of anonymous references.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for ref in self.document.traverse(nodes.reference):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for ref in self.document.findall(nodes.reference):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not ref.get('anonymous'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ref.hasattr('refuri'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -856,7 +856,7 @@ class DanglingReferences(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.document.walk(visitor)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # *After* resolving all references, check for unreferenced
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # targets:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for target in self.document.traverse(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for target in self.document.findall(nodes.target):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not target.referenced:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if target.get('anonymous'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If we have unreferenced anonymous targets, there
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docutils/transforms/universal.py b/docutils/transforms/universal.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f81a434..976bbbe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docutils/transforms/universal.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docutils/transforms/universal.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -108,7 +108,7 @@ class ExposeInternals(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if self.document.settings.expose_internals:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in self.document.traverse(self.not_Text):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in self.document.findall(self.not_Text):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for att in self.document.settings.expose_internals:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ value = getattr(node, att, None)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if value is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -149,7 +149,7 @@ class FilterMessages(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_priority = 870
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in tuple(self.document.traverse(nodes.system_message)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in tuple(self.document.findall(nodes.system_message)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if node['level'] < self.document.reporter.report_level:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node.parent.remove(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -181,7 +181,7 @@ class StripComments(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if self.document.settings.strip_comments:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in tuple(self.document.traverse(nodes.comment)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in tuple(self.document.findall(nodes.comment)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node.parent.remove(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -200,14 +200,14 @@ class StripClassesAndElements(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.strip_elements = set(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.document.settings.strip_elements_with_classes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Iterate over a tuple as removing the current node
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # corrupts the iterator returned by `traverse`:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in tuple(self.document.traverse(self.check_classes)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # corrupts the iterator returned by `iter`:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in tuple(self.document.findall(self.check_classes)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node.parent.remove(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not self.document.settings.strip_classes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strip_classes = self.document.settings.strip_classes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in self.document.traverse(nodes.Element):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in self.document.findall(nodes.Element):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for class_value in strip_classes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node['classes'].remove(class_value)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -282,7 +282,7 @@ class SmartQuotes(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # "Educate" quotes in normal text. Handle each block of text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # (TextElement node) as a unit to keep context around inline nodes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in self.document.traverse(nodes.TextElement):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in self.document.findall(nodes.TextElement):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # skip preformatted text blocks and special elements:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if isinstance(node, self.nodes_to_skip):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -291,7 +291,7 @@ class SmartQuotes(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # list of text nodes in the "text block":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- txtnodes = [txtnode for txtnode in node.traverse(nodes.Text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ txtnodes = [txtnode for txtnode in node.findall(nodes.Text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not isinstance(txtnode.parent,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nodes.option_string)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docutils/transforms/writer_aux.py b/docutils/transforms/writer_aux.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c5818d9..4489361 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docutils/transforms/writer_aux.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docutils/transforms/writer_aux.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +38,7 @@ class Compound(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_priority = 910
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for compound in self.document.traverse(nodes.compound):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for compound in self.document.findall(nodes.compound):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ first_child = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for child in compound:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if first_child:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,7 @@ class Admonitions(Transform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def apply(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ language = languages.get_language(self.document.settings.language_code,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.document.reporter)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for node in self.document.traverse(nodes.Admonition):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for node in self.document.findall(nodes.Admonition):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node_name = node.__class__.__name__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Set class, so that we know what node this admonition came from.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ node['classes'].append(node_name)
</span></pre><pre style='margin:0'>
</pre>