CHANGELOG
v2.3.0 (2026-10-01)
Documentation
- Add time and memory benchmarks
(
4113caf)
Features
-
Add k-means++ initialization via init parameter (
23a9e3d) -
Add n_init for multiple restarts keeping the best objective (
6281eab)
v2.2.0 (2026-09-30)
Chores
-
Drop stale requirements files and commitlint, build docs with uv (
0e6688d) -
Drop unused readme link and shallow-clone history in test jobs (
3e0fa8c) -
Remove dead mypy, coverage and interrogate config, ignore mkdocs site/ (
63eb585) -
Remove unused cli helper and stale poetry kernel metadata (
693a885) -
Sync uv.lock with version 2.1.0 (
2730041) -
Use the interrogate threshold from pyproject in pre-commit (
5633b2a)
Documentation
- Add missing mathjax config, drop polyfill.io, list distances notebook in nav
(
157a160)
Features
- Add fuzzy validity indices and select_n_clusters
(
48c69f5)
v2.1.0 (2026-09-30)
Chores
- Sync uv.lock with version 2.0.3
(
a1fdf3a)
v2.0.3 (2026-09-13)
Bug Fixes
-
Pin mkdocs-autorefs to a version compatible with mkdocstrings 0.24 (
3b4f8a6) -
Use absolute differences in minkowski distance (
d59b3d4)
Build System
- deps: Bump bleach from 4.1.0 to 6.4.0
(
13d8fe4)
Bumps bleach from 4.1.0 to 6.4.0. - Changelog - Commits
--- updated-dependencies: - dependency-name: bleach dependency-version: 6.4.0
dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump jupyter-server from 1.17.0 to 2.20.0
(
274a1c2)
Bumps jupyter-server from 1.17.0 to 2.20.0. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: jupyter-server dependency-version: 2.20.0
dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump pillow from 9.0.1 to 12.2.0
(
13827d1)
Bumps pillow from 9.0.1 to 12.2.0. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: pillow dependency-version: 12.2.0
dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump urllib3 from 1.26.8 to 2.7.0
(
0358053)
Bumps urllib3 from 1.26.8 to 2.7.0. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.7.0
dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
Chores
- Sync uv.lock with version 2.0.2
(
ecf9337)
Features
-
Add fuzzy c-medoids (FCMedoids) and handle zero distance in soft_predict (
edc28f7) -
Add fuzzy-possibilistic c-means (FPCM) (
0b77af1) -
Add Gath-Geva clustering (GG) (
10f03ac) -
Add Gustafson-Kessel clustering (GK) (
9b30048) -
Add kernel fuzzy c-means (KFCM) (
7e62313) -
Add possibilistic c-means (PCM) (
e4de1ec)
Refactoring
- Split FCM.fit into _init_u and _update_centers hooks
(
0e951be)
v2.0.2 (2026-07-19)
Bug Fixes
-
Enforce lint checks and update stale actions in CI (
f394ee7) -
Repair broken pre-commit hook configuration (
fe3bf0f)
Chores
- Trigger release workflow to test push dispatch
(
ac06720)
Code Style
- Format code and add missing docstrings for lint compliance
(
1af5acf)
v2.0.1 (2026-07-19)
Bug Fixes
- Update readthedocs build os to ubuntu-24.04
(
ee05f42)
v2.0.0 (2026-07-18)
Performance Improvements
soft_predict computed cluster memberships with a joblib.Parallel loop over clusters, adding pickling overhead for problems with only a handful of clusters. Replace it with an equivalent vectorized numpy expression and drop joblib and the n_jobs parameter entirely.
BREAKING CHANGE: removes the public n_jobs parameter. Existing FCM(n_jobs=...) calls keep working since extra fields are allowed and ignored, but n_jobs no longer has any effect.
Refs #116
Refactoring
predict, centers, partition_coefficient and partition_entropy_coefficient each duplicated the same if/else ReferenceError check via _is_trained. Replace it with a single _require_trained() guard called up front.
Refs #116
Testing
Add regression coverage for the vectorized soft_predict and the consolidated trained-state guard: u rows sum to one, soft_predict(X) reproduces the fitted membership matrix, and predict returns deterministic labels within range.
Refs #116
Breaking Changes
- Removes the public n_jobs parameter. Existing FCM(n_jobs=...) calls keep working since extra fields are allowed and ignored, but n_jobs no longer has any effect.
v1.7.5 (2026-07-18)
Bug Fixes
- Allow datasets containing 0.0 values in CLI
(
8ed2271)
_read_data rejected any CSV with a legitimate 0.0 value because np.all(X) treats 0 as falsy. The
check also never caught its intended case: a wrong delimiter makes genfromtxt produce NaN, which
np.all() treats as truthy, so the existing NaN check below already covers both wrong-delimiter and
NaN-data cases on its own.
v1.7.4 (2026-07-18)
Bug Fixes
- Relax tabulate version constraint to allow 0.9.x
(
5e0f277)
Allows tabulate>=0.9.0 alongside pandas[output-formatting]/[all] (>=2.2), which requires tabulate>=0.9.0 and previously conflicted with our <0.9 pin.
v1.7.3 (2026-07-17)
Bug Fixes
- Rename commitlint config to .cjs to fix ESM error
(
8a4b169)
The action's runtime has "type": "module" in its package.json, so a .js file using module.exports is loaded as ESM and throws "module is not defined in ES module scope". Renaming to .cjs forces CommonJS regardless of that setting.
-
Repair broken release and publish pipeline (
584087f) -
semantic_release.version_toml pointed at tool.poetry.version, a key that no longer exists after the uv migration; version now lives at project.version - build_command still called
poetry build - publish.yml never ran: it triggers on tag push, but release.yml creates tags using GITHUB_TOKEN,
and GitHub does not fire workflows from events created by the default token -
.pre-commit-config.yaml coverage hook still called
poetry run pytest
Moves build+publish into release.yml itself, gated on the release step's released output, so
there's no cross-workflow tag trigger to rely on. Removes the now-unreachable publish.yml.
- Use admin PAT for semantic-release push to bypass PR rule
(
bd45b22)
The "Require a pull request before merging" ruleset on master blocks any direct push, including the version bump commit and tag that python-semantic-release pushes with GITHUB_TOKEN. Switching to a PAT from an account added to the ruleset's bypass list (Repository admin role) lets that push go through without weakening the rule for regular contributors.
Build System
Continuous Integration
- Enforce conventional commits on pull requests
(
0e8b177)
Adds a commitlint job so non-conforming commit messages are caught before merge instead of being silently ignored by semantic-release after the fact.
v1.7.2 (2024-03-18)
Bug Fixes
- Fix release and publish scripts.
(
7718856)
v1.7.1 (2024-03-18)
Bug Fixes
- Correction of the cosine distance calculation method (#78).
(
c0fd2f8)
Build System
Bumps markdown-it-py from 2.1.0 to 2.2.0. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: markdown-it-py dependency-type: indirect ...
Signed-off-by: dependabot[bot] support@github.com
- deps-dev: Bump jinja2 from 3.1.2 to 3.1.3
(
bff083f)
Bumps jinja2 from 3.1.2 to 3.1.3. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: jinja2 dependency-type: indirect ...
Signed-off-by: dependabot[bot] support@github.com
Chores
-
Add new env var. (
8a2cd12) -
Change semantic release options. (
ee5ffef) -
Remove notebook outputs (
b9bd71c)
Refactoring
- Update pydantic and typer version.
(
5d6384e)
v1.7.0 (2022-12-09)
Build System
- deps: Bump jupyter-server from 1.13.5 to 1.15.4
(
7dc2a2e)
Bumps jupyter-server from 1.13.5 to 1.15.4. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: jupyter-server dependency-type: indirect ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump jupyter-server from 1.13.5 to 1.15.4 in /docs
(
741a4c9)
Bumps jupyter-server from 1.13.5 to 1.15.4. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: jupyter-server dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump jupyter-server from 1.15.4 to 1.17.0
(
aeed1c0)
Bumps jupyter-server from 1.15.4 to 1.17.0. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: jupyter-server dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump jupyter-server from 1.15.4 to 1.17.0 in /docs
(
77f3dc0)
Bumps jupyter-server from 1.15.4 to 1.17.0. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: jupyter-server dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump nbconvert from 6.4.2 to 6.5.1
(
f9ca62f)
Bumps nbconvert from 6.4.2 to 6.5.1. - Release notes - Commits
--- updated-dependencies: - dependency-name: nbconvert dependency-type: indirect ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump notebook from 6.4.10 to 6.4.12
(
57199d7)
Bumps notebook from 6.4.10 to 6.4.12.
--- updated-dependencies: - dependency-name: notebook dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump notebook from 6.4.10 to 6.4.12 in /docs
(
c6cf621)
Bumps notebook from 6.4.10 to 6.4.12.
--- updated-dependencies: - dependency-name: notebook dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump notebook from 6.4.8 to 6.4.10
(
9a15579)
Bumps notebook from 6.4.8 to 6.4.10.
--- updated-dependencies: - dependency-name: notebook dependency-type: indirect ...
Signed-off-by: dependabot[bot] support@github.com
- deps: Bump notebook from 6.4.8 to 6.4.10 in /docs
(
24edbbe)
Bumps notebook from 6.4.8 to 6.4.10.
--- updated-dependencies: - dependency-name: notebook dependency-type: direct:production ...
Signed-off-by: dependabot[bot] support@github.com
Chores
- Change interrogate pre-commit.
(
e2a4b57)
Documentation
-
Add all packages (
bd8cfe9) -
Add readthedocs badge (
40bec9e) -
Adds interrogate pre-commit (
5258adb) -
Create documentation (
70395ea)
docs: create documentation
Features
v1.6.4 (2022-02-19)
Bug Fixes
-
Fix some stuff. (
f3289ad) -
Fix some stuff. (
a5d50b7) -
Removing tests/ from .gitignore (
f18c73a) -
Tests and packaging method (
62f26c3)
fix: tests and packaging method
- Tests and packaging method
(
797d283)
Build System
Code Style
Documentation
- Remove old sphynx docs
(
cedfdf6)
v1.6.3 (2021-09-09)
v1.6.2 (2021-09-08)
v1.4.0 (2021-05-10)
Build System
- Add extra cli dependencies
(
9e9f6d1)
Documentation
- CLI.md: Add documentation about cli
(
3aee113)
Add typer generated documentation about fcm commands.
Features
- fcmeans/cli.py: Add the command line interface tool
(
01906b3)
Add a command line tool that allows you to train and use models without the need for programming, just by executing commands.
Refactoring
- Rename old files due to library name conflict
(
eb8169b)
Change of jax and numpy submodules because they are conclicting with the libraries
v1.3.1 (2021-05-06)
Bug Fixes
- pyproject.toml: Change extra dependencies
(
ffd3477)
v1.3.0 (2021-05-06)
Build System
- Add commitizen and pre-commit
(
eb382d6)
Documentation
- README.md: Add new installation instructions
(
cc95952)
Add instructions to install extra dependencies of windows and examples
Features
- Add Windows support
(
7ae1e19)