Official plugins

SpectroChemPy can be extended by plugins. Some plugins are maintained as part of the SpectroChemPy project and are considered official plugins. They use the same plugin discovery mechanism as third-party plugins, but their API, examples, tests, and documentation are coordinated with the main project.

Official plugins should feel like part of SpectroChemPy once installed. They are not loaded manually: import SpectroChemPy, then use the documented namespace.

Current official plugins

Domain

Package

Namespace

Typical use

IRIS

spectrochempy-iris

scp.iris, dataset.iris

2D-IRIS analysis, IRIS kernels, dataset-bound IRIS operations.

NMR

spectrochempy-nmr

scp.nmr

TopSpin/Bruker NMR reading and NMR-specific processing utilities.

Tensor

spectrochempy-tensor

scp.tensor

TensorLy-backed tensor decompositions such as CP/PARAFAC.

Hypercomplex

spectrochempy-hypercomplex

dataset.hyper

Quaternion/hypercomplex support for phase-sensitive 2D NMR.

Carroucell

spectrochempy-carroucell

scp.carroucell

Carroucell experiment reader for spectroscopic data.

PerkinElmer

spectrochempy-perkinelmer

scp.perkinelmer

PerkinElmer .sp IR file reader.

Install commands

Official plugins can be installed through SpectroChemPy extras:

python -m pip install "spectrochempy[iris]"
python -m pip install "spectrochempy[nmr]"
python -m pip install "spectrochempy[tensor]"

The Hypercomplex and PerkinElmer plugins do not have dedicated extras in the core distribution. Install their packages directly:

python -m pip install "spectrochempy[nmr]" spectrochempy-hypercomplex
python -m pip install spectrochempy-perkinelmer

or directly:

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

Once installed, plugins are discovered automatically. No explicit plugin loading call is required in user code.

Versions and compatibility

Official plugins are versioned independently from the SpectroChemPy core package. A core release and a plugin release therefore do not need to share the same version number. For example, a stable spectrochempy 0.9.2 environment may use spectrochempy-nmr 0.1.3.

Stable plugin packages are published on PyPI and on the main spectrocat conda channel. Conda development builds are not published; users who need unreleased plugin changes should install the plugin from a source checkout.

Inspect installed plugins

Use scp.plugins() to see which official plugins are installed and which plugin namespaces are available:

import spectrochempy as scp

scp.plugins()

Use scp.plugins(verbose=True) to include lightweight package metadata such as versions. This inspection command reads entry-point and package metadata; it does not import optional plugin implementation modules.

API convention

The recommended form is namespaced:

import spectrochempy as scp

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

Dataset accessors are reserved for operations that act on an existing dataset:

kernel = dataset.iris.kernel_matrix(kernel_type="langmuir")

Some official plugins may expose limited root-level compatibility aliases, such as scp.IRIS. New examples should prefer the namespaced form, scp.iris.IRIS or scp.tensor.CP.

Generated plugin-owned public API pages are collected in Plugin public API reference.

Plugin summaries

The table above is the quick reference. The dedicated plugin pages below provide the user-facing details: