Ruff non-self-return-type (PYI034)
non-self-return-type в Ruff проверяет код на предупреждение PYI034. Правило относится к группе flake8-pyi.
Почему это неправильно
Файлы заглушек должны точно и компактно описывать интерфейс, иначе типизаторы будут давать неверные подсказки.
Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила non-self-return-type и пример ниже.
Пример ошибки
class Foo:
def __new__(cls, *args: Any, **kwargs: Any) -> Foo: ...
def __enter__(self) -> Foo: ...
async def __aenter__(self) -> Foo: ...
def __iadd__(self, other: Foo) -> Foo: ...
Как правильно
from typing_extensions import Self
class Foo:
def __new__(cls, *args: Any, **kwargs: Any) -> Self: ...
def __enter__(self) -> Self: ...
async def __aenter__(self) -> Self: ...
def __iadd__(self, other: Foo) -> Self: ...
Автоисправление
Ruff может предложить автоисправление в некоторых случаях.
