【发布时间】:2017-06-27 17:52:50
【问题描述】:
目标: 我想在基于 yapsy 模块的应用程序中添加激活/停用功能,以及实现它的正确方法是什么。
说明 我有一个 python 应用程序,它可以从 Jira、Slack 等不同的 api 中获取用户。我已经使用 yapsy 模块将其作为可插件工作。
我目前是如何实施的?
现在我已经使用配置文件添加了激活/停用功能。在配置文件中,您可以看到一个名为 status 的选项。如果启用则读取配置而不是调用 run() 函数。
[plugin_1]
user = tara
host = SERVERNAME
filepath = /etc/passwd
status = enable
插件是这样运行的
savesessionname(cons.MAIN_CONFIG_PATH, session_name)
simplePluginManager = PluginManager()
simplePluginManager.setPluginPlaces(["plugins/"])
simplePluginManager.collectPlugins()
for plugininfo in simplePluginManager.getAllPlugins():
plugininfo.plugin_object.run()
在所有插件中都有 run() 可以调用并运行插件。插件从配置中检查插件是否处于活动状态。
从 yapsy 中使用 ACTIVATE/DEACTIVATE 功能的方法是什么 插件本身,而不是我实现阅读的方式 配置并决定是否运行该功能
一些描述: simplePluginManager.collectPlugins() 用于收集我们拥有的所有插件是否有任何方法可以收集仅激活的插件。我浏览了 yapsy 文档,但找不到正确的方法或从文档中不清楚
通过少量研究,我发现 ConfigurablePluginManager 可用于此目的,但找不到一些好的示例。至少有一个例子对我来说是很好的开始
【问题讨论】: