From 3aa7e4105a840379ac0cf7828fc0e4edf1fa5b2c Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Sun, 24 Apr 2022 15:42:57 +0900 Subject: [PATCH] Deprecate: html5_ready and is_html5_writer_available() --- CHANGES | 2 ++ doc/extdev/deprecated.rst | 10 ++++++++++ sphinx/builders/html/__init__.py | 21 +++++++++++---------- sphinx/util/docutils.py | 8 ++++++-- 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/CHANGES b/CHANGES index 22863a017..783c4062b 100644 --- a/CHANGES +++ b/CHANGES @@ -53,6 +53,8 @@ Deprecated required * The ``language`` argument of ``sphinx.util.i18n:format_date()`` becomes required +* ``sphinx.builders.html.html5_ready`` +* ``sphinx.util.docutils.is_html5_writer_available()`` * ``sphinx.writers.latex.LaTeXWriter.docclasses`` Features added diff --git a/doc/extdev/deprecated.rst b/doc/extdev/deprecated.rst index 114c927dc..0f2d11fa2 100644 --- a/doc/extdev/deprecated.rst +++ b/doc/extdev/deprecated.rst @@ -42,6 +42,16 @@ The following is a list of deprecated interfaces. - 7.0 - N/A + * - ``sphinx.builders.html.html5_ready`` + - 5.0 + - 7.0 + - N/A + + * - ``sphinx.util.docutils.is_html5_writer_available()`` + - 5.0 + - 7.0 + - N/A + * - ``sphinx.writers.latex.LaTeXWriter.docclasses`` - 5.0 - 7.0 diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py index 3f4ea569f..f465b6fad 100644 --- a/sphinx/builders/html/__init__.py +++ b/sphinx/builders/html/__init__.py @@ -23,6 +23,7 @@ from sphinx import version_info as sphinx_version from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.config import ENUM, Config +from sphinx.deprecation import RemovedInSphinx70Warning, deprecated_alias from sphinx.domains import Domain, Index, IndexEntry from sphinx.environment.adapters.asset import ImageAdapter from sphinx.environment.adapters.indexentries import IndexEntries @@ -33,7 +34,7 @@ from sphinx.locale import _, __ from sphinx.search import js_index from sphinx.theming import HTMLThemeFactory from sphinx.util import isurl, logging, md5, progress_message, status_iterator -from sphinx.util.docutils import is_html5_writer_available, new_document +from sphinx.util.docutils import new_document from sphinx.util.fileutil import copy_asset from sphinx.util.i18n import format_date from sphinx.util.inventory import InventoryFile @@ -41,13 +42,7 @@ from sphinx.util.matching import DOTFILES, Matcher, patmatch from sphinx.util.osutil import copyfile, ensuredir, os_path, relative_uri from sphinx.util.tags import Tags from sphinx.writers.html import HTMLTranslator, HTMLWriter - -# HTML5 Writer is available or not -if is_html5_writer_available(): - from sphinx.writers.html5 import HTML5Translator - html5_ready = True -else: - html5_ready = False +from sphinx.writers.html5 import HTML5Translator #: the filename for the inventory of objects INVENTORY_FILENAME = 'objects.inv' @@ -344,7 +339,7 @@ class StandaloneHTMLBuilder(Builder): @property def default_translator_class(self) -> Type[nodes.NodeVisitor]: # type: ignore - if not html5_ready or self.config.html4_writer: + if self.config.html4_writer: return HTMLTranslator else: return HTML5Translator @@ -536,7 +531,7 @@ class StandaloneHTMLBuilder(Builder): 'parents': [], 'logo': logo, 'favicon': favicon, - 'html5_doctype': html5_ready and not self.config.html4_writer, + 'html5_doctype': not self.config.html4_writer, } if self.theme: self.globalcontext.update( @@ -1315,6 +1310,12 @@ import sphinxcontrib.serializinghtml # NOQA import sphinx.builders.dirhtml # NOQA import sphinx.builders.singlehtml # NOQA +deprecated_alias('sphinx.builders.html', + { + 'html5_ready': True, + }, + RemovedInSphinx70Warning) + def setup(app: Sphinx) -> Dict[str, Any]: # builders diff --git a/sphinx/util/docutils.py b/sphinx/util/docutils.py index bb62723b9..6c4aa7312 100644 --- a/sphinx/util/docutils.py +++ b/sphinx/util/docutils.py @@ -2,6 +2,7 @@ import os import re +import warnings from contextlib import contextmanager from copy import copy from os import path @@ -18,7 +19,8 @@ from docutils.parsers.rst.states import Inliner from docutils.statemachine import State, StateMachine, StringList from docutils.utils import Reporter, unescape -from sphinx.deprecation import RemovedInSphinx60Warning, deprecated_alias +from sphinx.deprecation import (RemovedInSphinx60Warning, RemovedInSphinx70Warning, + deprecated_alias) from sphinx.errors import SphinxError from sphinx.locale import _, __ from sphinx.util import logging @@ -318,7 +320,9 @@ class NullReporter(Reporter): def is_html5_writer_available() -> bool: - return docutils.__version_info__ > (0, 13, 0) + warnings.warn('is_html5_writer_available() is deprecated.', + RemovedInSphinx70Warning) + return True @contextmanager