保持你的插件简单,笨蛋!

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在EclipseIDE中设计JavaSwingGUI的最简单方法是什么?   用java显示字符串的第二行   java如何编写一个自定义的crudepository方法(@Query)来过滤我的案例中的结果   如何在Java中解析字符串?   java如何使两个数组随机相等   java为什么hang()方法只执行一次?   java图像缩小问题   java将按键从小程序“转发”到JFrame   错误处理是否适合捕获java。多线程应用程序中的lang.ExceptionInInitializerError?   JAVAlang.IllegalArgumentException:文件不包含有效的私钥:/Users/x/application。钥匙   为什么我们使用动态代理   java VBA填充网页文本框   在方法调用中间没有中断的java IntLIJ思想行包装   java WebDriver driver=新的ChromeDriver(选项);显示构造函数ChromeDriver(ChromeOptions)未定义