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

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第三方库


热门话题
为@Nonnull注释参数编写java单元测试   对于JAVA,如何从它自己的类调用插入排序来将数组分类到一个单独的类中?   Java中嵌套SQL查询的字符串解析   java在所有带有特定注释的方法上调用带注释的方面   在Java中将base64转换为PDF   无法在Android上强制转换java getApplicationContext()   雅加达ee Java ee:如何获取我的应用程序的URL?   IntelliJ:如何导入的文件夹。java文件作为库?   多线程Java(FX)在播放一种声音的同时,播放另一种声音   网络爬虫我需要将proto3版本中protobuf生成的java代码添加到nutch 1.7中   使用JAXRS注释资源的java Restlet客户端   java如何查找给定月份的日期范围   java Minecraft Bukkit插件:我的小游戏传送机不工作   Java Excel搜索和数组列表工作不正常