nlsq.diagnostics.run_plugins

nlsq.diagnostics.run_plugins(jacobian, parameters, residuals, **context)[source]

Execute all registered plugins with exception isolation.

This function runs each registered plugin’s analyze() method and collects the results. If a plugin raises an exception, it is caught, logged via warnings, and the plugin’s result is marked as unavailable. Other plugins continue executing normally (FR-014).

Parameters:
  • jacobian (np.ndarray) – Jacobian matrix at solution (n_residuals x n_params).

  • parameters (np.ndarray) – Fitted parameters.

  • residuals (np.ndarray) – Residuals at solution.

  • **context (Any) – Additional context for plugins: - xdata: Independent variable data - ydata: Dependent variable data - bounds: Parameter bounds - model: Model function - config: DiagnosticsConfig

Returns:

Mapping of plugin name to result. If a plugin fails, its result has available=False with error_message.

Return type:

dict[str, PluginResult]

Example

>>> from nlsq.diagnostics import run_plugins
>>> results = run_plugins(jacobian, params, residuals, xdata=x, ydata=y)
>>> for name, result in results.items():
...     if result.available:
...         print(f"{name}: {len(result.issues)} issues")
...     else:
...         print(f"{name}: FAILED - {result.error_message}")