diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-11-07 20:04:16 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-11-07 20:15:07 +0900 |
commit | ee1cae8c1c2c0e3df9cd2343c32c83ad6142aaca (patch) | |
tree | 532f34428f26a8b7ca4a7f75474a7877f47bf00d | |
parent | 8e350495b08fe5b06099ff85e3177ebd250e9181 (diff) | |
download | sphinx-git-ee1cae8c1c2c0e3df9cd2343c32c83ad6142aaca.tar.gz |
Replace distutils.versions.LooseVersion by packaging.version.Version
Distutils module are now deprecated and will be removed in Python 3.12.
This replaces it by packaging module and reduces the dependency to it.
refs: #9820
-rw-r--r-- | sphinx/highlighting.py | 4 | ||||
-rw-r--r-- | sphinx/util/docutils.py | 4 | ||||
-rw-r--r-- | tests/test_build_html.py | 11 |
3 files changed, 10 insertions, 9 deletions
diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py index 329561df0..addd0d45c 100644 --- a/sphinx/highlighting.py +++ b/sphinx/highlighting.py @@ -8,11 +8,11 @@ :license: BSD, see LICENSE for details. """ -from distutils.version import LooseVersion from functools import partial from importlib import import_module from typing import Any, Dict +from packaging import version from pygments import __version__ as pygmentsversion from pygments import highlight from pygments.filters import ErrorToken @@ -64,7 +64,7 @@ _LATEX_ADD_STYLES_FIXPYG = r''' {\let\fcolorbox\spx@fixpyg@fcolorbox\PYG@do{#2}}} \makeatother ''' -if tuple(LooseVersion(pygmentsversion).version) <= (2, 7, 4): +if version.parse(pygmentsversion).release <= (2, 7, 4): _LATEX_ADD_STYLES += _LATEX_ADD_STYLES_FIXPYG diff --git a/sphinx/util/docutils.py b/sphinx/util/docutils.py index 047a0faa6..c3d385306 100644 --- a/sphinx/util/docutils.py +++ b/sphinx/util/docutils.py @@ -12,7 +12,6 @@ import os import re from contextlib import contextmanager from copy import copy -from distutils.version import LooseVersion from os import path from types import ModuleType from typing import (IO, TYPE_CHECKING, Any, Callable, Dict, Generator, List, Optional, Set, @@ -26,6 +25,7 @@ from docutils.parsers.rst import Directive, directives, roles from docutils.parsers.rst.states import Inliner from docutils.statemachine import State, StateMachine, StringList from docutils.utils import Reporter, unescape +from packaging import version from sphinx.errors import SphinxError from sphinx.locale import _ @@ -41,7 +41,7 @@ if TYPE_CHECKING: from sphinx.environment import BuildEnvironment -__version_info__ = tuple(LooseVersion(docutils.__version__).version) +__version_info__ = version.parse(docutils.__version__).release additional_nodes: Set[Type[Element]] = set() diff --git a/tests/test_build_html.py b/tests/test_build_html.py index 2e9a43f51..106ad0470 100644 --- a/tests/test_build_html.py +++ b/tests/test_build_html.py @@ -10,13 +10,13 @@ import os import re -from distutils.version import LooseVersion from itertools import chain, cycle from unittest.mock import ANY, call, patch import pygments import pytest from html5lib import HTMLParser +from packaging import version from sphinx.builders.html import validate_html_extra_path, validate_html_static_path from sphinx.errors import ConfigError @@ -30,6 +30,9 @@ else: FIGURE_CAPTION = ".//figure/figcaption/p" +PYGMENTS_VERSION = version.parse(pygments.__version__).release + + ENV_WARNINGS = """\ %(root)s/autodoc_fodder.py:docstring of autodoc_fodder.MarkupError:\\d+: \ WARNING: Explicit markup ends without a blank line; unexpected unindent. @@ -1576,8 +1579,7 @@ def test_html_codeblock_linenos_style_table(app): app.build() content = (app.outdir / 'index.html').read_text() - pygments_version = tuple(LooseVersion(pygments.__version__).version) - if pygments_version >= (2, 8): + if PYGMENTS_VERSION >= (2, 8): assert ('<div class="linenodiv"><pre><span class="normal">1</span>\n' '<span class="normal">2</span>\n' '<span class="normal">3</span>\n' @@ -1592,8 +1594,7 @@ def test_html_codeblock_linenos_style_inline(app): app.build() content = (app.outdir / 'index.html').read_text() - pygments_version = tuple(LooseVersion(pygments.__version__).version) - if pygments_version > (2, 7): + if PYGMENTS_VERSION > (2, 7): assert '<span class="linenos">1</span>' in content else: assert '<span class="lineno">1 </span>' in content |