Python 如何在yapsy插件中定义类别?
我在此结构中使用yapsy: script.py plugins |-equipments | |-eq1.py | |-eq1.yapsy-plugin |-tasks |-tsk1.py |-tsk1.yapsy-pluginPython 如何在yapsy插件中定义类别?,python,plugins,Python,Plugins,我在此结构中使用yapsy: script.py plugins |-equipments | |-eq1.py | |-eq1.yapsy-plugin |-tasks |-tsk1.py |-tsk1.yapsy-plugin 它很好用。但是如何使不同目录中的插件具有不同的类别?yapsy中的类别不是由目录检测的,而是通过每个插件实例继承的类来检测的 例如,在应用程序中,您可以让“设备”插件继承IEquipementPlugin类,而“任务”插件继承ITaskPlugin
它很好用。但是如何使不同目录中的插件具有不同的类别?yapsy中的类别不是由目录检测的,而是通过每个插件实例继承的类来检测的 例如,在应用程序中,您可以让“设备”插件继承
IEquipementPlugin
类,而“任务”插件继承ITaskPlugin
然后,在配置插件管理器时,只需给出类别名称与其各自基类之间的映射:
# Define the various categories corresponding to the different
# kinds of plugins you have defined
manager.setCategoriesFilter({
"Equipement" : IEquipementPlugin,
"Task" : ITaskPlugin,
})
请注意一个警告,它使您的一个类别由定义另一个类别的类别的子类别定义(插件管理器将被混淆),请参阅和
另请参见yapsy的文档:
我知道Yapsy的文档在示例方面仍然很差[1],但是在单元测试中有插件类别的工作示例
在一些现实项目中也有类别的例子。例如,在mathbench中:(yapsy最初设计为它的一个子组件)和yapsy文档中列出的其他项目,请参见
[1] :很抱歉,我没有太多时间,但我尝试通过考虑像您这样的用户反馈来逐步改进yapsy及其文档