summaryrefslogtreecommitdiff
path: root/sphinx/application.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/application.py')
-rw-r--r--sphinx/application.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/sphinx/application.py b/sphinx/application.py
index a1cc4c4fe..b1af74bf4 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -73,7 +73,7 @@ class Sphinx(object):
self.verbosity = verbosity
self.next_listener_id = 0
self._extensions = {}
- self._extension_versions = {}
+ self._extension_metadata = {}
self._listeners = {}
self.domains = BUILTIN_DOMAINS.copy()
self.builderclasses = BUILTIN_BUILDERS.copy()
@@ -129,7 +129,7 @@ class Sphinx(object):
self.setup_extension(extension)
# the config file itself can be an extension
if self.config.setup:
- # py31 doesn't have 'callable' function for bellow check
+ # py31 doesn't have 'callable' function for below check
if hasattr(self.config.setup, '__call__'):
self.config.setup(self)
else:
@@ -157,7 +157,7 @@ class Sphinx(object):
'version requirement for extension %s, but it is '
'not loaded' % extname)
continue
- has_ver = self._extension_versions[extname]
+ has_ver = self._extension_metadata[extname]['version']
if has_ver == 'unknown version' or needs_ver > has_ver:
raise VersionRequirementError(
'This project needs the extension %s at least in '
@@ -367,20 +367,22 @@ class Sphinx(object):
if not hasattr(mod, 'setup'):
self.warn('extension %r has no setup() function; is it really '
'a Sphinx extension module?' % extension)
- version = None
+ ext_meta = None
else:
try:
- version = mod.setup(self)
+ ext_meta = mod.setup(self)
except VersionRequirementError as err:
# add the extension name to the version required
raise VersionRequirementError(
'The %s extension used by this project needs at least '
'Sphinx v%s; it therefore cannot be built with this '
'version.' % (extension, err))
- if version is None:
- version = 'unknown version'
+ if ext_meta is None:
+ ext_meta = {}
+ if not ext_meta.get('version'):
+ ext_meta['version'] = 'unknown version'
self._extensions[extension] = mod
- self._extension_versions[extension] = version
+ self._extension_metadata[extension] = ext_meta
def require_sphinx(self, version):
# check the Sphinx version if requested