From 6cc1b8441c0cf7428e52bdf1cd541ea830a4eb83 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Tue, 14 Sep 2021 01:21:54 -0400 Subject: [PATCH] mark a couple of typing-only imports as noqa, to appease pyflakes Since it cannot resolve `import typing as T` in order to figure out that T.* is doing annotation-worthy stuff. Since T.cast('Foo') is not actually using Foo except in an annotation context (due to being a string) it requires extra work to resolve, and the only thing that would currently work is actually using 'typing.cast'. However, we have decided to not use it except as T... Since this import is only imported during mypy it's not so bad to noqa it. --- mesonbuild/interpreterbase/interpreterbase.py | 4 +++- mesonbuild/mlog.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mesonbuild/interpreterbase/interpreterbase.py b/mesonbuild/interpreterbase/interpreterbase.py index 3d419d436..6e942b71a 100644 --- a/mesonbuild/interpreterbase/interpreterbase.py +++ b/mesonbuild/interpreterbase/interpreterbase.py @@ -54,7 +54,9 @@ import textwrap from functools import wraps if T.TYPE_CHECKING: - from ..interpreter import Interpreter + # T.cast is not handled by flake8 to detect quoted annotation use + # see https://github.com/PyCQA/pyflakes/pull/632 + from ..interpreter import Interpreter # noqa HolderMapType = T.Dict[ T.Union[ diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py index 06d8a0b49..da9e2a53a 100644 --- a/mesonbuild/mlog.py +++ b/mesonbuild/mlog.py @@ -22,7 +22,9 @@ from contextlib import contextmanager from pathlib import Path if T.TYPE_CHECKING: - from ._typing import StringProtocol, SizedStringProtocol + # T.Union is not handled by flake8 to detect quoted annotation use (StringProtocol) + # see https://github.com/PyCQA/pyflakes/pull/632 + from ._typing import StringProtocol, SizedStringProtocol # noqa: F401 """This is (mostly) a standalone module used to write logging information about Meson runs. Some output goes to screen,