<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/08e7ffa0af66b1019e23e58d5c8e9606456af8d5">https://github.com/macports/macports-ports/commit/08e7ffa0af66b1019e23e58d5c8e9606456af8d5</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 08e7ffa0af66b1019e23e58d5c8e9606456af8d5
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Fri Nov 12 00:24:05 2021 +0100
<span style='display:block; white-space:pre;color:#404040;'> py-sphinx: update to 4.3.0 (py36+), 3.5.4 (py35)
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Also backported support of docutils-0.18 for py35
</span>---
python/py-sphinx/Portfile | 29 +-
...ocutils-0.18.patch => docutils-0.18-v345.patch} | 457 +++++++++++----------
python/py-sphinx/files/py310-sphinx | 4 +
3 files changed, 254 insertions(+), 236 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-sphinx/Portfile b/python/py-sphinx/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 1c2e8980645..08a309f10d0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-sphinx/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-sphinx/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,8 +5,8 @@ PortGroup python 1.0
</span> PortGroup select 1.0
name py-sphinx
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 4.2.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 4.3.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span> categories-append textproc devel
license BSD
maintainers {jmr @jmroot} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,11 +24,12 @@ supported_archs noarch
</span> homepage https://www.sphinx-doc.org/
python.rootname Sphinx
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums md5 6af34550e36dd6d58a496e47ec67280f \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rmd160 e8b1ad48affa2bfbd0499cc8ea1c894d2de428c9 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 94078db9184491e15bce0a56d9186e0aec95f16ac20b12d00e06d4e36f1058a6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums md5 bf115873619a996897415c3b499787db \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 f66f80b9d1bf7d16055b62c7d7871341eec7314c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 6d051ab6e0d06cba786c4656b0fe67ba259fe058410f49e95bee6e49c4052cbf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 6657624
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions 27 35 36 37 38 39
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 27 35 36 37 38 39 310
</span>
if {$subport ne $name} {
depends_lib port:py${python.version}-docutils \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -43,15 +44,19 @@ if {$subport ne $name} {
</span> port:py${python.version}-snowballstemmer \
port:sphinx_select
if {${python.version} > 35} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append setup.py.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- docutils-0.18.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append setup.py.patch
</span> }
if {${python.version} == 35} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- version 3.5.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version 3.5.4
</span> revision 0
<span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums md5 87f26fa3d3cf3ab8c05d1c2c62a0229e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rmd160 bc2b9ba340f2af963bc0b7acfae002cd32bfbd80 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 672cfcc24b6b69235c97c750cb190a44ecd72696b4452acaf75c2d9cc78ca5ff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums md5 dd46088ebc01f6f721ee7618df680d68 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 70102258335337eff3cc16526e84e9a95c625018 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 5911093
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch.pre_args -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Source of patch: https://github.com/catap/sphinx/tree/docutils-1.8-v354
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append docutils-0.18-v345.patch
</span> }
if {${python.version} == 27} {
version 1.8.5
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-sphinx/files/docutils-0.18.patch b/python/py-sphinx/files/docutils-0.18-v345.patch
</span>similarity index 66%
rename from python/py-sphinx/files/docutils-0.18.patch
rename to python/py-sphinx/files/docutils-0.18-v345.patch
<span style='display:block; white-space:pre;color:#808080;'>index 54aabf2f2aa..fdf75acf27a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-sphinx/files/docutils-0.18.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-sphinx/files/docutils-0.18-v345.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,28 +1,33 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 335f95afdee2dfb03e85b466a4eff66c236b384b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5c39bece6da259752396f3881a5bb17694c0f7f4 Mon Sep 17 00:00:00 2001
</span> From: Takeshi KOMIYA <i.tkomiya@gmail.com>
Date: Sun, 3 Oct 2021 18:32:39 +0900
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Support docutils-0.18; Meta directive and meta node has moved
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1/6] Support docutils-0.18; Meta directive and meta node has
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ moved
</span>
---
<span style='display:block; white-space:pre;background:#ffe0e0;'>- sphinx/addnodes.py | 6 +++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sphinx/addnodes.py | 8 ++++++--
</span> sphinx/directives/patches.py | 19 ++++++++++++++-----
tests/test_versioning.py | 9 +++++++--
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 3 files changed, 26 insertions(+), 8 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 27 insertions(+), 9 deletions(-)
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/addnodes.py sphinx/addnodes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8a020b02ef..b43aa81529 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/addnodes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/addnodes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,6 +13,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from docutils import nodes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from docutils.nodes import Element
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5f371e46b..048001990 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/addnodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/addnodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,9 +16,11 @@ from docutils.nodes import Element, Node
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from sphinx.deprecation import RemovedInSphinx40Warning
</span>
+from sphinx.util import docutils
+
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if TYPE_CHECKING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if False:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # For type annotation
</span> from sphinx.application import Sphinx
<span style='display:block; white-space:pre;background:#e0ffe0;'>++ # For type annotation
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -563,7 +565,6 @@ def setup(app: "Sphinx") -> Dict[str, Any]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class document(nodes.document):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -412,7 +414,6 @@ def setup(app: "Sphinx") -> Dict[str, Any]:
</span> app.add_node(start_of_file)
app.add_node(highlightlang)
app.add_node(tabular_col_spec)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -30,7 +35,7 @@ index 8a020b02ef..b43aa81529 100644
</span> app.add_node(pending_xref)
app.add_node(number_reference)
app.add_node(download_reference)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -571,6 +572,9 @@ def setup(app: "Sphinx") -> Dict[str, Any]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -420,6 +421,9 @@ def setup(app: "Sphinx") -> Dict[str, Any]:
</span> app.add_node(literal_strong)
app.add_node(manpage)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -40,11 +45,11 @@ index 8a020b02ef..b43aa81529 100644
</span> return {
'version': 'builtin',
'parallel_read_safe': True,
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/directives/patches.py sphinx/directives/patches.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9a3034daea..a7b77c750b 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/directives/patches.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/directives/patches.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14,7 +14,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/directives/patches.py b/sphinx/directives/patches.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1eae6d0c8..4ad5ce8fd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/directives/patches.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/directives/patches.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,7 +11,7 @@ from typing import Any, Dict, List, Tuple, cast
</span> from docutils import nodes
from docutils.nodes import Node, make_id, system_message
from docutils.parsers.rst import directives
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -52,10 +57,10 @@ index 9a3034daea..a7b77c750b 100644
</span> +from docutils.parsers.rst.directives import images, tables
from sphinx import addnodes
<span style='display:block; white-space:pre;background:#ffe0e0;'>- from sphinx.deprecation import RemovedInSphinx60Warning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27,6 +27,15 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from sphinx.util.osutil import SEP, os_path, relpath
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from sphinx.util.typing import OptionSpec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from sphinx.directives import optional_int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,15 @@ from sphinx.domains.math import MathDomain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from sphinx.util.docutils import SphinxDirective
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from sphinx.util.nodes import set_source_info
</span>
+try:
+ from docutils.nodes import meta as meta_node # type: ignore
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -66,10 +71,10 @@ index 9a3034daea..a7b77c750b 100644
</span> + from docutils.parsers.rst.directives.html import MetaBody
+ meta_node = MetaBody.meta
+
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if TYPE_CHECKING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if False:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For type annotation
</span> from sphinx.application import Sphinx
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -60,19 +69,19 @@ def run(self) -> List[Node]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,19 +59,19 @@ class Figure(images.Figure):
</span> return [figure_node]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -93,10 +98,10 @@ index 9a3034daea..a7b77c750b 100644
</span>
return result
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git tests/test_versioning.py tests/test_versioning.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 33fb045ce5..8ec1405adb 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- tests/test_versioning.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ tests/test_versioning.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tests/test_versioning.py b/tests/test_versioning.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 33fb045ce..8ec1405ad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tests/test_versioning.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tests/test_versioning.py
</span> @@ -11,12 +11,17 @@
import pickle
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -125,19 +130,39 @@ index 33fb045ce5..8ec1405adb 100644
</span> metanode.__class__ = addnodes.meta
loaded = pickle.loads(pickle.dumps(copy, pickle.HIGHEST_PROTOCOL))
assert all(getattr(n, 'uid', False) for n in loaded.traverse(is_paragraph))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/environment/__init__.py sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 15653a3fed..527e81dff6 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -45,6 +45,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.33.1
</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;'>+From b43f35286a374890cabc52ce95f7d4f496a337af Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Takeshi KOMIYA <i.tkomiya@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 3 Oct 2021 18:44:37 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/6] Support docutils-0.18; Disable embed_images and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ section_self_link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+embed_images:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HTML Builder always use non-embeded (linked) images.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+section_self_link:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HTML Builder controls hyperlink generation for each section via
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ `html_permalinks` option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sphinx/environment/__init__.py | 2 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/environment/__init__.py b/sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6b2acab9f..b7b0a2433 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,6 +44,7 @@ if False:
</span> logger = logging.getLogger(__name__)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- default_settings: Dict[str, Any] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_settings = {
</span> + 'embed_images': False,
'embed_stylesheet': False,
'cloak_email_addresses': True,
'pep_base_url': 'https://www.python.org/dev/peps/',
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -54,6 +55,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,6 +54,7 @@ default_settings = {
</span> 'input_encoding': 'utf-8-sig',
'doctitle_xform': False,
'sectsubtitle_xform': False,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -145,10 +170,15 @@ index 15653a3fed..527e81dff6 100644
</span> 'halt_level': 5,
'file_insertion_enabled': True,
'smartquotes_locales': [],
<span style='display:block; white-space:pre;background:#ffe0e0;'>-From 179e0bf8a22d7199907a405e18028011779d5f15 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.33.1
</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;'>+From b7416673fe78c2b55a9bfd11f70cc5043f979eb0 Mon Sep 17 00:00:00 2001
</span> From: Takeshi KOMIYA <i.tkomiya@gmail.com>
Date: Sun, 10 Oct 2021 15:24:12 +0900
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] refactor: Node.traverse() will returns generator since 0.18
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3/6] refactor: Node.traverse() will returns generator since
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0.18
</span>
---
sphinx/transforms/i18n.py | 10 +++++-----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,47 +187,47 @@ Subject: [PATCH] refactor: Node.traverse() will returns generator since 0.18
</span> tests/test_util_nodes.py | 14 +++++++-------
4 files changed, 14 insertions(+), 14 deletions(-)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/transforms/i18n.py sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3145379cb7..d28376becb 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -298,7 +298,7 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6bea6c6ee..a345b819d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -297,7 +297,7 @@ class Locale(SphinxTransform):
</span> is_autofootnote_ref = NodeMatcher(nodes.footnote_reference, auto=Any)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- old_foot_refs: List[nodes.footnote_reference] = node.traverse(is_autofootnote_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- new_foot_refs: List[nodes.footnote_reference] = patch.traverse(is_autofootnote_ref)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ old_foot_refs = node.traverse(is_autofootnote_ref) # type: List[nodes.footnote_reference] # NOQA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ new_foot_refs = patch.traverse(is_autofootnote_ref) # type: List[nodes.footnote_reference] # NOQA
</span> - if len(old_foot_refs) != len(new_foot_refs):
+ if len(list(old_foot_refs)) != len(list(new_foot_refs)):
old_foot_ref_rawsources = [ref.rawsource for ref in old_foot_refs]
new_foot_ref_rawsources = [ref.rawsource for ref in new_foot_refs]
logger.warning(__('inconsistent footnote references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -341,7 +341,7 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -340,7 +340,7 @@ class Locale(SphinxTransform):
</span> is_refnamed_ref = NodeMatcher(nodes.reference, refname=Any)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- old_refs: List[nodes.reference] = node.traverse(is_refnamed_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- new_refs: List[nodes.reference] = patch.traverse(is_refnamed_ref)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ old_refs = node.traverse(is_refnamed_ref) # type: List[nodes.reference]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ new_refs = patch.traverse(is_refnamed_ref) # type: List[nodes.reference]
</span> - if len(old_refs) != len(new_refs):
+ if len(list(old_refs)) != len(list(new_refs)):
old_ref_rawsources = [ref.rawsource for ref in old_refs]
new_ref_rawsources = [ref.rawsource for ref in new_refs]
logger.warning(__('inconsistent references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -369,7 +369,7 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -368,7 +368,7 @@ class Locale(SphinxTransform):
</span> old_foot_refs = node.traverse(is_refnamed_footnote_ref)
new_foot_refs = patch.traverse(is_refnamed_footnote_ref)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- refname_ids_map: Dict[str, List[str]] = {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ refname_ids_map = {} # type: Dict[str, List[str]]
</span> - if len(old_foot_refs) != len(new_foot_refs):
+ if len(list(old_foot_refs)) != len(list(new_foot_refs)):
old_foot_ref_rawsources = [ref.rawsource for ref in old_foot_refs]
new_foot_ref_rawsources = [ref.rawsource for ref in new_foot_refs]
logger.warning(__('inconsistent footnote references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -388,7 +388,7 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- old_cite_refs: List[nodes.citation_reference] = node.traverse(is_citation_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- new_cite_refs: List[nodes.citation_reference] = patch.traverse(is_citation_ref)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -387,7 +387,7 @@ class Locale(SphinxTransform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ old_cite_refs = node.traverse(is_citation_ref) # type: List[nodes.citation_reference] # NOQA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ new_cite_refs = patch.traverse(is_citation_ref) # type: List[nodes.citation_reference] # NOQA
</span> refname_ids_map = {}
- if len(old_cite_refs) != len(new_cite_refs):
+ if len(list(old_cite_refs)) != len(list(new_cite_refs)):
old_cite_ref_rawsources = [ref.rawsource for ref in old_cite_refs]
new_cite_ref_rawsources = [ref.rawsource for ref in new_cite_refs]
logger.warning(__('inconsistent citation references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -408,7 +408,7 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -407,7 +407,7 @@ class Locale(SphinxTransform):
</span> old_xrefs = node.traverse(addnodes.pending_xref)
new_xrefs = patch.traverse(addnodes.pending_xref)
xref_reftarget_map = {}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -206,24 +236,24 @@ index 3145379cb7..d28376becb 100644
</span> old_xref_rawsources = [xref.rawsource for xref in old_xrefs]
new_xref_rawsources = [xref.rawsource for xref in new_xrefs]
logger.warning(__('inconsistent term references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/writers/latex.py sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a1b1defd72..25c82940c3 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1011,7 +1011,7 @@ def visit_entry(self, node: Element) -> None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- context = (r'\par' + CR + r'\vskip-\baselineskip'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- r'\vbox{\hbox{\strut}}\end{varwidth}%' + CR + context)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 247a7dfb5..4dd8eedd3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1001,7 +1001,7 @@ class LaTeXTranslator(SphinxTranslator):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ context = ('\\par' + CR + '\\vskip-\\baselineskip'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '\\vbox{\\hbox{\\strut}}\\end{varwidth}%' + CR + context)
</span> self.needs_linetrimming = 1
- if len(node.traverse(nodes.paragraph)) >= 2:
+ if len(list(node.traverse(nodes.paragraph))) >= 2:
self.table.has_oldproblematic = True
if isinstance(node.parent.parent, nodes.thead) or (cell.col in self.table.stubs):
if len(node) == 1 and isinstance(node[0], nodes.paragraph) and node.astext() == '':
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/writers/text.py sphinx/writers/text.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index bd0ffa063d..ba310e072e 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/writers/text.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/writers/text.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -850,7 +850,7 @@ def depart_list_item(self, node: Element) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c0ebe32a2..ec5debd84 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/writers/text.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/writers/text.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -834,7 +834,7 @@ class TextTranslator(SphinxTranslator):
</span> self.end_state(first='%s. ' % self.list_counter[-1])
def visit_definition_list_item(self, node: Element) -> None:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -232,10 +262,10 @@ index bd0ffa063d..ba310e072e 100644
</span>
def depart_definition_list_item(self, node: Element) -> None:
pass
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git tests/test_util_nodes.py tests/test_util_nodes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index cb2ae70a82..421930cf5a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- tests/test_util_nodes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ tests/test_util_nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tests/test_util_nodes.py b/tests/test_util_nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cb2ae70a8..421930cf5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tests/test_util_nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tests/test_util_nodes.py
</span> @@ -60,31 +60,31 @@ def test_NodeMatcher():
# search by node class
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -275,35 +305,15 @@ index cb2ae70a82..421930cf5a 100644
</span>
@pytest.mark.parametrize(
<span style='display:block; white-space:pre;background:#ffe0e0;'>-From f9a33d2b3af40af4996b9c3064c117551cdcf4a2 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Takeshi KOMIYA <i.tkomiya@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 11 Oct 2021 01:52:04 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Support docutils-0.18: Set auto_id_prefix explicitly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.33.1
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Since docutils-0.18, auto_id_prefix setting will be changed to `'%'`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-from `'id'`. To keep backward compatibility of node IDs, this sets
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-`'id'` to settings explicitly.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sphinx/environment/__init__.py | 1 +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 1 insertion(+)
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/environment/__init__.py sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 527e81dff6..dc494add12 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/environment/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -45,6 +45,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- logger = logging.getLogger(__name__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default_settings: Dict[str, Any] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 'auto_id_prefix': 'id',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'embed_images': False,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'embed_stylesheet': False,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'cloak_email_addresses': True,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 8118f979dc09f1ed027810dbb5abb8a982d7cf23 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 893776f280fed8a7b8d1f8c89dd4830f006060f1 Mon Sep 17 00:00:00 2001
</span> From: Takeshi KOMIYA <i.tkomiya@gmail.com>
Date: Mon, 11 Oct 2021 01:23:29 +0900
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Support docutils-0.18: allow PreBibliographic nodes before
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- docinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 4/6] Support docutils-0.18: allow PreBibliographic nodes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ before docinfo
</span>
Since 0.18, `meta` directive inserts meta node into the top of the
document. It confuses MetadataCollector.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -314,11 +324,11 @@ node.
</span> sphinx/environment/collectors/metadata.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/environment/collectors/metadata.py sphinx/environment/collectors/metadata.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c684e4a4fd..c3a0aa2f48 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/environment/collectors/metadata.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/environment/collectors/metadata.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -33,9 +33,12 @@ def process_doc(self, app: Sphinx, doctree: nodes.document) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/environment/collectors/metadata.py b/sphinx/environment/collectors/metadata.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7b3628c9a..d04d80595 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/environment/collectors/metadata.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/environment/collectors/metadata.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,9 +33,12 @@ class MetadataCollector(EnvironmentCollector):
</span>
Keep processing minimal -- just return what docutils says.
"""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -333,7 +343,7 @@ index c684e4a4fd..c3a0aa2f48 100644
</span> # nodes are multiply inherited...
if isinstance(node, nodes.authors):
authors = cast(List[nodes.author], node)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -58,7 +61,7 @@ def process_doc(self, app: Sphinx, doctree: nodes.document) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,7 +61,7 @@ class MetadataCollector(EnvironmentCollector):
</span> value = 0
md[name] = value
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -342,10 +352,15 @@ index c684e4a4fd..c3a0aa2f48 100644
</span>
def setup(app: Sphinx) -> Dict[str, Any]:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-From 13803a79e7179f40a27f46d5a5a05f1eebbcbb63 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.33.1
</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;'>+From f63b487b899ccefccd69a0ec0c6ad52c64361b04 Mon Sep 17 00:00:00 2001
</span> From: Takeshi KOMIYA <i.tkomiya@gmail.com>
Date: Wed, 27 Oct 2021 01:49:57 +0900
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Support docutils-0.18: Consume iterator of Element.traverse()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 5/6] Support docutils-0.18: Consume iterator of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Element.traverse()
</span>
Since 0.18, Element.traverse() returns an iterator instead of
intermediate object. As a result, the return value is always considered
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -369,11 +384,11 @@ doctree on the loop.
</span> sphinx/writers/manpage.py | 4 ++--
15 files changed, 27 insertions(+), 27 deletions(-)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/builders/_epub_base.py sphinx/builders/_epub_base.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2dfc35ecd3..672ce72425 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/builders/_epub_base.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/builders/_epub_base.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -323,14 +323,14 @@ def footnote_spot(tree: nodes.document) -> Tuple[Element, int]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/builders/_epub_base.py b/sphinx/builders/_epub_base.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7df3f8df5..5de83c672 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/builders/_epub_base.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/builders/_epub_base.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -318,14 +318,14 @@ class EpubBuilder(StandaloneHTMLBuilder):
</span> # a) place them after the last existing footnote
# b) place them after an (empty) Footnotes rubric
# c) create an empty Footnotes rubric at the end of the document
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -390,7 +405,7 @@ index 2dfc35ecd3..672ce72425 100644
</span> rub = nodes.rubric()
rub.append(nodes.Text(FOOTNOTES_RUBRIC_NAME))
doc.append(rub)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -339,10 +339,10 @@ def footnote_spot(tree: nodes.document) -> Tuple[Element, int]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -334,10 +334,10 @@ class EpubBuilder(StandaloneHTMLBuilder):
</span> if show_urls == 'no':
return
if show_urls == 'footnote':
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -403,10 +418,10 @@ index 2dfc35ecd3..672ce72425 100644
</span> uri = node.get('refuri', '')
if (uri.startswith('http:') or uri.startswith('https:') or
uri.startswith('ftp:')) and uri not in node.astext():
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/builders/latex/transforms.py sphinx/builders/latex/transforms.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a07393690d..b85a9827c7 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/builders/latex/transforms.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/builders/latex/transforms.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/builders/latex/transforms.py b/sphinx/builders/latex/transforms.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0a74eded4..97baf467a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/builders/latex/transforms.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/builders/latex/transforms.py
</span> @@ -45,7 +45,7 @@ class SubstitutionDefinitionsRemover(SphinxPostTransform):
formats = ('latex',)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -416,7 +431,7 @@ index a07393690d..b85a9827c7 100644
</span> node.parent.remove(node)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -81,7 +81,7 @@ def expand_show_urls(self) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,7 +81,7 @@ class ShowUrlsTransform(SphinxPostTransform):
</span> if show_urls is False or show_urls == 'no':
return
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -446,11 +461,11 @@ index a07393690d..b85a9827c7 100644
</span> # move the index node next to the section title
node.remove(index)
node.parent.insert(i + 1, index)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/domains/index.py sphinx/domains/index.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9ecfae439c..975ab7000f 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/domains/index.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/domains/index.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -48,7 +48,7 @@ def merge_domaindata(self, docnames: Iterable[str], otherdata: Dict) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/domains/index.py b/sphinx/domains/index.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4a91d6ad1..ba4ba4515 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/domains/index.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/domains/index.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -48,7 +48,7 @@ class IndexDomain(Domain):
</span> def process_doc(self, env: BuildEnvironment, docname: str, document: Node) -> None:
"""Process a document after it is read by the environment."""
entries = self.entries.setdefault(env.docname, [])
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -459,11 +474,11 @@ index 9ecfae439c..975ab7000f 100644
</span> try:
for entry in node['entries']:
split_index_msg(entry[0], entry[1])
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/domains/python.py sphinx/domains/python.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1a3bd60c7b..9bb9a1e723 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/domains/python.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/domains/python.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -328,7 +328,7 @@ def make_xref(self, rolename: str, domain: str, target: str,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 552742bb8..baae1b819 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/domains/python.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/domains/python.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -287,7 +287,7 @@ class PyXrefMixin:
</span> text = target[1:]
elif prefix == '~':
text = target.split('.')[-1]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -471,12 +486,12 @@ index 1a3bd60c7b..9bb9a1e723 100644
</span> + for node in list(result.traverse(nodes.Text)):
node.parent[node.parent.index(node)] = nodes.Text(text)
break
<span style='display:block; white-space:pre;background:#ffe0e0;'>- elif isinstance(result, pending_xref) and env.config.python_use_unqualified_type_names:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/environment/adapters/toctree.py sphinx/environment/adapters/toctree.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a62e951d7e..53328e8127 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/environment/adapters/toctree.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/environment/adapters/toctree.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -193,13 +193,13 @@ def _entries_from_toctree(toctreenode: addnodes.toctree, parents: List[str],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/environment/adapters/toctree.py b/sphinx/environment/adapters/toctree.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f0a37ab7f..49454be0f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/environment/adapters/toctree.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/environment/adapters/toctree.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -194,13 +194,13 @@ class TocTree:
</span> for toplevel in children:
# nodes with length 1 don't have any children anyway
if len(toplevel) > 1:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -492,11 +507,11 @@ index a62e951d7e..53328e8127 100644
</span> if not (subtocnode.get('hidden', False) and
not includehidden):
i = subtocnode.parent.index(subtocnode) + 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/ext/autosummary/__init__.py sphinx/ext/autosummary/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8bd3d50cd2..478b5c9f33 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/ext/autosummary/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/ext/autosummary/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -583,7 +583,7 @@ def parse(doc: List[str], settings: Any) -> nodes.document:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b268127d0..a71f1b6ac 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/ext/autosummary/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/ext/autosummary/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -564,7 +564,7 @@ def extract_summary(doc: List[str], document: Any) -> str:
</span> node = parse(doc, document.settings)
if summary.endswith(WELL_KNOWN_ABBREVIATIONS):
pass
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -505,10 +520,10 @@ index 8bd3d50cd2..478b5c9f33 100644
</span> # considered as that splitting by period does not break inline markups
break
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/ext/linkcode.py sphinx/ext/linkcode.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6aaea0e9e5..e88ba4c960 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/ext/linkcode.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/ext/linkcode.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/ext/linkcode.py b/sphinx/ext/linkcode.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5c118a9fb..495bb5073 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/ext/linkcode.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/ext/linkcode.py
</span> @@ -39,7 +39,7 @@ def doctree_read(app: Sphinx, doctree: Node) -> None:
'js': ['object', 'fullname'],
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -516,26 +531,26 @@ index 6aaea0e9e5..e88ba4c960 100644
</span> - for objnode in doctree.traverse(addnodes.desc):
+ for objnode in list(doctree.traverse(addnodes.desc)):
domain = objnode.get('domain')
<span style='display:block; white-space:pre;background:#ffe0e0;'>- uris: Set[str] = set()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ uris = set() # type: Set[str]
</span> for signode in objnode:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/ext/todo.py sphinx/ext/todo.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6b7c1b73b8..beab0976d3 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/ext/todo.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/ext/todo.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -131,7 +131,7 @@ def __init__(self, app: Sphinx, doctree: nodes.document, docname: str) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/ext/todo.py b/sphinx/ext/todo.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a73dea84d..16d157164 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/ext/todo.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/ext/todo.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -160,7 +160,7 @@ class TodoListProcessor:
</span>
def process(self, doctree: nodes.document, docname: str) -> None:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- todos: List[todo_node] = sum(self.domain.todos.values(), [])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ todos = sum(self.domain.todos.values(), []) # type: List[todo_node]
</span> - for node in doctree.traverse(todolist):
+ for node in list(doctree.traverse(todolist)):
if not self.config.todo_include_todos:
node.parent.remove(node)
continue
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/ext/viewcode.py sphinx/ext/viewcode.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5728f60776..bd1346daab 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/ext/viewcode.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/ext/viewcode.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -108,7 +108,7 @@ def has_tag(modname: str, fullname: str, docname: str, refname: str) -> bool:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/ext/viewcode.py b/sphinx/ext/viewcode.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6bedf2e1c..d2341810c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/ext/viewcode.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/ext/viewcode.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -108,7 +108,7 @@ def doctree_read(app: Sphinx, doctree: Node) -> None:
</span>
return False
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -543,8 +558,8 @@ index 5728f60776..bd1346daab 100644
</span> + for objnode in list(doctree.traverse(addnodes.desc)):
if objnode.get('domain') != 'py':
continue
<span style='display:block; white-space:pre;background:#ffe0e0;'>- names: Set[str] = set()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -191,7 +191,7 @@ def convert_viewcode_anchors(self) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ names = set() # type: Set[str]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -183,7 +183,7 @@ class ViewcodeAnchorTransform(SphinxPostTransform):
</span> node.replace_self(refnode)
def remove_viewcode_anchors(self) -> None:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -553,10 +568,10 @@ index 5728f60776..bd1346daab 100644
</span> node.parent.remove(node)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/transforms/__init__.py sphinx/transforms/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ade46363a4..1347409292 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/transforms/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/transforms/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/transforms/__init__.py b/sphinx/transforms/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 45640308f..4512053c7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/transforms/__init__.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/transforms/__init__.py
</span> @@ -128,7 +128,7 @@ class MoveModuleTargets(SphinxTransform):
default_priority = 210
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -566,7 +581,7 @@ index ade46363a4..1347409292 100644
</span> if not node['ids']:
continue
if ('ismod' in node and
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -303,7 +303,7 @@ class FilterSystemMessages(SphinxTransform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -298,7 +298,7 @@ class FilterSystemMessages(SphinxTransform):
</span>
def apply(self, **kwargs: Any) -> None:
filterlevel = 2 if self.config.keep_warnings else 5
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -575,11 +590,11 @@ index ade46363a4..1347409292 100644
</span> if node['level'] < filterlevel:
logger.debug('%s [filtered system message]', node.astext())
node.parent.remove(node)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/transforms/i18n.py sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index d28376becb..d0bc8af5d5 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -488,7 +488,7 @@ def apply(self, **kwargs: Any) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a345b819d..ccc14c23f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -486,7 +486,7 @@ class RemoveTranslatableInline(SphinxTransform):
</span> return
matcher = NodeMatcher(nodes.inline, translatable=Any)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -588,11 +603,11 @@ index d28376becb..d0bc8af5d5 100644
</span> inline.parent.remove(inline)
inline.parent += inline.children
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/transforms/post_transforms/code.py sphinx/transforms/post_transforms/code.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 52bca8e12d..3c4c0ebab6 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/transforms/post_transforms/code.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/transforms/post_transforms/code.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -42,7 +42,7 @@ def apply(self, **kwargs: Any) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/transforms/post_transforms/code.py b/sphinx/transforms/post_transforms/code.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 20df1db3c..59fa115e5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/transforms/post_transforms/code.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/transforms/post_transforms/code.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -40,7 +40,7 @@ class HighlightLanguageTransform(SphinxTransform):
</span> self.config.highlight_language)
self.document.walkabout(visitor)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -601,11 +616,11 @@ index 52bca8e12d..3c4c0ebab6 100644
</span> node.parent.remove(node)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/util/nodes.py sphinx/util/nodes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 78663e4c70..bc16e44c10 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/util/nodes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/util/nodes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -343,7 +343,7 @@ def clean_astext(node: Element) -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d5e43e716..06af8bedd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/util/nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/util/nodes.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -349,7 +349,7 @@ def clean_astext(node: Element) -> str:
</span> node = node.deepcopy()
for img in node.traverse(nodes.image):
img['alt'] = ''
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -614,7 +629,7 @@ index 78663e4c70..bc16e44c10 100644
</span> raw.parent.remove(raw)
return node.astext()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -408,7 +408,7 @@ def inline_all_toctrees(builder: "Builder", docnameset: Set[str], docname: str,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -413,7 +413,7 @@ def inline_all_toctrees(builder: "Builder", docnameset: Set[str], docname: str,
</span> Record all docnames in *docnameset*, and output docnames with *colorfunc*.
"""
tree = cast(nodes.document, tree.deepcopy())
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -623,11 +638,11 @@ index 78663e4c70..bc16e44c10 100644
</span> newnodes = []
includefiles = map(str, toctreenode['includefiles'])
for includefile in includefiles:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/writers/latex.py sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 869759ee51..3f032e6164 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -651,7 +651,7 @@ def visit_title(self, node: Element) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4dd8eedd3..b0878efe5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/writers/latex.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -658,7 +658,7 @@ class LaTeXTranslator(SphinxTranslator):
</span> raise nodes.SkipNode
else:
short = ''
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -636,11 +651,11 @@ index 869759ee51..3f032e6164 100644
</span> short = ('[%s]' % self.escape(' '.join(clean_astext(node).split())))
try:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/writers/manpage.py sphinx/writers/manpage.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 12fc31281b..da5f4c2412 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/writers/manpage.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/writers/manpage.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -56,7 +56,7 @@ def __init__(self, document: nodes.document) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9ef429ba3..e2d3f3b38 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/writers/manpage.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/writers/manpage.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,7 +58,7 @@ class NestedInlineTransform:
</span>
def apply(self, **kwargs: Any) -> None:
matcher = NodeMatcher(nodes.literal, nodes.emphasis, nodes.strong)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -648,8 +663,8 @@ index 12fc31281b..da5f4c2412 100644
</span> + for node in list(self.document.traverse(matcher)): # type: TextElement
if any(matcher(subnode) for subnode in node):
pos = node.parent.index(node)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- for subnode in reversed(list(node)):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -227,7 +227,7 @@ def depart_versionmodified(self, node: Element) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for subnode in reversed(node[1:]):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -214,7 +214,7 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
</span>
# overwritten -- don't make whole of term bold if it includes strong node
def visit_term(self, node: Element) -> None:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -658,77 +673,68 @@ index 12fc31281b..da5f4c2412 100644
</span> self.body.append('\n')
else:
super().visit_term(node)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-From 3f3de7d29abefe4c87e03f527a8d5b9e136d3645 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.33.1
</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;'>+From ae4a354aadb5782733cd87bd4cddd430e44b34a7 Mon Sep 17 00:00:00 2001
</span> From: Takeshi KOMIYA <i.tkomiya@gmail.com>
Date: Sun, 31 Oct 2021 01:33:16 +0900
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Support docutils-0.18: Consume generator of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 6/6] Support docutils-0.18: Consume generator of
</span> Element.traverse()
The last fix in i18n module was incorrect because it compares the
"already consumed" generators. It should compares the lists of nodes.
---
<span style='display:block; white-space:pre;background:#ffe0e0;'>- sphinx/transforms/i18n.py | 30 +++++++++++++++---------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 15 insertions(+), 15 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sphinx/transforms/i18n.py | 18 +++++++++---------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 9 insertions(+), 9 deletions(-)
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git sphinx/transforms/i18n.py sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index d0bc8af5d5..8ef7987f9a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -296,9 +296,9 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lst.append(new)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ccc14c23f..ffb316126 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/sphinx/transforms/i18n.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -297,7 +297,7 @@ class Locale(SphinxTransform):
</span> is_autofootnote_ref = NodeMatcher(nodes.footnote_reference, auto=Any)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- old_foot_refs: List[nodes.footnote_reference] = node.traverse(is_autofootnote_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- new_foot_refs: List[nodes.footnote_reference] = patch.traverse(is_autofootnote_ref)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ old_foot_refs = node.traverse(is_autofootnote_ref) # type: List[nodes.footnote_reference] # NOQA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ new_foot_refs = patch.traverse(is_autofootnote_ref) # type: List[nodes.footnote_reference] # NOQA
</span> - if len(list(old_foot_refs)) != len(list(new_foot_refs)):
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ old_foot_refs: List[nodes.footnote_reference] = list(node.traverse(is_autofootnote_ref)) # NOQA
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ new_foot_refs: List[nodes.footnote_reference] = list(patch.traverse(is_autofootnote_ref)) # NOQA
</span> + if len(old_foot_refs) != len(new_foot_refs):
old_foot_ref_rawsources = [ref.rawsource for ref in old_foot_refs]
new_foot_ref_rawsources = [ref.rawsource for ref in new_foot_refs]
logger.warning(__('inconsistent footnote references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -339,9 +339,9 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # * use translated refname for section refname.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # * inline reference "`Python <...>`_" has no 'refname'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -340,7 +340,7 @@ class Locale(SphinxTransform):
</span> is_refnamed_ref = NodeMatcher(nodes.reference, refname=Any)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- old_refs: List[nodes.reference] = node.traverse(is_refnamed_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- new_refs: List[nodes.reference] = patch.traverse(is_refnamed_ref)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ old_refs = node.traverse(is_refnamed_ref) # type: List[nodes.reference]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ new_refs = patch.traverse(is_refnamed_ref) # type: List[nodes.reference]
</span> - if len(list(old_refs)) != len(list(new_refs)):
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ old_refs: List[nodes.reference] = list(node.traverse(is_refnamed_ref))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ new_refs: List[nodes.reference] = list(patch.traverse(is_refnamed_ref))
</span> + if len(old_refs) != len(new_refs):
old_ref_rawsources = [ref.rawsource for ref in old_refs]
new_ref_rawsources = [ref.rawsource for ref in new_refs]
logger.warning(__('inconsistent references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -366,10 +366,10 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # refnamed footnote should use original 'ids'.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- is_refnamed_footnote_ref = NodeMatcher(nodes.footnote_reference, refname=Any)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- old_foot_refs = node.traverse(is_refnamed_footnote_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- new_foot_refs = patch.traverse(is_refnamed_footnote_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ old_foot_refs = list(node.traverse(is_refnamed_footnote_ref))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ new_foot_refs = list(patch.traverse(is_refnamed_footnote_ref))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- refname_ids_map: Dict[str, List[str]] = {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -368,7 +368,7 @@ class Locale(SphinxTransform):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ old_foot_refs = node.traverse(is_refnamed_footnote_ref)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ new_foot_refs = patch.traverse(is_refnamed_footnote_ref)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ refname_ids_map = {} # type: Dict[str, List[str]]
</span> - if len(list(old_foot_refs)) != len(list(new_foot_refs)):
+ if len(old_foot_refs) != len(new_foot_refs):
old_foot_ref_rawsources = [ref.rawsource for ref in old_foot_refs]
new_foot_ref_rawsources = [ref.rawsource for ref in new_foot_refs]
logger.warning(__('inconsistent footnote references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -385,10 +385,10 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -384,10 +384,10 @@ class Locale(SphinxTransform):
</span>
# citation should use original 'ids'.
is_citation_ref = NodeMatcher(nodes.citation_reference, refname=Any)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- old_cite_refs: List[nodes.citation_reference] = node.traverse(is_citation_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- new_cite_refs: List[nodes.citation_reference] = patch.traverse(is_citation_ref)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ old_cite_refs: List[nodes.citation_reference] = list(node.traverse(is_citation_ref)) # NOQA
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ new_cite_refs: List[nodes.citation_reference] = list(patch.traverse(is_citation_ref)) # NOQA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- old_cite_refs = node.traverse(is_citation_ref) # type: List[nodes.citation_reference] # NOQA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- new_cite_refs = patch.traverse(is_citation_ref) # type: List[nodes.citation_reference] # NOQA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ old_cite_refs = list(node.traverse(is_citation_ref)) # type: List[nodes.citation_reference] # NOQA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ new_cite_refs = list(patch.traverse(is_citation_ref)) # type: List[nodes.citation_reference] # NOQA
</span> refname_ids_map = {}
- if len(list(old_cite_refs)) != len(list(new_cite_refs)):
+ if len(old_cite_refs) != len(new_cite_refs):
old_cite_ref_rawsources = [ref.rawsource for ref in old_cite_refs]
new_cite_ref_rawsources = [ref.rawsource for ref in new_cite_refs]
logger.warning(__('inconsistent citation references in translated message.' +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -405,10 +405,10 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -404,10 +404,10 @@ class Locale(SphinxTransform):
</span> # Original pending_xref['reftarget'] contain not-translated
# target name, new pending_xref must use original one.
# This code restricts to change ref-targets in the translation.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -742,3 +748,6 @@ index d0bc8af5d5..8ef7987f9a 100644
</span> old_xref_rawsources = [xref.rawsource for xref in old_xrefs]
new_xref_rawsources = [xref.rawsource for xref in new_xrefs]
logger.warning(__('inconsistent term references in translated message.' +
<span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.33.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-sphinx/files/py310-sphinx b/python/py-sphinx/files/py310-sphinx
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9ea1df8118c
</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-sphinx/files/py310-sphinx
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${frameworks_dir}/Python.framework/Versions/3.10/bin/sphinx-apidoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${frameworks_dir}/Python.framework/Versions/3.10/bin/sphinx-quickstart
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${frameworks_dir}/Python.framework/Versions/3.10/bin/sphinx-autogen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${frameworks_dir}/Python.framework/Versions/3.10/bin/sphinx-build
</span></pre><pre style='margin:0'>
</pre>