metaclass-registry Documentation
Zero-boilerplate metaclass-driven plugin registry system with lazy discovery and caching
Overview
metaclass-registry is a Python library that provides a reusable metaclass infrastructure for creating automatic plugin registration systems. It eliminates the need for custom metaclasses and manual registry management by providing a configuration-driven approach that works out of the box.
Key Features
Zero Boilerplate: No custom metaclasses, no manual registry creation, just class attributes
Lazy Discovery: Plugins discovered automatically on first access
Registry Inheritance: Child classes inherit parent’s registry for clean interface hierarchies
Secondary Registries: Auto-populate related registries from primary registry
Persistent Caching: Cache discovery results across process restarts
Auto-Configuration: Automatic inference of discovery packages and recursive settings
Type-Safe: Full type hints and mypy support
Installation
pip install metaclass-registry
Quick Example
from metaclass_registry import AutoRegisterMeta
# Define a base class with registry configuration
class PluginBase(metaclass=AutoRegisterMeta):
__registry_key__ = 'plugin_name'
plugin_name = None
# Access the auto-created registry
PLUGINS = PluginBase.__registry__
# Define plugins - they auto-register!
class MyPlugin(PluginBase):
plugin_name = 'my_plugin'
def run(self):
return "Hello from my plugin!"
# Use the registry
print(list(PLUGINS.keys())) # ['my_plugin']
plugin = PLUGINS['my_plugin']()
print(plugin.run()) # "Hello from my plugin!"