mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Allow multiple calls to setup_extension().
This commit is contained in:
parent
9df0b1ce74
commit
965a8c1d20
@ -89,6 +89,7 @@ class Sphinx(object):
|
|||||||
confoverrides, status, warning=sys.stderr, freshenv=False,
|
confoverrides, status, warning=sys.stderr, freshenv=False,
|
||||||
warningiserror=False, tags=None):
|
warningiserror=False, tags=None):
|
||||||
self.next_listener_id = 0
|
self.next_listener_id = 0
|
||||||
|
self._extensions = {}
|
||||||
self._listeners = {}
|
self._listeners = {}
|
||||||
self.builderclasses = BUILTIN_BUILDERS.copy()
|
self.builderclasses = BUILTIN_BUILDERS.copy()
|
||||||
self.builder = None
|
self.builder = None
|
||||||
@ -190,7 +191,9 @@ class Sphinx(object):
|
|||||||
# general extensibility interface
|
# general extensibility interface
|
||||||
|
|
||||||
def setup_extension(self, extension):
|
def setup_extension(self, extension):
|
||||||
"""Import and setup a Sphinx extension module."""
|
"""Import and setup a Sphinx extension module. No-op if called twice."""
|
||||||
|
if extension in self._extensions:
|
||||||
|
return
|
||||||
try:
|
try:
|
||||||
mod = __import__(extension, None, None, ['setup'])
|
mod = __import__(extension, None, None, ['setup'])
|
||||||
except ImportError, err:
|
except ImportError, err:
|
||||||
@ -198,6 +201,7 @@ class Sphinx(object):
|
|||||||
err)
|
err)
|
||||||
if hasattr(mod, 'setup'):
|
if hasattr(mod, 'setup'):
|
||||||
mod.setup(self)
|
mod.setup(self)
|
||||||
|
self._extensions[extension] = mod
|
||||||
|
|
||||||
def import_object(self, objname, source=None):
|
def import_object(self, objname, source=None):
|
||||||
"""Import an object from a 'module.name' string."""
|
"""Import an object from a 'module.name' string."""
|
||||||
|
Loading…
Reference in New Issue
Block a user