You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three packages are declared as hard runtime dependencies but are imported
nowhere in src/:
Package
Imports in src/
Notes
numba
0
heavy; drags in llvmlite, constrains the supported NumPy range
llvmlite
0
only present as a numba companion
cmaes
0
a CMA-ES optimiser; unrelated to tensor compression
cyclopts
0
used only by benches/primitives/leonardo/bench_mpo_mpo.py
Verify with:
grep -rnE "import (numba|cmaes|cyclopts|llvmlite)|from (numba|cmaes|cyclopts|llvmlite)" src/
# no matches
The cost is paid by every downstream user: a much larger install, a slower
resolve, a bigger vulnerability surface, and — worst of all — numba pins the
compatible NumPy range, so it can block users from upgrading NumPy for reasons
that have nothing to do with this library.
Proposed fix
Remove numba, llvmlite and cmaes from [project.dependencies] entirely.
Move cyclopts out of the runtime dependencies into a bench dependency
group, since only the benchmark scripts use it.
Regenerate uv.lock.
After this change the runtime dependency set should be just: numpy, opt_einsum, quimb (and structlog until #1 lands, which removes it too).
Acceptance criteria
numba, llvmlite, cmaes removed from [project.dependencies].
cyclopts available to the benchmarks via a dependency group, not at runtime.
uv.lock regenerated.
Test suite still passes and the benchmark script still runs.
Activity
chore(deps): 🔧 move benchmark-only dependencies to a bench group (#53)