Zen of Python

@zen_of_python
Опубликован черновик PEP 827 (Type Manipulation). Он предлагает добавить в Python возможности из TypeScript, чтобы не дублировать код при описании моделей. Допустим, у вас есть класс User для базы данных, где есть id, email, username и created_at. Вам нужен класс UserUpdate для API, где id и created_at менять нельзя, а остальные поля необязательны, можно обновить только email. Сейчас приходится вручную писать новый класс и дублировать поля. С PEP 827 можно будет сгенерировать его одной строкой: UserUpdate = Partial[Omit[User, "id" | "created_at"]] — Omit убирает лишние поля из базового класса — Partial делает оставшиеся необязательными — Если тип email изменится в главной модели, он автоматически обновится и в UserUpdate Вместо копипасты под каждый эндпоинт (Create, Update, Read) вы описываете одну модель и генерируете производные. И всё это работает на уровне статического анализа. Черновик нацелен на Python 3.15. @zen_of_python (теперь и в Max)
Если у вас установлено приложение,
вы можете сразу перейти в канал