2008-03-18 13:19:21 -05:00
|
|
|
.. highlight:: rest
|
|
|
|
|
2014-01-20 10:21:44 -06:00
|
|
|
Application API
|
|
|
|
===============
|
|
|
|
|
|
|
|
.. module:: sphinx.application
|
|
|
|
:synopsis: Application class and extensibility interface.
|
2008-03-12 16:37:22 -05:00
|
|
|
|
2008-04-13 13:16:55 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
Each Sphinx extension is a Python module with at least a :func:`setup`
|
|
|
|
function. This function is called at initialization time with one argument,
|
|
|
|
the application object representing the Sphinx process.
|
2014-01-20 10:21:44 -06:00
|
|
|
|
|
|
|
.. class:: Sphinx
|
|
|
|
|
|
|
|
This application object has the public API described in the following.
|
|
|
|
|
|
|
|
Extension setup
|
|
|
|
---------------
|
|
|
|
|
|
|
|
These methods are usually called in an extension's ``setup()`` function.
|
|
|
|
|
|
|
|
Examples of using the Sphinx extension API can be seen in the :mod:`sphinx.ext`
|
|
|
|
package.
|
2008-03-12 16:37:22 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. currentmodule:: sphinx.application
|
2009-01-10 15:18:18 -06:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.setup_extension(name)
|
2008-08-05 05:25:40 -05:00
|
|
|
|
2018-01-21 04:55:30 -06:00
|
|
|
.. automethod:: Sphinx.require_sphinx(version)
|
2008-08-05 05:25:40 -05:00
|
|
|
|
2018-01-21 04:55:30 -06:00
|
|
|
.. automethod:: Sphinx.connect(event, callback)
|
2008-08-05 05:25:40 -05:00
|
|
|
|
2018-01-21 04:55:30 -06:00
|
|
|
.. automethod:: Sphinx.disconnect(listener_id)
|
2018-01-20 16:47:42 -06:00
|
|
|
|
2018-01-21 04:55:30 -06:00
|
|
|
.. automethod:: Sphinx.add_builder(builder)
|
2016-02-13 09:38:27 -06:00
|
|
|
|
2018-01-21 04:55:30 -06:00
|
|
|
.. automethod:: Sphinx.add_config_value(name, default, rebuild)
|
2016-02-13 09:38:27 -06:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_event(name)
|
2016-02-13 09:38:27 -06:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.set_translator(name, translator_class)
|
2016-02-13 06:22:21 -06:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_node(node, \*\*kwds)
|
2016-02-13 06:22:21 -06:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_enumerable_node(node, figtype, title_getter=None, \*\*kwds)
|
2016-02-13 06:22:21 -06:00
|
|
|
|
2018-01-20 16:47:42 -06:00
|
|
|
.. method:: Sphinx.add_directive(name, func, content, arguments, \*\*options)
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_directive(name, directiveclass)
|
2008-05-24 13:03:56 -05:00
|
|
|
|
2018-01-21 04:55:30 -06:00
|
|
|
.. automethod:: Sphinx.add_role(name, role)
|
|
|
|
|
|
|
|
.. automethod:: Sphinx.add_generic_role(name, nodeclass)
|
|
|
|
|
|
|
|
.. automethod:: Sphinx.add_domain(domain)
|
|
|
|
|
|
|
|
.. automethod:: Sphinx.override_domain(domain)
|
|
|
|
|
2018-01-20 16:47:42 -06:00
|
|
|
.. method:: Sphinx.add_directive_to_domain(domain, name, func, content, arguments, \*\*options)
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_directive_to_domain(domain, name, directiveclass)
|
2008-03-18 13:19:21 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_role_to_domain(domain, name, role)
|
2008-03-18 13:19:21 -05:00
|
|
|
|
2018-01-21 04:55:30 -06:00
|
|
|
.. automethod:: Sphinx.add_index_to_domain(domain, index)
|
2008-03-18 13:19:21 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_object_type(directivename, rolename, indextemplate='', parse_node=None, ref_nodeclass=None, objname='', doc_field_types=[])
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_crossref_type(directivename, rolename, indextemplate='', ref_nodeclass=None, objname='')
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_transform(transform)
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_post_transform(transform)
|
2008-03-12 16:37:22 -05:00
|
|
|
|
2018-05-22 10:37:54 -05:00
|
|
|
.. automethod:: Sphinx.add_js_file(filename, **kwargs)
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2018-05-24 09:55:12 -05:00
|
|
|
.. automethod:: Sphinx.add_css_file(filename, **kwargs)
|
2009-10-27 13:58:40 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_latex_package(packagename, options=None)
|
2018-01-20 16:47:42 -06:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_lexer(alias, lexer)
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_autodocumenter(cls)
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_autodoc_attrgetter(type, getter)
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_search_language(cls)
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2018-02-11 06:13:32 -06:00
|
|
|
.. automethod:: Sphinx.add_source_suffix(suffix, filetype)
|
|
|
|
|
|
|
|
.. automethod:: Sphinx.add_source_parser(parser)
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: Sphinx.add_env_collector(collector)
|
2008-03-28 13:45:32 -05:00
|
|
|
|
2018-01-21 04:55:30 -06:00
|
|
|
.. automethod:: Sphinx.add_html_theme(name, theme_path)
|
2014-01-20 10:21:44 -06:00
|
|
|
|
2018-05-16 10:57:09 -05:00
|
|
|
.. automethod:: Sphinx.add_html_math_renderer(name, inline_renderers, block_renderers)
|
|
|
|
|
2018-02-25 06:41:39 -06:00
|
|
|
.. automethod:: Sphinx.add_message_catalog(catalog, locale_dir)
|
|
|
|
|
2018-01-21 04:57:24 -06:00
|
|
|
.. automethod:: Sphinx.is_parallel_allowed(typ)
|
|
|
|
|
2014-01-20 10:21:44 -06:00
|
|
|
.. exception:: ExtensionError
|
|
|
|
|
|
|
|
All these methods raise this exception if something went wrong with the
|
|
|
|
extension API.
|
|
|
|
|
|
|
|
|
|
|
|
Emitting events
|
|
|
|
---------------
|
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. class:: Sphinx
|
2008-08-04 04:54:45 -05:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: emit(event, \*arguments)
|
2018-01-20 16:47:42 -06:00
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. automethod:: emit_firstresult(event, \*arguments)
|
2008-03-12 16:37:22 -05:00
|
|
|
|
2010-01-17 11:24:35 -06:00
|
|
|
|
2017-07-15 11:48:09 -05:00
|
|
|
Sphinx runtime information
|
|
|
|
--------------------------
|
|
|
|
|
|
|
|
The application object also provides runtime information as attributes.
|
|
|
|
|
2018-01-18 03:23:57 -06:00
|
|
|
.. attribute:: Sphinx.project
|
|
|
|
|
|
|
|
Target project. See :class:`.Project`.
|
|
|
|
|
2018-06-05 08:57:04 -05:00
|
|
|
.. attribute:: Sphinx.srcdir
|
2017-07-15 11:48:09 -05:00
|
|
|
|
|
|
|
Source directory.
|
|
|
|
|
2018-06-05 08:57:04 -05:00
|
|
|
.. attribute:: Sphinx.confdir
|
2017-07-15 11:48:09 -05:00
|
|
|
|
|
|
|
Directory containing ``conf.py``.
|
|
|
|
|
2018-06-05 08:57:04 -05:00
|
|
|
.. attribute:: Sphinx.doctreedir
|
2017-07-15 11:48:09 -05:00
|
|
|
|
|
|
|
Directory for storing pickled doctrees.
|
|
|
|
|
2018-06-05 08:57:04 -05:00
|
|
|
.. attribute:: Sphinx.outdir
|
2017-07-15 11:48:09 -05:00
|
|
|
|
|
|
|
Directory for storing built document.
|
|
|
|
|
|
|
|
|
2008-03-12 16:37:22 -05:00
|
|
|
.. _events:
|
|
|
|
|
|
|
|
Sphinx core events
|
|
|
|
------------------
|
|
|
|
|
2008-06-22 16:02:50 -05:00
|
|
|
These events are known to the core. The arguments shown are given to the
|
2019-03-09 01:46:41 -06:00
|
|
|
registered event handlers. Use :meth:`.Sphinx.connect` in an extension's ``setup``
|
2014-03-26 01:30:48 -05:00
|
|
|
function (note that ``conf.py`` can also have a ``setup`` function) to connect
|
|
|
|
handlers to the events. Example:
|
|
|
|
|
|
|
|
.. code-block:: python
|
|
|
|
|
|
|
|
def source_read_handler(app, docname, source):
|
|
|
|
print('do something here...')
|
|
|
|
|
|
|
|
def setup(app):
|
|
|
|
app.connect('source-read', source_read_handler)
|
|
|
|
|
2008-05-31 11:14:36 -05:00
|
|
|
|
2008-06-22 16:02:50 -05:00
|
|
|
.. event:: builder-inited (app)
|
2008-05-31 11:14:36 -05:00
|
|
|
|
2008-08-04 04:54:45 -05:00
|
|
|
Emitted when the builder object has been created. It is available as
|
|
|
|
``app.builder``.
|
2008-05-31 11:14:36 -05:00
|
|
|
|
2018-01-20 06:09:12 -06:00
|
|
|
.. event:: config-inited (app, config)
|
|
|
|
|
|
|
|
Emitted when the config object has been initialized.
|
|
|
|
|
|
|
|
.. versionadded:: 1.8
|
|
|
|
|
2011-01-07 09:41:44 -06:00
|
|
|
.. event:: env-get-outdated (app, env, added, changed, removed)
|
|
|
|
|
|
|
|
Emitted when the environment determines which source files have changed and
|
|
|
|
should be re-read. *added*, *changed* and *removed* are sets of docnames
|
|
|
|
that the environment has determined. You can return a list of docnames to
|
|
|
|
re-read in addition to these.
|
|
|
|
|
|
|
|
.. versionadded:: 1.1
|
|
|
|
|
2008-11-09 04:56:40 -06:00
|
|
|
.. event:: env-purge-doc (app, env, docname)
|
|
|
|
|
|
|
|
Emitted when all traces of a source file should be cleaned from the
|
|
|
|
environment, that is, if the source file is removed or before it is freshly
|
|
|
|
read. This is for extensions that keep their own caches in attributes of the
|
|
|
|
environment.
|
|
|
|
|
|
|
|
For example, there is a cache of all modules on the environment. When a
|
|
|
|
source file has been changed, the cache's entries for the file are cleared,
|
|
|
|
since the module declarations could have been removed from the file.
|
|
|
|
|
|
|
|
.. versionadded:: 0.5
|
2009-01-10 15:18:18 -06:00
|
|
|
|
2014-09-22 02:13:44 -05:00
|
|
|
.. event:: env-before-read-docs (app, env, docnames)
|
2014-07-31 11:28:47 -05:00
|
|
|
|
2014-09-22 02:13:44 -05:00
|
|
|
Emitted after the environment has determined the list of all added and
|
|
|
|
changed files and just before it reads them. It allows extension authors to
|
|
|
|
reorder the list of docnames (*inplace*) before processing, or add more
|
2014-09-22 07:51:47 -05:00
|
|
|
docnames that Sphinx did not consider changed (but never add any docnames
|
|
|
|
that are not in ``env.found_docs``).
|
2014-07-31 11:28:47 -05:00
|
|
|
|
2014-09-22 02:13:44 -05:00
|
|
|
You can also remove document names; do this with caution since it will make
|
|
|
|
Sphinx treat changed files as unchanged.
|
|
|
|
|
|
|
|
.. versionadded:: 1.3
|
2014-07-31 11:28:47 -05:00
|
|
|
|
2008-10-16 14:04:45 -05:00
|
|
|
.. event:: source-read (app, docname, source)
|
|
|
|
|
|
|
|
Emitted when a source file has been read. The *source* argument is a list
|
|
|
|
whose single element is the contents of the source file. You can process the
|
|
|
|
contents and replace this item to implement source-level transformations.
|
|
|
|
|
2008-11-09 04:56:40 -06:00
|
|
|
For example, if you want to use ``$`` signs to delimit inline math, like in
|
|
|
|
LaTeX, you can use a regular expression to replace ``$...$`` by
|
|
|
|
``:math:`...```.
|
|
|
|
|
2008-10-16 14:04:45 -05:00
|
|
|
.. versionadded:: 0.5
|
2009-01-10 15:18:18 -06:00
|
|
|
|
2008-06-22 16:02:50 -05:00
|
|
|
.. event:: doctree-read (app, doctree)
|
2008-05-31 11:14:36 -05:00
|
|
|
|
|
|
|
Emitted when a doctree has been parsed and read by the environment, and is
|
2008-08-04 04:54:45 -05:00
|
|
|
about to be pickled. The *doctree* can be modified in-place.
|
|
|
|
|
|
|
|
.. event:: missing-reference (app, env, node, contnode)
|
2008-05-31 11:14:36 -05:00
|
|
|
|
2008-08-04 04:54:45 -05:00
|
|
|
Emitted when a cross-reference to a Python module or object cannot be
|
|
|
|
resolved. If the event handler can resolve the reference, it should return a
|
|
|
|
new docutils node to be inserted in the document tree in place of the node
|
|
|
|
*node*. Usually this node is a :class:`reference` node containing *contnode*
|
|
|
|
as a child.
|
|
|
|
|
|
|
|
:param env: The build environment (``app.builder.env``).
|
|
|
|
:param node: The :class:`pending_xref` node to be resolved. Its attributes
|
|
|
|
``reftype``, ``reftarget``, ``modname`` and ``classname`` attributes
|
|
|
|
determine the type and target of the reference.
|
|
|
|
:param contnode: The node that carries the text and formatting inside the
|
|
|
|
future reference and should be a child of the returned reference node.
|
|
|
|
|
|
|
|
.. versionadded:: 0.5
|
2009-01-10 15:18:18 -06:00
|
|
|
|
2008-06-22 16:02:50 -05:00
|
|
|
.. event:: doctree-resolved (app, doctree, docname)
|
2008-05-31 11:14:36 -05:00
|
|
|
|
|
|
|
Emitted when a doctree has been "resolved" by the environment, that is, all
|
2008-11-09 04:56:40 -06:00
|
|
|
references have been resolved and TOCs have been inserted. The *doctree* can
|
|
|
|
be modified in place.
|
|
|
|
|
|
|
|
Here is the place to replace custom nodes that don't have visitor methods in
|
|
|
|
the writers, so that they don't cause errors when the writers encounter them.
|
2008-08-04 04:54:45 -05:00
|
|
|
|
2018-05-28 07:38:16 -05:00
|
|
|
.. event:: env-merge-info (app, env, docnames, other)
|
2014-09-22 14:55:11 -05:00
|
|
|
|
|
|
|
This event is only emitted when parallel reading of documents is enabled. It
|
|
|
|
is emitted once for every subprocess that has read some documents.
|
|
|
|
|
|
|
|
You must handle this event in an extension that stores data in the
|
|
|
|
environment in a custom location. Otherwise the environment in the main
|
|
|
|
process will not be aware of the information stored in the subprocess.
|
|
|
|
|
|
|
|
*other* is the environment object from the subprocess, *env* is the
|
|
|
|
environment from the main process. *docnames* is a set of document names
|
|
|
|
that have been read in the subprocess.
|
|
|
|
|
|
|
|
For a sample of how to deal with this event, look at the standard
|
2014-09-22 15:05:03 -05:00
|
|
|
``sphinx.ext.todo`` extension. The implementation is often similar to that
|
|
|
|
of :event:`env-purge-doc`, only that information is not removed, but added to
|
|
|
|
the main environment from the other environment.
|
2014-09-22 14:55:11 -05:00
|
|
|
|
|
|
|
.. versionadded:: 1.3
|
|
|
|
|
2008-08-04 04:54:45 -05:00
|
|
|
.. event:: env-updated (app, env)
|
|
|
|
|
|
|
|
Emitted when the :meth:`update` method of the build environment has
|
|
|
|
completed, that is, the environment and all doctrees are now up-to-date.
|
2008-05-31 11:14:36 -05:00
|
|
|
|
2015-01-25 09:13:04 -06:00
|
|
|
You can return an iterable of docnames from the handler. These documents
|
|
|
|
will then be considered updated, and will be (re-)written during the writing
|
|
|
|
phase.
|
|
|
|
|
2008-08-04 04:54:45 -05:00
|
|
|
.. versionadded:: 0.5
|
2009-01-10 15:18:18 -06:00
|
|
|
|
2015-01-25 09:13:04 -06:00
|
|
|
.. versionchanged:: 1.3
|
|
|
|
The handlers' return value is now used.
|
|
|
|
|
2018-05-28 07:38:16 -05:00
|
|
|
.. event:: env-check-consistency (app, env)
|
2017-04-29 03:45:41 -05:00
|
|
|
|
2018-01-20 06:09:47 -06:00
|
|
|
Emitted when Consistency checks phase. You can check consistency of
|
2017-04-29 03:45:41 -05:00
|
|
|
metadata for whole of documents.
|
|
|
|
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
2017-05-07 02:13:19 -05:00
|
|
|
As a **experimental** event
|
|
|
|
|
2010-01-13 16:42:58 -06:00
|
|
|
.. event:: html-collect-pages (app)
|
|
|
|
|
|
|
|
Emitted when the HTML builder is starting to write non-document pages. You
|
|
|
|
can add pages to write by returning an iterable from this event consisting of
|
|
|
|
``(pagename, context, templatename)``.
|
|
|
|
|
|
|
|
.. versionadded:: 1.0
|
|
|
|
|
|
|
|
.. event:: html-page-context (app, pagename, templatename, context, doctree)
|
2008-05-31 11:14:36 -05:00
|
|
|
|
|
|
|
Emitted when the HTML builder has created a context dictionary to render a
|
|
|
|
template with -- this can be used to add custom elements to the context.
|
|
|
|
|
|
|
|
The *pagename* argument is the canonical name of the page being rendered,
|
|
|
|
that is, without ``.html`` suffix and using slashes as path separators. The
|
|
|
|
*templatename* is the name of the template to render, this will be
|
|
|
|
``'page.html'`` for all pages from reST documents.
|
|
|
|
|
|
|
|
The *context* argument is a dictionary of values that are given to the
|
|
|
|
template engine to render the page and can be modified to include custom
|
|
|
|
values. Keys must be strings.
|
|
|
|
|
|
|
|
The *doctree* argument will be a doctree when the page is created from a reST
|
|
|
|
documents; it will be ``None`` when the page is created from an HTML template
|
|
|
|
alone.
|
|
|
|
|
2014-10-23 00:58:23 -05:00
|
|
|
You can return a string from the handler, it will then replace
|
|
|
|
``'page.html'`` as the HTML template for this page.
|
|
|
|
|
2008-05-31 11:14:36 -05:00
|
|
|
.. versionadded:: 0.4
|
|
|
|
|
2014-10-23 00:58:23 -05:00
|
|
|
.. versionchanged:: 1.3
|
|
|
|
The return value can now specify a template name.
|
|
|
|
|
2008-08-06 08:04:14 -05:00
|
|
|
.. event:: build-finished (app, exception)
|
|
|
|
|
|
|
|
Emitted when a build has finished, before Sphinx exits, usually used for
|
|
|
|
cleanup. This event is emitted even when the build process raised an
|
|
|
|
exception, given as the *exception* argument. The exception is reraised in
|
|
|
|
the application after the event handlers have run. If the build process
|
|
|
|
raised no exception, *exception* will be ``None``. This allows to customize
|
|
|
|
cleanup actions depending on the exception status.
|
|
|
|
|
|
|
|
.. versionadded:: 0.5
|
2009-01-10 15:18:18 -06:00
|
|
|
|
2008-04-13 13:16:55 -05:00
|
|
|
|
2013-10-12 13:48:03 -05:00
|
|
|
Checking the Sphinx version
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
.. currentmodule:: sphinx
|
|
|
|
|
|
|
|
Use this to adapt your extension to API changes in Sphinx.
|
|
|
|
|
2017-10-22 08:59:09 -05:00
|
|
|
.. autodata:: version_info
|
2013-10-12 13:48:03 -05:00
|
|
|
|
|
|
|
|
2014-01-20 10:21:44 -06:00
|
|
|
The Config object
|
|
|
|
-----------------
|
2008-04-13 13:16:55 -05:00
|
|
|
|
2017-12-04 14:30:23 -06:00
|
|
|
.. currentmodule:: sphinx.config
|
2013-10-12 14:01:25 -05:00
|
|
|
|
2017-12-04 14:30:23 -06:00
|
|
|
.. autoclass:: Config
|
2010-02-28 07:45:43 -06:00
|
|
|
|
|
|
|
|
2014-01-20 10:21:44 -06:00
|
|
|
.. _template-bridge:
|
2010-02-28 07:45:43 -06:00
|
|
|
|
2014-01-20 10:21:44 -06:00
|
|
|
The template bridge
|
|
|
|
-------------------
|
2010-02-28 07:45:43 -06:00
|
|
|
|
2014-01-20 10:21:44 -06:00
|
|
|
.. currentmodule:: sphinx.application
|
2010-02-28 07:45:43 -06:00
|
|
|
|
2014-01-20 10:21:44 -06:00
|
|
|
.. autoclass:: TemplateBridge
|
2010-02-28 07:45:43 -06:00
|
|
|
:members:
|
2014-01-21 02:54:31 -06:00
|
|
|
|
|
|
|
|
|
|
|
.. _exceptions:
|
|
|
|
|
|
|
|
Exceptions
|
|
|
|
----------
|
|
|
|
|
|
|
|
.. module:: sphinx.errors
|
|
|
|
|
2017-12-03 14:07:06 -06:00
|
|
|
.. autoexception:: SphinxError
|
2014-01-21 02:54:31 -06:00
|
|
|
|
2017-12-03 14:07:06 -06:00
|
|
|
.. autoexception:: ConfigError
|
2014-01-21 02:54:31 -06:00
|
|
|
|
2017-12-03 14:07:06 -06:00
|
|
|
.. autoexception:: ExtensionError
|
2014-01-21 02:54:31 -06:00
|
|
|
|
2017-12-03 14:07:06 -06:00
|
|
|
.. autoexception:: ThemeError
|
2014-01-21 02:54:31 -06:00
|
|
|
|
2017-12-03 14:07:06 -06:00
|
|
|
.. autoexception:: VersionRequirementError
|