Аннотации типов Python¶
FastUI активно использует аннотации типов Python. На этой странице объясняются ключевые концепции.
Базовые типы¶
list[Component]¶
Обработчики страниц и действий возвращают список компонентов:
Тип возврата может быть list[Component] или просто list.
str | ActionHandler | None¶
Параметр on_click у Button принимает несколько типов:
# Навигация по URL (на стороне клиента)
ui.button("О нас", on_click="/about")
# Серверное действие
ui.button("Нажми", on_click=my_handler)
# Без действия
ui.button("Отключено")
Annotated[type, Doc("...")]¶
FastUI использует Annotated для документирования параметров:
from typing import Annotated
from annotated_doc import Doc
def page(
pattern: Annotated[str, Doc("URL-паттерн для сопоставления.")],
title: Annotated[str, Doc("Заголовок страницы для HTML <title>.")] = "",
) -> None: ...
Типы-протоколы¶
Component¶
Протокол Component определяет, что значит быть компонентом:
Любой объект с методом to_html(), возвращающим строку, удовлетворяет этому протоколу.
ActionHandler¶
Псевдоним типа для серверных обработчиков кликов:
Функция без аргументов, возвращающая список компонентов.
Pydantic-модели¶
Все встроенные компоненты — это BaseModel с валидацией:
Некорректные данные перехватываются на этапе создания: