generate_mapping() раньше времени, вызывайте этот метод уже после того как все нужные сущности импортированы. Наверняка в программе есть какой-то блок вида:if __name__ == "__main__":
import settings
# прочитать настройки, сконфигурировать логи, запустить основной цикл программы
...generate_mapping(), так обычно удобнее всего.generate_mapping() - это сигнал для Пони, что все нужные сущности уже определены. То что generate_mapping() нельзя вызывать повторно, является ограничением только в том случае, если нужно динамически создавать сущности без перезагрузки программы, а это обычно не требуется.