From 3fd7013cace498276e98d3a837aaa8a71b9f5a02 Mon Sep 17 00:00:00 2001 From: Matthew Tamayo-Rios Date: Thu, 20 Aug 2026 20:09:50 +0000 Subject: [PATCH] Declare fbm as a runtime dependency, not a dev extra MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit powersig/util/__init__.py imports fbm_utils eagerly and fbm_utils does `from fbm import FBM`, so fbm is needed to import the package at all — but it was only listed in the dev extra and requirements-dev.txt. On a plain install powersig.util.grid, powersig.torch.algorithm and powersig.cupy_backend.algorithm all raise ModuleNotFoundError: No module named 'fbm'. That is the torch and cupy backends unimportable from a released wheel. fbm is safe to require: version 0.3.0 is a pure-Python py3-none-any wheel, four source modules, no compiled extensions, and numpy is its only dependency — which this project already requires. Nothing CUDA-specific or platform-specific. Removed from the dev extra and requirements-dev.txt, where it is now redundant. Verified: the three imports above succeed, and tests/test_core_jax.py stays 21/21. --- pyproject.toml | 4 +++- requirements-dev.txt | 1 - requirements.txt | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 34fc020..8ccd2a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,9 @@ classifiers = [ "Topic :: Scientific/Engineering :: Mathematics", ] dependencies = [ + # Imported at package load: powersig/util/__init__.py pulls in fbm_utils, + # so the torch, cupy and jax backends all need it just to import. + "fbm>=0.3.0", "numpy>=1.26.4", "scikit-learn>=1.3.2", "tqdm>=4.67.1", @@ -46,7 +49,6 @@ cupy = ["cupy-cuda12x>=13.4.1"] cupy-cuda13 = ["cupy-cuda13x>=13.6.0"] dev = [ "pytest>=7.0", - "fbm>=0.3.0", ] all = [ "jax[cuda13]>=0.10.0", diff --git a/requirements-dev.txt b/requirements-dev.txt index 029be2d..d882c63 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -5,6 +5,5 @@ matplotlib git+https://github.com/crispitagorico/sigkernel.git git+https://github.com/geekbeast/KSig.git git+https://github.com/FrancescoPiatti/polysigkernel.git -fbm seaborn datasets \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 4e73976..25eb641 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,6 +17,7 @@ setuptools aeon numba==0.61.2 cupy-cuda13x>=13.6.0 +fbm psutil tqdm==4.67.1 jax[cuda13]>=0.10.0