Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sphinx-doc/sphinx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2022-05-07 20:30:23 +0300
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2022-05-07 20:30:23 +0300
commit294da2aa0991b769d475f298976d906bd547778e (patch)
tree2a9e321783d5d4617877a78bdbe4f9aa3a9f8e99
parent58c5424bb4a3bcc02d3d34a91dcbe5aef6306c56 (diff)
refactor: Create a copy of settings on Builder.write_doctree()
-rw-r--r--sphinx/builders/__init__.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py
index a67948acc..45188cd56 100644
--- a/sphinx/builders/__init__.py
+++ b/sphinx/builders/__init__.py
@@ -476,11 +476,6 @@ class Builder:
publisher.publish()
doctree = publisher.document
- # The settings object is reused by the Publisher for each document.
- # Becuase we modify the settings object in ``write_doctree``, we
- # need to ensure that each doctree has an independent copy.
- doctree.settings = doctree.settings.copy()
-
# store time of reading, for outdated files detection
# (Some filesystems have coarse timestamp resolution;
# therefore time.time() can be older than filesystem's timestamp.
@@ -499,6 +494,10 @@ class Builder:
# make it picklable
doctree.reporter = None
doctree.transformer = None
+
+ # Create a copy of settings object before modification because it is
+ # shared with other documents.
+ doctree.settings = doctree.settings.copy()
doctree.settings.warning_stream = None
doctree.settings.env = None
doctree.settings.record_dependencies = None