Как обрабатывать трассировки при импорте большого количества контента с помощью Transmogrifier? - PullRequest
2 голосов
/ 31 июля 2011

Иногда удобно «продолжать работу» при импорте большого количества контента, игнорируя трассировки и другие сбои, которые могут возникнуть с определенным контентом.

Есть ли в Transmogrifier какой-либо универсальный механизм, облегчающий эту задачу?Единственные подходы, которые я вижу:

  • Использовать только пользовательские чертежи, которые пробуют / исключают, где это уместно.
  • Используйте оболочку для выполнения конвейера, который изменяет исходный входной план проекта на единицу.каждый раз после неудачи.

Ничто из этого не кажется особенно удобным или желательным, поэтому мой вопрос.

Ответы [ 2 ]

4 голосов
/ 31 июля 2011

вам нужно только написать один проект, который будет обрабатывать и игнорировать все «трассировки», которые вы можете захотеть. Обязательно ставьте его сразу после «исходного» плана и выходите в блоке try / Кроме.

...

def __call__(self):
    for item in self.previous:
        try:
            yield item
    except Exception, e
        # here do with exception whatever you want
        pass
1 голос
/ 31 июля 2011

Я знаю, что это не реальный обходной путь для этой (общей) проблемы, но вот мое единственное решение: я использую множество шагов конвейера, каждый из которых вносит одно, хорошо известное изменение в мои элементы.Если есть шаг, который, я боюсь, может вызвать проблемы, я добавляю шаг условия (коллективный.transmogrifier.sections.condition) и просто отбрасываю потенциально плохие элементы.Я думаю, что реальное решение может состоять в том, чтобы изменить способ, которым исполнитель конвейера вызывает каждый шаг, он должен отвечать за управление исключениями настраиваемым способом.Если у кого-то есть лучшее решение, я тоже заинтересован.

...