Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,27 @@ those changes.

## [Unreleased]

## [1.57.0] - 2026-07-16

### Added

- Batch preprocessing transformers (sklearn `BaseEstimator` / `TransformerMixin`
facades over the existing free functions, so a batch workflow can be a
pipeline): `batch.BatchScaler` (range scaling with `inverse_transform`),
`batch.ResampleAligner` (linear resampling to a common length),
`batch.DTWAligner` (iterative weighted DTW alignment, learning a reference and
weights and aligning new batches), and `batch.BatchFeatureExtractor` (a
batch-data dictionary to a batch-by-feature matrix for a PLS-to-quality model).
- `batch.features.f_rupture` is now implemented (previously a stub): it detects
the first changepoint in a tag's trajectory per batch and phase using the
optional `ruptures` library.

### Changed

- The `batch` optional extra now provides `ruptures` (used by `f_rupture`)
instead of `openpyxl` and `scikit-image`, which were declared but imported
nowhere.

## [1.56.0] - 2026-07-16

### Added
Expand Down Expand Up @@ -2557,7 +2578,8 @@ this entry records them together.
- Reworked the README with a sharper value proposition and a
"Why not scikit-learn?" comparison table.

[Unreleased]: https://github.com/kgdunn/process-improve/compare/v1.56.0...HEAD
[Unreleased]: https://github.com/kgdunn/process-improve/compare/v1.57.0...HEAD
[1.57.0]: https://github.com/kgdunn/process-improve/compare/v1.56.0...v1.57.0
[1.56.0]: https://github.com/kgdunn/process-improve/compare/v1.55.0...v1.56.0
[1.55.0]: https://github.com/kgdunn/process-improve/compare/v1.54.0...v1.55.0
[1.54.0]: https://github.com/kgdunn/process-improve/compare/v1.53.0...v1.54.0
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ authors:
repository-code: "https://github.com/kgdunn/process-improve"
url: "https://kgdunn.github.io/process-improve/"
license: MIT
version: 1.56.0
version: 1.57.0
date-released: "2026-07-16"
keywords:
- chemometrics
Expand Down
4 changes: 4 additions & 0 deletions docs/api/batch.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ Batch Data Analysis
:members:
:show-inheritance:

.. automodule:: process_improve.batch._transformers
:members:
:show-inheritance:

.. automodule:: process_improve.batch._batch_plots
:members:
:show-inheritance:
Expand Down
12 changes: 5 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "process-improve"
version = "1.56.0"
version = "1.57.0"
description = 'Designed Experiments; Latent Variables (PCA, PLS, multivariate methods with missing data); Process Monitoring; Batch data analysis.'
readme = "README.md"
license = "MIT"
Expand Down Expand Up @@ -61,11 +61,10 @@ expt = [
"pyDOE3>=1.0",
]

# Batch process data analysis: image-IO + Excel readers used by the
# batch alignment / fixture loaders.
# Batch process data analysis: changepoint detection for the f_rupture
# landmark feature (process_improve.batch.features.f_rupture).
batch = [
"openpyxl>=3.1.5",
"scikit-image>=0.25.2",
"ruptures>=1.1.9",
]

# MCP server entry-point.
Expand Down Expand Up @@ -94,12 +93,11 @@ all = [
"matplotlib>=3.10.8",
"mcp>=1.0",
"numba>=0.63.1",
"openpyxl>=3.1.5",
"plotly>=6.5.2",
"pulp>=2.8",
"pyDOE3>=1.0",
"ridgeplot>=0.5.0",
"scikit-image>=0.25.2",
"ruptures>=1.1.9",
"seaborn>=0.13.2",
]

Expand Down
2 changes: 1 addition & 1 deletion src/process_improve/_extras.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

pip install 'process-improve[plotting]' # matplotlib + plotly + seaborn + ridgeplot
pip install 'process-improve[expt]' # pyDOE3 (DOE / experiments helpers)
pip install 'process-improve[batch]' # scikit-image + openpyxl
pip install 'process-improve[batch]' # ruptures (changepoint detection)
pip install 'process-improve[mcp]' # mcp
pip install 'process-improve[fast]' # numba (JIT)
pip install 'process-improve[ilp]' # pulp (OMARS design generator)
Expand Down
10 changes: 10 additions & 0 deletions src/process_improve/batch/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
online_monitoring_plot,
time_varying_loading_plot,
)
from process_improve.batch._transformers import (
BatchFeatureExtractor,
BatchScaler,
DTWAligner,
ResampleAligner,
)
from process_improve.batch.data_input import (
check_valid_batch_dict,
dict_to_melted,
Expand Down Expand Up @@ -50,8 +56,12 @@

__all__ = [
# Modelling and monitoring
"BatchFeatureExtractor",
"BatchMonitor",
"BatchPCA",
"BatchScaler",
"DTWAligner",
"ResampleAligner",
# Preprocessing/alignment
"batch_dtw",
# Data input/conversion
Expand Down
Loading
Loading