diff --git a/sphinxcontrib/versioning/sphinx_.py b/sphinxcontrib/versioning/sphinx_.py index 4fffcb114..6efe45dd0 100644 --- a/sphinxcontrib/versioning/sphinx_.py +++ b/sphinxcontrib/versioning/sphinx_.py @@ -7,6 +7,7 @@ import sys from sphinx import application, locale +from sphinx.deprecation import _ModuleWrapper from sphinx.cmd.build import build_main from sphinx.builders.html import StandaloneHTMLBuilder from sphinx.config import Config as SphinxConfig @@ -182,8 +183,13 @@ def _build(argv, config, versions, current_name, is_root): :param str current_name: The ref name of the current version being built. :param bool is_root: Is this build in the web root? """ - # Patch. - application.Config = ConfigInject + + # patch, if there are deprecations, patch hidden module object + if isinstance(application, _ModuleWrapper): + application._module.Config = ConfigInject + else: + application.Config = ConfigInject + if config.show_banner: EventHandlers.BANNER_GREATEST_TAG = config.banner_greatest_tag EventHandlers.BANNER_MAIN_VERSION = config.banner_main_ref @@ -202,7 +208,6 @@ def _build(argv, config, versions, current_name, is_root): if config.overflow: argv += config.overflow - # Build. result = build_main(argv) if result != 0: raise SphinxError