Metadata-Version: 2.4
Name: spectrochempy
Version: 0.9.0
Summary: Processing, analysis and modelling Spectroscopic data for Chemistry with Python
Author-email: Arnaud Travert <contact@spectrochempy.fr>, Christian Fernandez <christian.fernandez@ensicaen.fr>
License: CeCILL-B FREE SOFTWARE LICENSE AGREEMENT
Project-URL: documentation, https://www.spectrochempy.fr/latest
Project-URL: homepage, https://www.spectrochempy.fr
Project-URL: issues, https://github.com/spectrochempy/spectrochempy/issues
Project-URL: repository, https://github.com/spectrochempy/spectrochempy
Keywords: spectroscopy,chemistry,data analysis
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Utilities
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries
Classifier: Intended Audience :: Science/Research
Classifier: License :: CeCILL-B Free Software License Agreement (CECILL-B)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: colorama
Requires-Dist: dill
Requires-Dist: ipython
Requires-Dist: jinja2
Requires-Dist: lazy_loader
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: pluggy
Requires-Dist: pint
Requires-Dist: pyyaml
Requires-Dist: requests
Requires-Dist: scikit-learn
Requires-Dist: scipy
Requires-Dist: tzlocal
Provides-Extra: build
Requires-Dist: setuptools; extra == "build"
Requires-Dist: setuptools_scm; extra == "build"
Requires-Dist: toml; extra == "build"
Requires-Dist: jinja2; extra == "build"
Requires-Dist: anaconda-client; extra == "build"
Provides-Extra: cp
Requires-Dist: tensorly; extra == "cp"
Provides-Extra: dev
Requires-Dist: toml; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: spectrochempy[interactive]; extra == "dev"
Requires-Dist: spectrochempy[test]; extra == "dev"
Requires-Dist: spectrochempy[docs]; extra == "dev"
Provides-Extra: docs
Requires-Dist: ipykernel==6.29.5; extra == "docs"
Requires-Dist: ipywidgets==8.1.5; extra == "docs"
Requires-Dist: jsonschema==4.23.0; extra == "docs"
Requires-Dist: jupyter==1.1.1; extra == "docs"
Requires-Dist: jupyter-sphinx; extra == "docs"
Requires-Dist: jupytext==1.16.7; extra == "docs"
Requires-Dist: nbconvert==7.17.1; extra == "docs"
Requires-Dist: nbformat==5.10.4; extra == "docs"
Requires-Dist: nbsphinx==0.9.6; extra == "docs"
Requires-Dist: numpydoc==1.8.0; extra == "docs"
Requires-Dist: pickleshare; extra == "docs"
Requires-Dist: pypandoc==1.15; extra == "docs"
Requires-Dist: setuptools_scm; extra == "docs"
Requires-Dist: sphinx==7.4.7; extra == "docs"
Requires-Dist: sphinx-tabs==3.4.7; extra == "docs"
Requires-Dist: sphinx-copybutton==0.5.2; extra == "docs"
Requires-Dist: sphinx-design==0.6.0; extra == "docs"
Requires-Dist: sphinx-gallery==0.19.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == "docs"
Requires-Dist: sphinxcontrib-bibtex==2.6.3; extra == "docs"
Requires-Dist: json5==0.10.0; extra == "docs"
Provides-Extra: interactive
Requires-Dist: jupyter; extra == "interactive"
Requires-Dist: jupyterlab; extra == "interactive"
Requires-Dist: ipykernel; extra == "interactive"
Requires-Dist: ipyparallel; extra == "interactive"
Requires-Dist: nodejs; extra == "interactive"
Requires-Dist: jupyter_server; extra == "interactive"
Provides-Extra: nmr
Requires-Dist: spectrochempy-nmr<0.2,>=0.1; extra == "nmr"
Provides-Extra: iris
Requires-Dist: spectrochempy-iris<0.2,>=0.1; extra == "iris"
Provides-Extra: plugins
Requires-Dist: spectrochempy[nmr]; extra == "plugins"
Requires-Dist: spectrochempy[iris]; extra == "plugins"
Requires-Dist: spectrochempy-hypercomplex<0.2,>=0.1; extra == "plugins"
Requires-Dist: spectrochempy-carroucell<0.2,>=0.1; extra == "plugins"
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
Requires-Dist: ipywidgets; extra == "test"
Requires-Dist: pyfakefs; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-doctestplus; extra == "test"
Requires-Dist: pytest-ruff; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
Requires-Dist: numpydoc; extra == "test"
Dynamic: license-file

