<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e644b44aa6599a32d4f9c00bcd8a538e4a3bcdf6">https://github.com/macports/macports-ports/commit/e644b44aa6599a32d4f9c00bcd8a538e4a3bcdf6</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 e644b44aa65 py-docutils: update to 0.18.1
</span>e644b44aa65 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e644b44aa6599a32d4f9c00bcd8a538e4a3bcdf6
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sat Nov 27 10:08:15 2021 +1100

<span style='display:block; white-space:pre;color:#404040;'>    py-docutils: update to 0.18.1
</span>---
 python/py-docutils/Portfile                     |  13 +-
 python/py-docutils/files/patch-commit-8885.diff | 448 ------------------------
 2 files changed, 4 insertions(+), 457 deletions(-)

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

</pre>