смотри,
1. чтобы сделать create_engine, тебе нужны параметры доступа к базе
2. чтобы получить параметры доступа к базе, тебе надо распарсить параметры командной строки или прочиатть конфиг или хз что о чем знает только мейн
3. чтобы мейн это сделал его надо запустить
4. чтобы запустить мейн, он уже должен все импортировать
А как в этом случае правильно разделить конфиг на продакшен, дев и тестинг?
Приемлемо будет написать функцию, который смотрит на переменную окружения env и в зависимости от нее выдет класс конфига?
Потом этот класс передается в create_app и далее в config.from_object?