Tags: bmsuisse/rusket
Tags
refactor: reorganize rusket into subpackages Move 58 flat Python files into 9 logical subpackages: - _internal: core utils, config, validation, typing, similarity, analytics - miners: fpgrowth, eclat, fin, lcm, negfin, prefixspan, hupm, mine, etc. - recommenders: als, bpr, ease, svd, nmf, lightgcn, item_knn, user_knn, etc. - sequential: fpmc, sasrec, bert4rec - evaluation: metrics, model_selection, pipeline, optuna, splitting - export: factors, ann, faiss_ann, mlflow, vector_export, hybrid_embedding - viz: plots, pca, pacmap, incremental_pca - integrations: spark, cuda, gpu, grouped - model: base, miner, recommender, mixins (already existed) Backward compatibility maintained via: - 46 sys.modules redirect shim files at rusket/ level - Updated __init__.py re-exports (public API unchanged) - Proper subpackage __init__.py with key re-exports All 767 tests pass.
refactor: split model.py monolith into model/ package with focused su… …bmodules - Split model.py (1102 lines) into model/ package: _mixins.py (RuleMinerMixin), _base.py (BaseModel + load_model), _miner.py (Miner), _recommender.py (ImplicitRecommender + SequentialRecommender) - Extract detect_dataframe_type() and try_import_polars() helpers into _type_utils.py - Zero import breakage: __init__.py re-exports all names for backward compat - Eliminate ~30 lines of duplicated type detection and polars import boilerplate - desloppify strict score: 21.1 → 79.6/100
feat: rename GPU → CUDA, auto-detect CUDA on import, add CUDA codepat… …hs to all models - Rename enable_gpu → enable_cuda, disable_gpu → disable_cuda, is_gpu_enabled → is_cuda_enabled - Rename use_gpu → use_cuda in all 14 model files (backward compat: use_gpu kwarg still accepted) - Create rusket/cuda.py as primary module, gpu.py as backward-compat shim - Auto-detect CUDA on import rusket (probes CuPy/PyTorch) - Add CUDA codepaths to ALS, EASE, FPMC recommend_items - New test_cuda_config.py (11 tests) and test_cuda_vectordb.py (19 tests) - Delete old test_gpu_config.py and test_gpu_vectordb.py (superseded)
feat: add rusket.enable_gpu() global CUDA toggle - New _config.py with enable_gpu/disable_gpu/is_gpu_enabled - All 12 models now use use_gpu: bool | None = None with _resolve_gpu() - Per-model override still works (use_gpu=False overrides global) - 8 new tests in test_gpu_config.py - Bump to v0.1.85
feat: move NMF/EASE/ContentBased heavy computation to Rust - NMF: parallel multiplicative update loop in Rust (was NumPy) - EASE: Gram matrix + Cholesky inversion via faer (was scipy) - ContentBased: TF-IDF + cosine similarity in Rust (was sklearn) - Add type stubs for nmf_fit, ease_fit, tfidf_cosine_similarity - Fix gpu.py lint (ambiguous variable I -> eye) - Bump version to 0.1.84
PreviousNext