Как обрабатывать обратные трассировки при импорте большого количества контента с помощью Transmogrifier?
Иногда удобно "продолжать" при импорте большого количества контента, игнорируя трассировки и другие сбои, которые могут возникнуть с определенным контентом.
Есть ли какой-то общий механизм в Transmogrifier, чтобы сделать это проще? Единственные подходы, которые я вижу:
- Используйте только пользовательские чертежи, которые пытаются / за исключением, где это уместно
- Используйте оболочку для выполнения конвейера, который каждый раз меняет исходный вводный план на один после сбоя.
Ни один из них не кажется особенно удобным или желательным, поэтому мой вопрос.
2 ответа
Вам нужно всего лишь написать один проект, который будет обрабатывать и игнорировать все "трассировки", которые вы можете захотеть. Обязательно ставьте его сразу после "исходного" проекта и выходите в блоке try/ кроме.
...
def __call__(self):
for item in self.previous:
try:
yield item
except Exception, e
# here do with exception whatever you want
pass
Я знаю, что это не реальный обходной путь для этой (общей) проблемы, но вот мое единственное решение: я использую множество шагов конвейера, каждый из которых вносит одно, хорошо известное изменение в мои элементы. Если есть шаг, который, я боюсь, может вызвать проблемы, я добавляю шаг условия (коллективный.transmogrifier.sections.condition) и просто отбрасываю потенциально плохие элементы. Я думаю, что реальное решение может состоять в том, чтобы изменить способ вызова конвейера каждым шагом, он должен отвечать за управление исключениями настраиваемым способом. Если у кого-то есть лучшее решение, мне тоже интересно.