使用 Transmogrifier 导入大量内容时如何处理回溯?

发布于 2024-11-27 08:08:05 字数 213 浏览 1 评论 0原文

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

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

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

这些似乎都不是特别方便或理想,因此我的问题。

Sometimes it is convenient to "keep going" when importing lots of content, ignoring tracebacks and other failures that may occur with certain content.

Is there any generic mechanism in Transmogrifier to make this easier? The only approaches I can see are:

  • Use only custom blueprints that try/except where appropriate.
  • Use a wrapper to execute the pipeline that changes the source blueprint input to be one-after-the-failure each time.

Neither of these appear particularly convenient or desirable, hence my question.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黒涩兲箜 2024-12-04 08:08:05

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

...

def __call__(self):
    for item in self.previous:
        try:
            yield item
    except Exception, e
        # here do with exception whatever you want
        pass

you only need to write one blueprint which will handle and ignore all "tracebacks" you might want. be sure to put it right after "source" blueprint and yield in try/except block.

...

def __call__(self):
    for item in self.previous:
        try:
            yield item
    except Exception, e
        # here do with exception whatever you want
        pass
神魇的王 2024-12-04 08:08:05

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

I am aware that this is not a real workaround for that (common) issue, but here's my only solution: i use a lot of pipeline steps, each that make a single, well known, change to my items. If there's a step that i fear that can cause trouble i add a condition step (collective.transmogrifier.sections.condition) and simply drop potentially bad items. I think that a real solution could be to change the way the pipeline runner call each step, it should be responsible for managing exceptions in a customisable way. If someone else has a better solution i'm interested, me too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文