From 46c2e45aa69da739dee89a97c21f20253d1f61cc Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Sat, 22 May 2021 02:16:23 +0900 Subject: [PATCH] deprecate sphinx.ext.autosummary._app --- CHANGES | 1 + doc/extdev/deprecated.rst | 5 +++++ sphinx/ext/autosummary/__init__.py | 13 +++++++++---- sphinx/util/compat.py | 7 +++++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index 6dbfe0ca3..879ae64eb 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,7 @@ Deprecated * The ``app`` argument of ``sphinx.environment.BuildEnvironment`` becomes required * ``sphinx.application.Sphinx.html_theme`` +* ``sphinx.ext.autosummary._app`` * ``sphinx.util.docstrings.extract_metadata()`` Features added diff --git a/doc/extdev/deprecated.rst b/doc/extdev/deprecated.rst index f04b738de..c35b0525b 100644 --- a/doc/extdev/deprecated.rst +++ b/doc/extdev/deprecated.rst @@ -32,6 +32,11 @@ The following is a list of deprecated interfaces. - 6.0 - ``sphinx.registry.SphinxComponentRegistry.html_themes`` + * - ``sphinx.ext.autosummary._app`` + - 4.1 + - 6.0 + - N/A + * - ``sphinx.util.docstrings.extract_metadata()`` - 4.1 - 6.0 diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py index 32f11baff..3d51beaa5 100644 --- a/sphinx/ext/autosummary/__init__.py +++ b/sphinx/ext/autosummary/__init__.py @@ -72,7 +72,8 @@ import sphinx from sphinx import addnodes from sphinx.application import Sphinx from sphinx.config import Config -from sphinx.deprecation import RemovedInSphinx50Warning +from sphinx.deprecation import (RemovedInSphinx50Warning, RemovedInSphinx60Warning, + deprecated_alias) from sphinx.environment import BuildEnvironment from sphinx.environment.adapters.toctree import TocTree from sphinx.ext.autodoc import INSTANCEATTR, Documenter @@ -165,9 +166,13 @@ def autosummary_table_visit_html(self: HTMLTranslator, node: autosummary_table) # -- autodoc integration ------------------------------------------------------- - -# current application object (used in `get_documenter()`). -_app: Sphinx = None +deprecated_alias('sphinx.ext.autosummary', + { + '_app': None, + }, + RemovedInSphinx60Warning, + { + }) class FakeApplication: diff --git a/sphinx/util/compat.py b/sphinx/util/compat.py index 9be80358e..73ca5bc27 100644 --- a/sphinx/util/compat.py +++ b/sphinx/util/compat.py @@ -25,11 +25,14 @@ def register_application_for_autosummary(app: "Sphinx") -> None: """ if 'sphinx.ext.autosummary' in sys.modules: from sphinx.ext import autosummary - autosummary._app = app + if hasattr(autosummary, '_objects'): + autosummary._objects['_app'] = app # type: ignore + else: + autosummary._app = app # type: ignore def setup(app: "Sphinx") -> Dict[str, Any]: - app.connect('builder-inited', register_application_for_autosummary) + app.connect('builder-inited', register_application_for_autosummary, priority=100) return { 'version': 'builtin',