Как обрабатывать обратные трассировки при импорте большого количества контента с помощью 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) и просто отбрасываю потенциально плохие элементы. Я думаю, что реальное решение может состоять в том, чтобы изменить способ вызова конвейера каждым шагом, он должен отвечать за управление исключениями настраиваемым способом. Если у кого-то есть лучшее решение, мне тоже интересно.

Другие вопросы по тегам