From 20dcc9e624e495f7c46282bc18344fb1e497d1f6 Mon Sep 17 00:00:00 2001 From: David Smith Date: Tue, 24 Oct 2023 19:14:21 +0100 Subject: [PATCH] Used sys.version_info for Python version checks. Mypy understands the use of sys.version_info within if/elif/else statments. See https://mypy.readthedocs.io/en/stable/common_issues.html#python-version-and-system-platform-checks This allows for the removal of some # type: ignore comments. --- 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 8b26d9d2e90..ee237ae15c0 100644 --- a/sphinx/cmd/make_mode.py +++ b/sphinx/cmd/make_mode.py @@ -25,9 +25,9 @@ ) 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 405ca5e8deb..92443d289a0 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.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 171420df58b..91fa49c5bf8 100644 --- a/sphinx/util/typing.py +++ b/sphinx/util/typing.py @@ -15,9 +15,9 @@ 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__