diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2022-05-07 20:30:23 +0300 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2022-05-07 20:30:23 +0300 |
commit | 294da2aa0991b769d475f298976d906bd547778e (patch) | |
tree | 2a9e321783d5d4617877a78bdbe4f9aa3a9f8e99 | |
parent | 58c5424bb4a3bcc02d3d34a91dcbe5aef6306c56 (diff) |
refactor: Create a copy of settings on Builder.write_doctree()
-rw-r--r-- | sphinx/builders/__init__.py | 9 |
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 |