summaryrefslogtreecommitdiff
path: root/sphinx/application.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/application.py')
-rw-r--r--sphinx/application.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/sphinx/application.py b/sphinx/application.py
index 68edd588c..fe2990836 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -74,10 +74,7 @@ class Sphinx(object):
self._events = events.copy()
# read config
- self.config = Config(confdir, 'conf.py')
- if confoverrides:
- for key, val in confoverrides.items():
- setattr(self.config, key, val)
+ self.config = Config(confdir, 'conf.py', confoverrides)
# load all extension modules
for extension in self.config.extensions:
@@ -86,6 +83,9 @@ class Sphinx(object):
if self.config.setup:
self.config.setup(self)
+ # now that we know all config values, collect them from conf.py
+ self.config.init_values()
+
if buildername is None:
print >>status, 'No builder selected, using default: html'
buildername = 'html'
@@ -176,10 +176,9 @@ class Sphinx(object):
self.builderclasses[builder.name] = builder
def add_config_value(self, name, default, rebuild_env):
- if name in self.config.valuenames:
+ if name in self.config.config_values:
raise ExtensionError('Config value %r already present' % name)
- self.config.valuenames.add(name)
- self.config.__class__.config_values[name] = (default, rebuild_env)
+ self.config.config_values[name] = (default, rebuild_env)
def add_event(self, name):
if name in self._events: