diff options
| author | Georg Brandl <georg@python.org> | 2010-02-27 23:13:51 +0100 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2010-02-27 23:13:51 +0100 |
| commit | 42fc484adb89d951066b49143ce62c0264bca3f2 (patch) | |
| tree | 304ce3d473bca3a1fef38dce0dad72b55a59c381 /sphinx/application.py | |
| parent | 0b6666904b8535b1c80d75eb27fe6ca6f0ab1e89 (diff) | |
| download | sphinx-42fc484adb89d951066b49143ce62c0264bca3f2.tar.gz | |
Add app.override_domain().
Diffstat (limited to 'sphinx/application.py')
| -rw-r--r-- | sphinx/application.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sphinx/application.py b/sphinx/application.py index 7d4e3cac..860affbb 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -388,11 +388,18 @@ class Sphinx(object): roles.register_local_role(name, role) def add_domain(self, domain): - # XXX what about subclassing and overriding? if domain.name in self.domains: raise ExtensionError('domain %s already registered' % domain.name) self.domains[domain.name] = domain + def override_domain(self, domain): + if domain.name not in self.domains: + raise ExtensionError('domain %s not yet registered' % domain.name) + if not issubclass(domain, self.domains[domain.name]): + raise ExtensionError('new domain not a subclass of registered ' + 'domain' % domain.name) + self.domains[domain.name] = domain + def add_directive_to_domain(self, domain, name, obj, content=None, arguments=None, **options): if domain not in self.domains: |
