用于高度可重用应用程序及其组件的基于插件的微框架

groundwork的Python项目详细描述


groundwork是一个基于python的微框架,用于高度可重用的应用程序及其组件。

它的功能是基于可交换的、文档化的和经过测试的插件和模式。

它被设计为支持任何类型的python应用程序:命令行脚本、桌面程序或web应用程序。

groundwork允许应用程序在运行时激活和停用插件,并控制动态插件 插件状态、使用的信号、注册的命令等行为。

插件的功能可以很容易地通过使用可继承的模式来扩展。 因此,groundwork为开发人员提供了节省时间的解决方案:

  • Command line interfaces
  • Loose inter-plugin communication via signals and receivers
  • Shared objects to provide and request content to and from other plugins
  • Static and dynamic documents for an overall documentation

示例

下面的代码定义了一个支持命令行的插件,并创建了一个激活 插件:

from groundwork import App
from groundwork.patterns import GwCommandsPattern

class MyPlugin(GwCommandsPattern):
    def _init_(self, *args, **kwargs):
        self.name = "My Plugin"
        super().__init__(*args, **kwargs)

    def activate(self):
        self.commands.register(command='hello',
                               description='prints "hello world"',
                               function=self.greetings)

    def greetings(self):
        print("Hello world")

if __name__ == "__main__":
    my_app = App(plugins=[MyPlugin])        # Creates app and registers MyPlugin
    my_app.plugins.activate(["My Plugin"])  # Initialise and activates 'My Plugin'
    my_app.commands.start_cli()             # Starts the command line interface

现在可以在命令行上使用以下命令:

python my_app.py hello      # Prints 'Hello world'
python my_app.py            # Prints a list of available commands
python my_app.yp hello -h   # Prints syntax help for the hello command

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

推荐PyPI第三方库


热门话题
java Spring freemarker多模板加载程序路径   在java插件中从控制台获取输入   java在包中创建继承类   网页抓取Java Jsoup网页抓取   java在线程内创建一个对象,而true条件具有相同的引用   java如何根据空格数拆分字符串   java新的安卓 studio更新中的配置文件“app”是什么?   java在将ArrayList写入/读取到文件时出现奇怪的问题   java Reg替换文本块第一次出现+最后一次出现   java当我单击任何RecyclerView列表项时,如何在MainActivity的EditText中显示特定的单击项?   JAVA XML删除节点仅删除第一个外观   java如何在数组中查找特定值   java SVG/矢量图形对象布尔运算(并集、交集、减法)   java在Android中创建线程需要多长时间   尝试从JBOSS联系Oracle LDAP服务器时发生java连接重置异常   java基于参数获取特定的实现实例   使用java就地修改文件内容   java MonetaryException:未加载MonetaryAmountsSingletonSpi   java接受用户的不同输入并使其触发完全相同的代码段的最短方法是什么   Spring 3.2.8应用程序中未找到java HTTP 404错误