现代、优雅、简约但功能强大的Python3.5+插件系统。

offshoot的Python项目详细描述


快速游览

您希望创建可插入的类

classExportFormat:def__init__(self):self.name="Export Format"defexport(self,data):raiseNotImplementedError()@classmethoddefis_an_export_format(cls):returnTrue

您的类可插入,带有*分支*

importoffshootclassExportFormat(offshoot.Pluggable):def__init__(self):self.name="Export Format"@offshoot.expecteddefexport(self,data):raiseNotImplementedError()@classmethod@offshoot.forbiddendefis_an_export_format(cls):returnTrue

是的,就是这样!稍后将详细介绍这些可选的装饰器。

示例*分支*插件定义

importoffshootclassYAMLExportFormatPlugin(offshoot.Plugin):name="YAMLExportFormatPlugin"version="0.1.0"libraries=["PyYAML"]files=[{"path":"export_formats/yaml.py","pluggable":"ExportFormat"}]config={"export_options":{"width":80}}@classmethoddefon_install(cls):print("\n\n%s was installed successfully!"%cls.__name__)@classmethoddefon_uninstall(cls):print("\n\n%s was uninstalled successfully!"%cls.__name__)if__name__=="__main__":offshoot.executable_hook(YAMLExportFormatPlugin)

示例*分支*插件文件

importoffshootfromexport_formatimportExportFormatimportyamlclassYAMLExportFormat(ExportFormat):defexport(self,data):returnyaml.dump(data)

从命令行安装*分支*插件

分支安装yamlexportformatplugin

自动*分支*插件发现和导入

importoffshootoffshoot.discover("ExportFormat",globals())YAMLExportFormat# Now in scope!

验证类名字符串是否映射到已发现的插件类

importoffshootclass_mapping=offshoot.discover("ExportFormat")# We omit scope param to get the class mapping"YAMLExportFormat"inclass_mapping# True

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

推荐PyPI第三方库


热门话题
java与Groovy正则表达式匹配混淆   java控制台未定义为JSNI   主目录中的java指针异常   java如何获取hashmap中的arrayList的大小   ApachePOI用于文本,Java代码中的word doc(.docx)中没有进行追加   Ruby对象到Java对象   JavaSpringJPA哈希集只返回一个值   Java在执行由配置了精确类路径参数的mavenjarpluin生成的可执行jar时无法找到依赖项   java我试图在画布上写一个文本,但什么也没发生   java HTTP 404源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式。不起作用   java提取小数点后的最后一个数字   oop Java:无法访问对象的元素   PHP URL中RecyclerView中的java句柄空异常   不调用OnCreateViewHolder的java Update RecyclerView适配器项