summaryrefslogtreecommitdiff
path: root/sphinx/util/compat.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/util/compat.py')
-rw-r--r--sphinx/util/compat.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/sphinx/util/compat.py b/sphinx/util/compat.py
index edd8cac61..c6578c810 100644
--- a/sphinx/util/compat.py
+++ b/sphinx/util/compat.py
@@ -9,15 +9,18 @@
:license: BSD, see LICENSE for details.
"""
+from __future__ import absolute_import
+
+import sys
import warnings
+from typing import TYPE_CHECKING
from six import string_types, iteritems
from sphinx.deprecation import RemovedInSphinx30Warning
from sphinx.util import import_object
-if False:
- # For type annotation
+if TYPE_CHECKING:
from typing import Any, Dict # NOQA
from sphinx.application import Sphinx # NOQA
from sphinx.config import Config # NOQA
@@ -35,9 +38,24 @@ def deprecate_source_parsers(app, config):
app.add_source_parser(suffix, parser)
+def register_application_for_autosummary(app):
+ # type: (Sphinx) -> None
+ """Register application object to autosummary module.
+
+ Since Sphinx-1.7, documenters and attrgetters are registered into
+ applicaiton object. As a result, the arguments of
+ ``get_documenter()`` has been changed. To keep compatibility,
+ this handler registers application object to the module.
+ """
+ if 'sphinx.ext.autosummary' in sys.modules:
+ from sphinx.ext import autosummary
+ autosummary._app = app
+
+
def setup(app):
# type: (Sphinx) -> Dict[unicode, Any]
app.connect('config-inited', deprecate_source_parsers)
+ app.connect('builder-inited', register_application_for_autosummary)
return {
'version': 'builtin',