diff --git a/pytools/tag.py b/pytools/tag.py index 2868c4b162a9dbadc1e2011c2716bedb9238794b..8954aab7141c1a0eb1f3a8a6ffa4d8666dc46533 100644 --- a/pytools/tag.py +++ b/pytools/tag.py @@ -40,10 +40,16 @@ from typing import ( from warnings import warn -try: - from typing import Self, dataclass_transform -except ImportError: +if TYPE_CHECKING: + # NOTE: mypy seems to be confused by the `try.. except` below when called with + # python -m mypy --python-version 3.8 ... + # see https://github.com/python/mypy/issues/14220 from typing_extensions import Self, dataclass_transform +else: + try: + from typing import Self, dataclass_transform + except ImportError: + from typing_extensions import Self, dataclass_transform from pytools import memoize, memoize_method