mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Preload builder module before init config values
This commit is contained in:
parent
9fd0205b27
commit
7d9a47d79b
@ -199,6 +199,10 @@ class Sphinx(object):
|
|||||||
# load all user-given extension modules
|
# load all user-given extension modules
|
||||||
for extension in self.config.extensions:
|
for extension in self.config.extensions:
|
||||||
self.setup_extension(extension)
|
self.setup_extension(extension)
|
||||||
|
|
||||||
|
# preload builder module (before init config values)
|
||||||
|
self.preload_builder(buildername)
|
||||||
|
|
||||||
# the config file itself can be an extension
|
# the config file itself can be an extension
|
||||||
if self.config.setup:
|
if self.config.setup:
|
||||||
self._setting_up_extension = ['conf.py']
|
self._setting_up_extension = ['conf.py']
|
||||||
@ -294,11 +298,11 @@ class Sphinx(object):
|
|||||||
logger.info(_('failed: %s'), err)
|
logger.info(_('failed: %s'), err)
|
||||||
self._init_env(freshenv=True)
|
self._init_env(freshenv=True)
|
||||||
|
|
||||||
def create_builder(self, buildername):
|
def preload_builder(self, buildername):
|
||||||
# type: (unicode) -> Builder
|
# type: (unicode) -> None
|
||||||
if buildername is None:
|
if buildername is None:
|
||||||
logger.info(_('No builder selected, using default: html'))
|
return
|
||||||
buildername = 'html'
|
|
||||||
if buildername not in self.builderclasses:
|
if buildername not in self.builderclasses:
|
||||||
entry_points = iter_entry_points('sphinx.builders', buildername)
|
entry_points = iter_entry_points('sphinx.builders', buildername)
|
||||||
try:
|
try:
|
||||||
@ -307,8 +311,15 @@ class Sphinx(object):
|
|||||||
raise SphinxError(_('Builder name %s not registered or available'
|
raise SphinxError(_('Builder name %s not registered or available'
|
||||||
' through entry point') % buildername)
|
' through entry point') % buildername)
|
||||||
load_extension(self, entry_point.module_name)
|
load_extension(self, entry_point.module_name)
|
||||||
builderclass = self.builderclasses[buildername]
|
|
||||||
return builderclass(self)
|
def create_builder(self, buildername):
|
||||||
|
# type: (unicode) -> Builder
|
||||||
|
if buildername is None:
|
||||||
|
buildername = 'html'
|
||||||
|
if buildername not in self.builderclasses:
|
||||||
|
raise SphinxError(_('Builder name %s not registered') % buildername)
|
||||||
|
|
||||||
|
return self.builderclasses[buildername](self)
|
||||||
|
|
||||||
def _init_builder(self):
|
def _init_builder(self):
|
||||||
# type: () -> None
|
# type: () -> None
|
||||||
|
Loading…
Reference in New Issue
Block a user