Plugin accessors
Accessors expose plugin operations on existing SpectroChemPy objects. For an
NDDataset, use an accessor only when the dataset is a real input to the
operation:
result = dataset.iris.kernel_matrix(kernel_type="langmuir")
dataset.hyper.set_quaternion(inplace=True)
Do not use accessors for readers, constructors, or simulations that create objects independently. Those belong under package-level namespaces:
dataset = scp.nmr.read_topspin("path/to/fid")
Accessor contributions are declared with register_accessors(). Prefer a
namespace and a short operation name:
def register_accessors(self) -> list[dict]:
return [
{
"namespace": "domain",
"name": "operation",
"func": operation,
"description": "Run a domain operation",
},
]
Legacy flat names may be declared with legacy_names during a transition,
but new documentation should show only the namespaced form.