Почему не pydantic (не в сравнении с чем-то, а просто минусы с которыми сталкивался):
- Нет computed fields (но есть PR, который уже очень близок к мержу, если уже не вмержен)
- Нельзя конфигурировать многие вещи на уровне моделей, например какие поля должны быть исключены из результата .dict() и т. п., из-за этого приходится под одни и те же данные клипать несколько моделей с разным набором полей (PR, который добавляет возможность исключать поля через схему уже вмержен, но релиза ещё нет)
- Нет «лёгких» неизменяемых моделей, которые использовали бы слоты для всех полей. Но мне такое только однажды пригодилось в проде.
- Нестрогость по-умолчанию: “1” — это валидный bool, 1 — валидный float, 1.4 — валидный int и т. п. (где-то мог наврать в примерах)