docs(v2.0.0-alpha.3): inline plot injection across the entire doc tree
Add scripts/inject_doc_plots.py that scans every .md and .rst page under docs/source/, executes each Python code-block in an isolated namespace with a non-interactive matplotlib backend, captures every figure produced, and inserts an inline image directive immediately after the code-block. Markers AUTO-PLOT-BEGIN/END make the injection idempotent on re-runs. Blocks that fail to execute or produce no figure are left untouched. Add a transparent __getattr__ fallback in python/optimizr/__init__.py that forwards any unresolved top-level attribute to the compiled _core extension. This lets all v1.x and v2.0 doc samples that use 'from optimizr import X' (estimate_ou_params_py, linear_bsde_constant_coeffs, mmd_gaussian, ...) execute as written. Augment the OU Parameter Estimation example (docs/source/algorithms/optimal_control.md) with a two-panel visualization (simulated path plus empirical/theoretical autocorrelation). Net effect: 14 doc pages now display matplotlib plots inline directly under the code that produced them -- including the OU page, point processes, Grid Search, HMM, MCMC, plus the 8 v2.0 RST pages.
This commit is contained in:
@@ -103,3 +103,20 @@ __all__ = [
|
||||
"min_variance_weights",
|
||||
"erc_weights",
|
||||
]
|
||||
|
||||
|
||||
def __getattr__(name):
|
||||
"""Transparent fallback: forward any unresolved top-level attribute access
|
||||
to the compiled `_core` extension. This keeps `from optimizr import X`
|
||||
working for every Rust-backed function (v1.x and v2.0 primitives) without
|
||||
having to enumerate the full list above."""
|
||||
try:
|
||||
from optimizr import _core as _ext
|
||||
except ImportError as exc: # pragma: no cover
|
||||
raise AttributeError(
|
||||
f"module 'optimizr' has no attribute {name!r} "
|
||||
f"(_core extension is not built: {exc})"
|
||||
) from exc
|
||||
if hasattr(_ext, name):
|
||||
return getattr(_ext, name)
|
||||
raise AttributeError(f"module 'optimizr' has no attribute {name!r}")
|
||||
|
||||
Reference in New Issue
Block a user