Ruff bad-exit-annotation (PYI036)
bad-exit-annotation в Ruff проверяет код на предупреждение PYI036. Правило относится к группе flake8-pyi.
Почему это неправильно
Файлы заглушек должны точно и компактно описывать интерфейс, иначе типизаторы будут давать неверные подсказки.
Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила bad-exit-annotation и пример ниже.
Пример ошибки
from types import TracebackType
class Foo:
def __exit__(
self, typ: BaseException, exc: BaseException, tb: TracebackType
) -> None: ...
Как правильно
from types import TracebackType
class Foo:
def __exit__(
self,
typ: type[BaseException] | None,
exc: BaseException | None,
tb: TracebackType | None,
) -> None: ...
Автоисправление
Ruff может предложить автоисправление в некоторых случаях.
