Поздравляю всех с наступающим/наступившим новым годом!
Очередной проект на Python, включающий в себя операции с реляционными данными и API для доступа к ним, но для работы которого функционал Django избыточен, делаю на FastAPI – в этот раз с SQLModel, что объединяет модели и схемы сущностей в одном определении класса (с прямым доступом к SQLAlchemy при необходимости) и работает с валидаторами Pydantic. Заметил, что в очередной раз пишу примерно один и тот же boilerplate код для реализации CRUD-операций и накатал (пока что не очень хорошего) качества код, что работает со схемами Pydantic и моделями SQLModel, оборачивая обработчики эндпойнтов в декораторы, что исполняют сами запросы.
Погуглил альтернативы – и они есть (quickcrud, simple-crud), в связи с чем стало интересно, используют ли подобные библиотеки в продакшн и имеет ли смысл их применять. Большинство запросов так или иначе можно обернуть в Query той же SQLAlchemy и с помощью композиции добавлять во время запроса к БД; с другой стороны, явный и чистый код может быть ценнее короткого кода со стопкой декораторов над каждым обработчиком, и самому писать этот код может быть предпочтительнее.
Интересно ваше мнение, имеет ли смысл выносить свой код из проекта в отдельную библиотеку (третью или которую там по счету) и дописывать под распространенные задачи и области применения. Что бы потребовалось из минимального функционала такой библиотеке?