From 2a589c09b2a2f6c17f86dd6ed7db0614af131153 Mon Sep 17 00:00:00 2001 From: David Smith <39445562+smithdc1@users.noreply.github.com> Date: Tue, 26 Dec 2023 06:33:22 +0000 Subject: [PATCH] Prefer ``sys.version_info`` for feature checks (#11736) --- sphinx/cmd/make_mode.py | 6 +++--- sphinx/config.py | 7 ++++--- sphinx/util/typing.py | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/sphinx/cmd/make_mode.py b/sphinx/cmd/make_mode.py index 8b26d9d2e..ee237ae15 100644 --- a/sphinx/cmd/make_mode.py +++ b/sphinx/cmd/make_mode.py @@ -25,9 +25,9 @@ from sphinx.util.console import ( # type: ignore[attr-defined] ) from sphinx.util.osutil import rmtree -try: - from contextlib import chdir # type: ignore[attr-defined] -except ImportError: +if sys.version_info >= (3, 11): + from contextlib import chdir +else: from sphinx.util.osutil import _chdir as chdir if TYPE_CHECKING: diff --git a/sphinx/config.py b/sphinx/config.py index 405ca5e8d..92443d289 100644 --- a/sphinx/config.py +++ b/sphinx/config.py @@ -2,6 +2,7 @@ from __future__ import annotations +import sys import time import traceback import types @@ -14,9 +15,9 @@ from sphinx.util import logging from sphinx.util.osutil import fs_encoding from sphinx.util.typing import NoneType -try: - from contextlib import chdir # type: ignore[attr-defined] -except ImportError: +if sys.version_info >= (3, 11): + from contextlib import chdir +else: from sphinx.util.osutil import _chdir as chdir if TYPE_CHECKING: diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py index 955ad4a35..ae664cecb 100644 --- a/sphinx/util/typing.py +++ b/sphinx/util/typing.py @@ -15,9 +15,9 @@ from docutils.parsers.rst.states import Inliner if TYPE_CHECKING: import enum -try: - from types import UnionType # type: ignore[attr-defined] # python 3.10 or above -except ImportError: +if sys.version_info >= (3, 10): + from types import UnionType +else: UnionType = None # classes that have incorrect __module__