Welcome to groundwork¶
It is designed to support any kind of a Python application: command line scripts, desktop programs or web applications.
groundwork enables applications to activate and deactivate plugins during runtime and to control dynamic plugin behaviors like plugin status, used signals, registered commands and much more.
- 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
Additional, ready-to-use solutions can be easily integrated into groundwork applications by the usage of third-party plugins and patterns from the groundwork community (like groundwork-database or groundwork-web ). See Additional Packages for groundwork for more information.
Example¶
The following code defines a plugin with command line support and creates a groundwork application, which activates the plugin:
from groundwork import App
from groundwork.patterns import GwCommandsPattern
class MyPlugin(GwCommandsPattern):
def _init_(self, app, *args, **kwargs):
self.name = "My Plugin"
super().__init__(app, *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
The following commands can be used on a command line now:
python my_app.py hello # Prints 'Hello world'
python my_app.py # Prints a list of available commands
python my_app.py hello -h # Prints syntax help for the hello command
Tutorial¶
For the case you wish a more use-case oriented introduction into groundwork, we have set up a tutorial with a huge amount of code examples.
This tutorial starts with the groundwork basics, lets you create your first groundwork command line application, gives introductions how to add database support and finally ends with your own groundwork based web application.
Beside groundwork itself, it also uses the community packages groundwork-database and groundwork-web.
The tutorial is available under useblocks.github.io/groundwork-tutorial.