gufo-loader 1.0.3

Creator: bradpython12

Last updated:

Add to Cart

Description:

gufoloader 1.0.3

Gufo Loader
Generic Python class loader for robust plugin infrastructure.






Documentation: https://docs.gufolabs.com/gufo_loader/
Source Code: https://github.com/gufolabs/gufo_loader/

Loader delivers plugins from one or many plugin packages.
Loader
Loader is the dict-like singleton providing the following services:

plugin initialization and fetching.
plugins enumeration.

Plugins are not dependent on the loader and do not need any registration
process. The loaders are lazy by nature, meaning the plugin will be imported
and initialized just in time when the user code requests the plugin.
Plugins
Plugins are named entities dedicated to the given task. Each plugin
is defined in its python module. Depending on the loader settings
plugins can be:

Instances: Singleton instances having the class as the ancestor.
Subclasses: Classes having the common ancestor.
Protocols: Classes following the set of methods.

Plugin Packages
Plugin packages are plain Python packages: the directory containing
python files with plugins and the empty __init__.py file.
Plugin name must match the module name. For example, module
my_plugin.py will define the plugin my_plugin.
Examples:
Plugins as the subclasses:

loader = Loader[Type[BasePlugin]](base="myproject.plugins")

Plugins as the singletones:

loader = Loader[BasePlugin](base="myproject.plugins")

Plugins as the protocols:

loader = Loader[MyProtocol](base="myproject.plugins")

Virtues

Clean dict-like API.
Full abstraction from the plugin internals.
Custom plugins.
Full Python typing support.
Editor completion.
Well-tested, battle-proven code.

On Gufo Stack
This product is a part of Gufo Stack - the collaborative effort
led by Gufo Labs. Our goal is to create a robust and flexible
set of tools to create network management software and automate
routine administration tasks.
To do this, we extract the key technologies that have proven themselves
in the NOC and bring them as separate packages. Then we work on API,
performance tuning, documentation, and testing. The NOC uses the final result
as the external dependencies.
Gufo Stack makes the NOC better, and this is our primary task. But other products
can benefit from Gufo Stack too. So we believe that our effort will make
the other network management products better.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.