有时在导入大量内容时“继续”,忽略某些内容可能发生的追溯和其他失败是很方便的。
Transmogrifier中是否有任何通用机制可以使这更容易?我能看到的唯一方法是:
这些都不是特别方便或可取,因此我的问题。
答案 0 :(得分: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
答案 1 :(得分:1)
我知道这不是这个(常见)问题的真正解决方法,但这是我唯一的解决方案:我使用了很多管道步骤,每个步骤都会对我的项目进行单一的,众所周知的更改。如果有一个步骤,我担心可能会导致麻烦,我添加一个条件步骤(collective.transmogrifier.sections.condition),并简单地删除可能不好的项目。我认为真正的解决方案可能是改变管道运行器调用每一步的方式,它应该负责以可自定义的方式管理异常。如果其他人有一个我感兴趣的更好的解决方案,我也是。