refactor: Create a copy of settings on Builder.write_doctree()

This commit is contained in:
Takeshi KOMIYA 2022-05-08 02:30:23 +09:00
parent 58c5424bb4
commit 294da2aa09

View File

@ -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