gpt4 book ai didi

python - yapsy 无法正确加载插件

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:54 24 4
gpt4 key购买 nike

我正在将 yapsy 用于 python 应用程序。

我为我的应用程序编写了一个新插件,并将其放入所有其他插件所在的同一文件夹中

我的插件都继承自一个名为 doctypes 的插件类,该类一般是.interfacesdoctype类又继承自IPlugin类

所有插件都正确加载,但对于我得到的新插件:

< 0x处的general.interfaces.DocType对象......>

而不是

< PDF 对象位于 0x.......>

在我看来,yapsy 加载了主插件类,所有插件都继承自该主插件类,而该类本身又继承自 IPlugin

我的应用程序可以与所有插件配合使用,除了新插件,我检查了代码中的任何差异,但所有事情似乎都是正确的

最佳答案

我是 yapsy 的主要开发人员,我刚刚看到此消息...

虽然我猜 4 个月后你会去做别的事情,但无论如何。

我想指出的第一件事是,最好在 yapsy 的跟踪器上填写错误报告:

https://sourceforge.net/tracker/?group_id=208383

如果您决定这样做,如果您还可以附加一些代码,那将对我有很大帮助。

从你在这里给出的简单描述中,我很难判断问题出在哪里,但看起来至少“设置”可以作为 yapsy 单元测试的一些小改动来重现。

如果我不得不做一个疯狂的猜测,问题可能来自于(非常粗略地)使用Python的“issubclass”来识别各种类别的插件。这是因为“类别”是通过父类定义的,同一类别的所有插件都必须继承该父类(更准确地说,“继承自...的类的实例”)。

如果您使用如下内容定义类别映射,这会导致困惑:

{
"GeneralDocCategory": general.interfaces.DocType,
"PDFcategory": general.interfaces.PDFDocType
}

其中 PDFDocType 继承自 DocType。问题的根源在于母类及其子类之一的存在来定义两个不同的类别。

解决方案可能是:

解决方案 A/以更聪明的方式重新设计 yapsy(由于时间严重不足,不会很快在 yapsy 的主要存储库中发生,但请随意 fork /贡献/更改所有内容)

解决方案 B/为“非特定”文档类型定义一个“特定”类(不仅仅是一个笑话),以获取由以下内容定义的类别:

{
"UnkownDocCategory": general.interfaces.UnknownDocType,
"PDFcategory": general.interfaces.PDFDocType
}

其中 UnknownDocType 和 PDFDocType 都会继承 DocType。

关于python - yapsy 无法正确加载插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com