保持你的插件简单,笨蛋!
easy_plugins的Python项目详细描述
====
简单插件
===
模块easy plugins提供了管理插件的简单方法。
我正在搜索一些简单而强大的插件框架,但没有找到任何合适的插件。它们很复杂,需要实现一些奇怪的接口,或者在其他方面很难看。这就是
我决定重新设计轮子并创建这个模块(嗯,
它只是一个类和几个测试)。
它扫描您的python路径,并尝试加载任何
看起来像带有您指定前缀的python内容。仅此而已。
假设我有一个名为
image\u resizer的python应用程序。核心功能在这个包中。然后我有一些
插件,它们知道一些关于图像格式的知识,并且每个插件都使用一些非常聪明的算法。这些插件以前缀“image\u resizer”调用,因此在regexp语音中它们与“^image\u resizer”匹配。例如,在描述的情况下,可以使用:
它将立即返回
插件模块的迭代器
作为名称,插件中的插件:
extension=plugin.extension
resizer_class=plugin.resizer
extensions[extension]=resizer_class
所以通常用法如下:
plugins=easyplugins(“期望的前缀”)
#我们有一个管道打字,用它!
需要的_class=plugin.class
需要的_function=plugin.function
自定义的_终端_options=plugin.options
实际上,您可以提供多个插件名称,例如用于向后兼容的
plugins=easyplugins(['archiver\','archiver\'u plugin'])
出于某种原因,不在路径
上的目录中的插件,您仍然可以通过设置附加路径来使用它们。
这种情况通常发生在插件开发期间。
drone.io:
*https://drone.io/pros87/easyplugins
简单插件
===
模块easy plugins提供了管理插件的简单方法。
我正在搜索一些简单而强大的插件框架,但没有找到任何合适的插件。它们很复杂,需要实现一些奇怪的接口,或者在其他方面很难看。这就是
我决定重新设计轮子并创建这个模块(嗯,
它只是一个类和几个测试)。
它扫描您的python路径,并尝试加载任何
看起来像带有您指定前缀的python内容。仅此而已。
假设我有一个名为
image\u resizer的python应用程序。核心功能在这个包中。然后我有一些
插件,它们知道一些关于图像格式的知识,并且每个插件都使用一些非常聪明的算法。这些插件以前缀“image\u resizer”调用,因此在regexp语音中它们与“^image\u resizer”匹配。例如,在描述的情况下,可以使用:
它将立即返回
插件模块的迭代器
作为名称,插件中的插件:
extension=plugin.extension
resizer_class=plugin.resizer
extensions[extension]=resizer_class
所以通常用法如下:
plugins=easyplugins(“期望的前缀”)
#我们有一个管道打字,用它!
需要的_class=plugin.class
需要的_function=plugin.function
自定义的_终端_options=plugin.options
实际上,您可以提供多个插件名称,例如用于向后兼容的
plugins=easyplugins(['archiver\','archiver\'u plugin'])
出于某种原因,不在路径
上的目录中的插件,您仍然可以通过设置附加路径来使用它们。
这种情况通常发生在插件开发期间。
drone.io:
*https://drone.io/pros87/easyplugins