diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2018-01-27 16:07:27 +0300 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2018-01-31 14:41:31 +0300 |
commit | f49a7c90242ba877685c177afc39431fb72ebc3a (patch) | |
tree | e90e1cf4c1892cb8b2ea403aa32bda20359976f5 /sphinx/extension.py | |
parent | 4647fcee456378c5001fe5ccbe7bff71fb799bf7 (diff) |
Reimplement needs_extensions checker as a config-init handler
Diffstat (limited to 'sphinx/extension.py')
-rw-r--r-- | sphinx/extension.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/sphinx/extension.py b/sphinx/extension.py index 98d35b5af..c1e4a860a 100644 --- a/sphinx/extension.py +++ b/sphinx/extension.py @@ -17,8 +17,9 @@ from sphinx.util import logging if False: # For type annotation - from typing import Dict # NOQA + from typing import Any, Dict # NOQA from sphinx.application import Sphinx # NOQA + from sphinx.config import Config # NOQA logger = logging.getLogger(__name__) @@ -41,13 +42,13 @@ class Extension(object): self.parallel_write_safe = kwargs.pop('parallel_write_safe', True) -def verify_required_extensions(app, requirements): - # type: (Sphinx, Dict[unicode, unicode]) -> None +def verify_needs_extensions(app, config): + # type: (Sphinx, Config) -> None """Verify the required Sphinx extensions are loaded.""" - if requirements is None: + if config.needs_extensions is None: return - for extname, reqversion in iteritems(requirements): + for extname, reqversion in iteritems(config.needs_extensions): extension = app.extensions.get(extname) if extension is None: logger.warning(__('The %s extension is required by needs_extensions settings,' @@ -59,3 +60,14 @@ def verify_required_extensions(app, requirements): 'version %s and therefore cannot be built with ' 'the loaded version (%s).') % (extname, reqversion, extension.version)) + + +def setup(app): + # type: (Sphinx) -> Dict[unicode, Any] + app.connect('config-inited', verify_needs_extensions) + + return { + 'version': 'builtin', + 'parallel_read_safe': True, + 'parallel_write_safe': True, + } |