Skip to content

registry

registry

IVIM model registry for dynamic lookup and extension.

This module provides the registry pattern for IVIM signal models, enabling runtime model registration and retrieval by name.

register_ivim_model

register_ivim_model(name)

Decorator to register an IVIM signal model.

Registers an IVIMModel subclass in IVIM_MODEL_REGISTRY so it can be looked up by name via get_ivim_model().

PARAMETER DESCRIPTION
name

Registry key for the model (e.g. 'triexponential').

TYPE: str

RETURNS DESCRIPTION
Callable

Class decorator.

Examples:

>>> from osipy.ivim.models import register_ivim_model, IVIMModel
>>> @register_ivim_model("triexponential")
... class TriexponentialModel(IVIMModel):
...     # implement abstract methods ...
...     pass

get_ivim_model

get_ivim_model(name, **kwargs)

Get an IVIM model instance by name.

PARAMETER DESCRIPTION
name

Model name: 'biexponential', 'simplified', or any name added via register_ivim_model().

TYPE: str

**kwargs

Additional keyword arguments passed to the model constructor.

TYPE: Any DEFAULT: {}

RETURNS DESCRIPTION
IVIMModel

Model instance.

RAISES DESCRIPTION
DataValidationError

If model name is not recognized.