summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2020-04-05 13:59:42 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2020-04-05 22:03:54 +0900
commit18a14e475c44297a28e0ff5f00c23c7b17623fde (patch)
treea242903f64a7af3bf5637977ea1e20fe7e11ec0c
parentaa1f7fb0ffd8ba5fc07a830ff27e834de5c6c995 (diff)
downloadsphinx-git-18a14e475c44297a28e0ff5f00c23c7b17623fde.tar.gz
Fix #7409: Convert configuration values on late config-inited event
This changes a priority for config-inited handlers of core modules to invoke them at the late of the event. It allows extensions to modify configurations.
-rw-r--r--CHANGES2
-rw-r--r--sphinx/builders/epub3.py2
-rw-r--r--sphinx/builders/html/__init__.py12
-rw-r--r--sphinx/builders/latex/__init__.py2
-rw-r--r--sphinx/config.py10
-rw-r--r--sphinx/ext/intersphinx.py2
-rw-r--r--sphinx/extension.py2
-rw-r--r--sphinx/registry.py2
8 files changed, 18 insertions, 16 deletions
diff --git a/CHANGES b/CHANGES
index ed864de05..12d5d8f3d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -33,6 +33,8 @@ Bugs fixed
* #6564: html: a width of table was ignored on HTML builder
* #7401: Incorrect argument is passed for :event:`env-get-outdated` handlers
* #7355: autodoc: a signature of cython-function is not recognized well
+* #7409: intersphinx: ValueError is raised when an extension sets up
+ :confval:`intersphinx_mapping` on :event:`config-inited` event
Testing
--------
diff --git a/sphinx/builders/epub3.py b/sphinx/builders/epub3.py
index 5d7121fe6..cf795f3ba 100644
--- a/sphinx/builders/epub3.py
+++ b/sphinx/builders/epub3.py
@@ -282,7 +282,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
ENUM('horizontal', 'vertical'))
# event handlers
- app.connect('config-inited', convert_epub_css_files)
+ app.connect('config-inited', convert_epub_css_files, priority=800)
app.connect('builder-inited', validate_config_values)
return {
diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py
index 6488146d5..320c7feb6 100644
--- a/sphinx/builders/html/__init__.py
+++ b/sphinx/builders/html/__init__.py
@@ -1231,12 +1231,12 @@ def setup(app: Sphinx) -> Dict[str, Any]:
app.add_config_value('html4_writer', False, 'html')
# event handlers
- app.connect('config-inited', convert_html_css_files)
- app.connect('config-inited', convert_html_js_files)
- app.connect('config-inited', validate_html_extra_path)
- app.connect('config-inited', validate_html_static_path)
- app.connect('config-inited', validate_html_logo)
- app.connect('config-inited', validate_html_favicon)
+ app.connect('config-inited', convert_html_css_files, priority=800)
+ app.connect('config-inited', convert_html_js_files, priority=800)
+ app.connect('config-inited', validate_html_extra_path, priority=800)
+ app.connect('config-inited', validate_html_static_path, priority=800)
+ app.connect('config-inited', validate_html_logo, priority=800)
+ app.connect('config-inited', validate_html_favicon, priority=800)
app.connect('builder-inited', validate_math_renderer)
app.connect('html-page-context', setup_js_tag_helper)
diff --git a/sphinx/builders/latex/__init__.py b/sphinx/builders/latex/__init__.py
index 1348f0e12..390a5d9c7 100644
--- a/sphinx/builders/latex/__init__.py
+++ b/sphinx/builders/latex/__init__.py
@@ -536,7 +536,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
app.setup_extension('sphinx.builders.latex.transforms')
app.add_builder(LaTeXBuilder)
- app.connect('config-inited', validate_config_values)
+ app.connect('config-inited', validate_config_values, priority=800)
app.add_config_value('latex_engine', default_latex_engine, None,
ENUM('pdflatex', 'xelatex', 'lualatex', 'platex', 'uplatex'))
diff --git a/sphinx/config.py b/sphinx/config.py
index 87007c33d..19a8f6c4f 100644
--- a/sphinx/config.py
+++ b/sphinx/config.py
@@ -478,11 +478,11 @@ def check_master_doc(app: "Sphinx", env: "BuildEnvironment", added: Set[str],
def setup(app: "Sphinx") -> Dict[str, Any]:
- app.connect('config-inited', convert_source_suffix)
- app.connect('config-inited', init_numfig_format)
- app.connect('config-inited', correct_copyright_year)
- app.connect('config-inited', check_confval_types)
- app.connect('config-inited', check_primary_domain)
+ app.connect('config-inited', convert_source_suffix, priority=800)
+ app.connect('config-inited', init_numfig_format, priority=800)
+ app.connect('config-inited', correct_copyright_year, priority=800)
+ app.connect('config-inited', check_confval_types, priority=800)
+ app.connect('config-inited', check_primary_domain, priority=800)
app.connect('env-get-outdated', check_master_doc)
return {
diff --git a/sphinx/ext/intersphinx.py b/sphinx/ext/intersphinx.py
index 5aa9c75f0..02f605bac 100644
--- a/sphinx/ext/intersphinx.py
+++ b/sphinx/ext/intersphinx.py
@@ -367,7 +367,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
app.add_config_value('intersphinx_mapping', {}, True)
app.add_config_value('intersphinx_cache_limit', 5, False)
app.add_config_value('intersphinx_timeout', None, False)
- app.connect('config-inited', normalize_intersphinx_mapping)
+ app.connect('config-inited', normalize_intersphinx_mapping, priority=800)
app.connect('builder-inited', load_mappings)
app.connect('missing-reference', missing_reference)
return {
diff --git a/sphinx/extension.py b/sphinx/extension.py
index 45ea46677..fa7a0d490 100644
--- a/sphinx/extension.py
+++ b/sphinx/extension.py
@@ -60,7 +60,7 @@ def verify_needs_extensions(app: "Sphinx", config: Config) -> None:
def setup(app: "Sphinx") -> Dict[str, Any]:
- app.connect('config-inited', verify_needs_extensions)
+ app.connect('config-inited', verify_needs_extensions, priority=800)
return {
'version': 'builtin',
diff --git a/sphinx/registry.py b/sphinx/registry.py
index 93a7ebc25..200f59d42 100644
--- a/sphinx/registry.py
+++ b/sphinx/registry.py
@@ -453,7 +453,7 @@ def merge_source_suffix(app: "Sphinx", config: Config) -> None:
def setup(app: "Sphinx") -> Dict[str, Any]:
- app.connect('config-inited', merge_source_suffix)
+ app.connect('config-inited', merge_source_suffix, priority=800)
return {
'version': 'builtin',