Plugins๏ƒ

SpectroChemPy plugins add optional scientific features while keeping the core installation lighter. Once a plugin is installed, it is discovered automatically; normal user code does not need a manual loading step.

Official plugins๏ƒ

Official plugins are maintained as part of the SpectroChemPy project. They are auto-published, officially supported, and included in aggregate extras.

Install official plugins with extras:

pip install spectrochempy[nmr]
pip install spectrochempy[iris]
pip install spectrochempy[tensor]
pip install spectrochempy[nmr,hypercomplex]

or install plugin packages directly:

pip install spectrochempy-nmr
pip install spectrochempy-iris
pip install spectrochempy-tensor
pip install spectrochempy-hypercomplex
pip install spectrochempy-carroucell

Conda users can install from the spectrocat channel:

mamba install -c spectrocat -c conda-forge spectrochempy-nmr

Plugin versions are independent from the SpectroChemPy core version. For example, spectrochempy 0.9.2 may be used with spectrochempy-nmr 0.1.3. Use scp.plugins(verbose=True) to inspect the plugin versions discovered in the current environment.

Conda development builds for official plugins are not published automatically at the moment. Stable plugin packages are available from the main spectrocat channel.

Using plugins๏ƒ

Plugin APIs are exposed through namespaces:

import spectrochempy as scp

dataset = scp.nmr.read_topspin("path/to/fid")
analysis = scp.iris.IRIS()
model = scp.tensor.CP(n_components=2)

Operations that act on an existing dataset use dataset accessors:

kernel = dataset.iris.kernel_matrix(kernel_type="langmuir")
dataset.hyper.set_quaternion(inplace=True)
ri = dataset.hyper.component("RI")

Some former top-level names remain as compatibility aliases. New code should prefer namespaced APIs such as scp.nmr.read_topspin, scp.iris.IRIS, and scp.tensor.CP.

Inspecting plugins๏ƒ

Use scp.plugins() to list discovered plugins:

import spectrochempy as scp

scp.plugins()
scp.plugins(verbose=True)

If an official optional feature is missing, SpectroChemPy raises a clear installation hint instead of failing with an import error.

Experimental plugins๏ƒ

Some plugins in the repository are considered experimental. They are available mainly for developers and early testers, may change without deprecation, and are not officially supported.

Experimental plugins are not auto-published by the official release workflows, though they may be published manually or through separate workflows. They may still be installed manually and are discoverable via the same entry-point mechanism as official plugins.

See Experimental plugins for details.

User roadmap๏ƒ

The user-facing direction is simple: official plugins should feel integrated once installed, examples should state their plugin requirements, and common core workflows should continue to work without optional plugin dependencies.

For implementation details and architecture planning, see Plugin architecture map.

Plugin pages๏ƒ