2

有时在导入大量内容时“继续”很方便,忽略某些内容可能出现的回溯和其他故障。

Transmogrifier 中是否有任何通用机制可以使这更容易?我能看到的唯一方法是:

  • 仅使用在适当情况下尝试/除外的自定义蓝图。
  • 使用包装器执行将源蓝图输入更改为每次失败后的管道。

这些都不是特别方便或可取的,因此我的问题。

4

2 回答 2

4

您只需要编写一个蓝图来处理和忽略您可能想要的所有“回溯”。确保将其放在“源”蓝图之后,并在 try/except 块中产生。

...

def __call__(self):
    for item in self.previous:
        try:
            yield item
    except Exception, e
        # here do with exception whatever you want
        pass
于 2011-07-31T17:49:54.267 回答
1

我知道这不是该(常见)问题的真正解决方法,但这是我唯一的解决方案:我使用了很多管道步骤,每个步骤都会对我的项目进行一次众所周知的更改。如果有一个我担心会导致麻烦的步骤,我会添加一个条件步骤(collective.transmogrifier.sections.condition)并简单地丢弃潜在的坏项目。我认为真正的解决方案可能是改变管道运行器调用每个步骤的方式,它应该负责以可定制的方式管理异常。如果其他人有更好的解决方案,我也很感兴趣。

于 2011-07-31T17:11:44.257 回答