core.registry#

Registry

Module Contents#

Classes#

Registry

Registry of plugins.

FooPlugin

A (temporary) dummy plugin for testing.

BarPlugin

Another (temporary) dummy plugin for testing.

Functions#

iter_namespace

Iterate over all modules in a namespace package.

Data#

log

API#

core.registry.log = None#
core.registry.iter_namespace(ns_pkg: types.ModuleType) collections.abc.Iterator[pkgutil.ModuleInfo]#

Iterate over all modules in a namespace package.

Specifying the second argument (prefix) to iter_modules makes the returned name an absolute name instead of a relative one. This allows import_module to work without having to do additional modification to the name.

class core.registry.Registry(selected_plugins: list[str], **kwargs: polyconf.core.model.Plugin)#

Registry of plugins.

Initialization

discover_plugins(package: types.ModuleType) None#

Discover plugins in a package.

property discovered_plugins: dict[str, types.ModuleType]#

Return a dictionary of discovered plugins.

init_plugins(package: types.ModuleType | None = None, **kwargs: Any) None#

Initialize the plugins.

property available_plugins: list[Callable[[polyconf.core.model.Context], polyconf.core.model.Context]]#

Return a list of available plugins.

property plugins: list[Callable[[polyconf.core.model.Context], polyconf.core.model.Context]]#

Return a list of active plugins.

property plugin_map: dict[str, polyconf.core.model.Plugin]#

Return a dictionary of active plugins.

register_plugin(name: str, plugin: polyconf.core.model.Plugin) None#

Register a plugin.

resolve(context: polyconf.core.model.Context) polyconf.core.model.Context#

Resolve a context.

class core.registry.FooPlugin#

Bases: polyconf.core.model.Plugin

A (temporary) dummy plugin for testing.

name = 'foo'#
hydrate(context: polyconf.core.model.Context) polyconf.core.model.Context#
class core.registry.BarPlugin#

Bases: polyconf.core.model.Plugin

Another (temporary) dummy plugin for testing.

name = 'bar'#
hydrate(context: polyconf.core.model.Context) polyconf.core.model.Context#