Skip to content

Performance Optimizations

Latest

Choose a tag to compare

@florent-pajot florent-pajot released this 03 Feb 21:26
· 8 commits to main since this release
d2aa13b

Performance Improvements

  • Implement sparse-preserving join operation (10x memory reduction for large slice counts)
  • Optimize _dummify with direct CSR construction (2-3x speedup)
  • Add optional Numba JIT optimization for 5-50x performance improvements
  • Add comprehensive performance benchmark suite

Code Quality

  • Fix min_sup parameter mutation in fit()
  • Replace assert with ValueError for production safety
  • Remove global logging configuration
  • Handle division by zero warnings with np.errstate
  • Add complete Python 3.10+ type annotations
  • Ensure deterministic slice ordering for equal scores

Build & Tooling

  • Migrate from Poetry to uv for dependency management (10-100x faster)
  • Convert pyproject.toml to PEP 621 format with hatchling backend
  • Replace black, isort, flake8 with Ruff for linting/formatting
  • Update pre-commit hooks to use ruff-pre-commit

CI/CD

  • Add matrix testing for Numba optimization (with/without)
  • Fix notebook execution timeouts
  • Add Python 3.13 readiness tracking (Python 3.13 is temporarily excluded from compatible versions)

Testing

  • Add 16 new parameter validation tests
  • Add numerical consistency tests for Numba/NumPy implementations
  • Increase test coverage to 96%

Documentation

  • Add CLAUDE.md developer documentation
  • Add Numba optimization guide
  • Add cardinality benchmarks

BREAKING CHANGE:

  • Poetry is no longer used, use uv instead
  • Python 3.13 is not fully supported