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

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


热门话题
socketJava加密聊天客户端未通过关联   java保存JFileChooser的状态   java如何让代码等待GUI完成?   java可序列化和接口:Parcelable在写入可序列化对象时遇到IOException   java Jersey客户端将覆盖ROBOTS响应   java空指针异常&如何克服   java如何使用JAXR设置字符集?   JavaSpring自定义转换器被覆盖   java将泛型类型的值设置为DTO字段   使用netty的java音频流服务器   java滚动条添加到面板时不显示在滚动窗格中   java windows通过IIS Url重写单点登录tomcat   Web应用程序的java容器管理安全性   java使用mybatis将POJO项数组传递到存储过程?