Plugins¶
Lightweight plugin registry for domain-specific extensions.
- class updatesupport.plugins.PluginMetadata(package=None, homepage=None, domain=None, tags=(), min_updatesupport_version=None)[source]¶
Bases:
objectOptional package metadata for plugin discovery and documentation.
- Parameters:
- class updatesupport.plugins.UpdateSupportPlugin(name, version=None, description='', metrics=<factory>, q_presets=<factory>, report_profiles=<factory>, compilers=<factory>, metadata=<factory>)[source]¶
Bases:
objectDomain extension descriptor.
Plugins can expose metric factories, Q preset factories, report profiles, and compilers without adding domain-specific vocabulary to the core package. The values are intentionally generic callables so plugins can evolve their own public APIs while core provides discovery and namespacing.
- Parameters:
- metadata: PluginMetadata¶
- class updatesupport.plugins.PluginValidationIssue(severity, code, message, surface=None, key=None)[source]¶
Bases:
objectValidation issue for an updatesupport plugin descriptor.
- class updatesupport.plugins.PluginValidationReport(plugin_name, issues=())[source]¶
Bases:
objectValidation report for a plugin descriptor.
- Parameters:
plugin_name (str)
issues (tuple[PluginValidationIssue, ...])
- issues: tuple[PluginValidationIssue, ...] = ()¶
- property errors: tuple[PluginValidationIssue, ...]¶
- property warnings: tuple[PluginValidationIssue, ...]¶
- class updatesupport.plugins.PluginRegistry[source]¶
Bases:
objectMutable registry for explicit and entry-point-discovered plugins.
- register(plugin, *, replace=False, validate=True)[source]¶
- Parameters:
plugin (UpdateSupportPlugin)
replace (bool)
validate (bool)
- Return type:
- updatesupport.plugins.register_plugin(plugin, *, replace=False, validate=True)[source]¶
Register a plugin explicitly.
- Parameters:
plugin (UpdateSupportPlugin)
replace (bool)
validate (bool)
- Return type:
- updatesupport.plugins.unregister_plugin(name)[source]¶
Remove a plugin from the process-local registry if present.
- Parameters:
name (str)
- Return type:
None
- updatesupport.plugins.get_plugin(name)[source]¶
Return a registered plugin by name.
- Parameters:
name (str)
- Return type:
- updatesupport.plugins.list_plugins()[source]¶
Return registered plugins sorted by name.
- Return type:
- updatesupport.plugins.discover_plugins(*, group='updatesupport.plugins', replace=False, validate=True)[source]¶
Discover plugins declared through Python package entry points.
- Parameters:
- Return type:
- updatesupport.plugins.validate_plugin(plugin)[source]¶
Validate a plugin descriptor without mutating the registry.
- Parameters:
plugin (UpdateSupportPlugin)
- Return type:
- updatesupport.plugins.assert_valid_plugin(plugin)[source]¶
Validate a plugin descriptor and raise on blocking errors.
- Parameters:
plugin (UpdateSupportPlugin)
- Return type:
- updatesupport.plugins.plugin_metric(plugin_name, metric_name)[source]¶
Return a metric factory from a registered plugin.
- updatesupport.plugins.plugin_q_preset(plugin_name, preset_name)[source]¶
Return a Q preset factory from a registered plugin.