Install & Compatibility
Where this runs
tested against v32.0.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.464s · 28.4MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 3.1s · import 0.448s · 30MB
28MB installed
● package 28MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
PluginManager
✓ from plugincode import PluginManager
✗ from plugincode.manager import PluginManager
PluginManager is exposed at the top-level package, not in a submodule
plugin_manager
✓ from plugincode import plugin_manager
The default instance of PluginManager is also at top-level
PluginsRegistry
✓ from plugincode import PluginsRegistry
Registry class for plugins
Basic usage: iterate over registered plugins or filter by hook.
from plugincode import plugin_manager
# Get all registered plugins
for plugin in plugin_manager.get_plugins():
print(plugin)
# Or get plugins by hook name
for plugin in plugin_manager.get_plugins_by_hook('pre_scan'):
print(plugin.name)
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'plugincode'
plugincode not installed.
fixRun: pip install plugincode
AttributeError: module 'plugincode' has no attribute 'PluginManager'
Outdated version (<30.0.0) where PluginManager was not exposed at top level.
fixUpgrade to latest version: pip install --upgrade plugincode
Upgrade
Version history
32.0.0latest on PyPI · released May 2, 2023
Audit
Dependencies
commoncoderequiredProvides Codebase and Resource classes used in plugin processing
packagingrequiredUsed for version comparisons