<h1 align ="center">
<img src='https://github.com/spectrochempy/spectrochempy/raw/master/docs/_static/scpy.png' width="150">
<br>
SpectroChemPy
</h1>

[![Tests Actions Status](https://github.com/spectrochempy/spectrochempy/actions/workflows/test_package.yml/badge.svg)](https://github.com/spectrochempy/spectrochempy/actions)
[![codecov](https://codecov.io/gh/spectrochempy/spectrochempy/graph/badge.svg?token=A0NHMQNQ1E)](https://codecov.io/gh/spectrochempy/spectrochempy)
![Conda](https://img.shields.io/conda/v/spectrocat/spectrochempy)
[![PyPI version](https://badge.fury.io/py/spectrochempy.svg)](https://badge.fury.io/py/spectrochempy)
[![Docs](https://readthedocs.org/projects/docs/badge/?version=latest)](https://www.spectrochempy.fr/latest)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3823841.svg)](https://doi.org/10.5281/zenodo.3823841)
![Conda](https://img.shields.io/conda/l/spectrocat/spectrochempy)

## What is SpectroChemPy?

SpectroChemPy (SCPy) is a framework for processing, analyzing and modeling spectroscopic data for chemistry with Python. It is cross-platform (Linux, Windows, macOS) and features a lightweight core with optional plugins for domain-specific workflows.

## Key Features

* **Core Data Structure**: `NDDataset` object with labeled axes and metadata
* **Project Management**: Work with multiple `NDDataset` objects simultaneously
* **Data Processing**:
  * Physical units support
  * Mathematical operations, baseline correction, automatic subtraction
  * Generic FFT with plugin-specific post-processing
* **Analysis Tools**:
  * SVD, PCA, MCR-ALS, EFA, PLS, fitting …
* **I/O Support**:
  * Import from various experiment formats
  * Export to CSV, JCAMP-DX, MATLAB …
  * Plugin-based readers (NMR TopSpin, Carroucell …)
* **Plugin System**:
  * Automatic discovery of optional plugins
  * Namespaced APIs: `scp.nmr.read_topspin(...)`, `scp.iris.IRIS()`
  * Dataset accessors for plugin-bound operations

## Official Plugins

Extend SpectroChemPy with official plugins (installed separately):

| Plugin | Install | What it provides |
|--------|---------|------------------|
| `spectrochempy-nmr` | `pip install spectrochempy-nmr` | Bruker TopSpin reader, NMR-specific processing |
| `spectrochempy-iris` | `pip install spectrochempy-iris` | 2D-IRIS analysis tools |
| `spectrochempy-hypercomplex` | `pip install spectrochempy-hypercomplex` | Quaternion / hypercomplex support |
| `spectrochempy-carroucell` | `pip install spectrochempy-carroucell` | Carroucell experiment reader |

Or via conda from the `spectrocat` channel (`conda-forge` provides the dependencies):

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

Plugins are discovered automatically once installed — no manual loading step required.

### Experimental plugins

`spectrochempy-cantera` is available as an **experimental** plugin. It is not
officially supported, not included in aggregate extras, and must be installed
manually::

    pip install spectrochempy-cantera

> **⚠️ WARNING**: SpectroChemPy is under active development. The current design may undergo major changes. Please report any issues to our [Issue Tracker](https://github.com/spectrochempy/spectrochempy/issues).

## Quick Links

* 📚 [Documentation](https://www.spectrochempy.fr)
* 🔌 [Plugins](https://www.spectrochempy.fr/userguide/plugins/index.html)
* 🚀 [Installation Guide](https://www.spectrochempy.fr/gettingstarted/install/index.html)
* 📓 [Example Notebooks](https://www.spectrochempy.fr/gettingstarted/examples/index.html)
* 🐛 [Issue Tracker](https://github.com/spectrochempy/spectrochempy/issues)
* 📝 [How to Cite](https://www.spectrochempy.fr/credits/citing.html)
* 💻 [Source Code](https://github.com/spectrochempy/spectrochempy)

## License

[CeCILL-B FREE SOFTWARE LICENSE AGREEMENT](https://cecill.info/licences/Licence_CeCILL-B_V1-en.html)
