Problem
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
Problem
Three packages are declared as hard runtime dependencies but are imported
nowhere in
src/:src/numballvmlite, constrains the supported NumPy rangellvmlitenumbacompanioncmaescycloptsbenches/primitives/leonardo/bench_mpo_mpo.pyVerify with:
The cost is paid by every downstream user: a much larger install, a slower
resolve, a bigger vulnerability surface, and — worst of all —
numbapins thecompatible NumPy range, so it can block users from upgrading NumPy for reasons
that have nothing to do with this library.
Proposed fix
numba,llvmliteandcmaesfrom[project.dependencies]entirely.cycloptsout of the runtime dependencies into abenchdependencygroup, since only the benchmark scripts use it.
uv.lock.After this change the runtime dependency set should be just:
numpy,opt_einsum,quimb(andstructloguntil #1 lands, which removes it too).Acceptance criteria
numba,llvmlite,cmaesremoved from[project.dependencies].cycloptsavailable to the benchmarks via a dependency group, not at runtime.uv.lockregenerated.