Код: Выделить всё
BuildableChild = TypeVar("BuildableChild", bound=Buildable)
Код: Выделить всё
class Buildable: ...
Код: Выделить всё
def do_work_on_buildable_class(
buildable: type[BuildableChild],
filter_fn: Callable[[type[BuildableChild]], bool] | None = None,
) -> list[type[BuildableChild]]:
pass
Код: Выделить всё
from collections.abc import Callable
from typing import TypeAlias, TypeVar
class Buildable: ...
BuildableChild = TypeVar("BuildableChild", bound=Buildable)
BuildableChildType: TypeAlias = type[BuildableChild]
def do_work_on_buildable_class(
buildable: BuildableChildType,
filter_fn: Callable[[BuildableChildType], bool] | None = None,
) -> list[BuildableChildType]:
pass
Код: Выделить всё
buildable: BuildableChildType,
filter_fn: Callable[[BuildableChildType], bool] | None = None,
) -> list[BuildableChildType]:
Я не думаю, что использование BuildableChildType[Any] — решение, потому что это разрушает всю идею использования псевдонима.
Я сделал также попробуйте переписать
Код: Выделить всё
BuildableChildType: TypeAlias = type[BuildableChild]
Код: Выделить всё
type BuildableChildType = type[BuildableChild]
Подробнее здесь: https://stackoverflow.com/questions/792 ... r-and-mypy
Мобильная версия