Lightweight machine learning library with scikit-learn compatible API
Project description
scikit-lite
⚠️ PRE-ALPHA - This package is in very early development. APIs will change.
A simple machine learning library built for educational purposes.
Installation
For users:
pip install scikit-lite
Development Installation
Prerequisites
- Python >= 3.11
- Rust and Cargo (install from https://rustup.rs)
- uv (install with
pip install uv)
Setup
-
Clone the repository:
git clone https://github.com/kowanietz/scikit-lite.git cd scikit-lite
-
Install dependencies and build Rust extensions:
uv sync --extra dev uv run maturin develop
-
Verify installation:
python -c "import sklite; print(sklite.rust_health_check())"
Development Workflow
Rebuilding After Changes
When you modify Rust code in src/:
# Quick rebuild (debug mode)
uv run maturin develop
# Optimized rebuild (release mode, slower build but faster runtime)
uv run maturin develop --release
Code Quality
# Install pre-commit hooks (one-time setup)
uv run pre-commit install
# Run all checks manually
uv run pre-commit run --all-files
Publishing to PyPI
Prerequisites
-
Ensure versions match in both:
pyproject.toml:version = "x.y.z"Cargo.toml:version = "x.y.z"
-
Set PyPI token:
export MATURIN_PYPI_TOKEN="your-pypi-token"
Publish
# Build and publish in one command
uv run maturin publish --release
Maturin will automatically:
- Build optimized wheels for your platform
- Upload to PyPI
TODO: Migrate release workflow to GitHub Actions for multiplatform builds.
Contributing
This project is in early development. Contributions are welcome but please note the API is unstable.
License
MIT License - See LICENSE file for details.
Acknowledgments
Inspired by scikit-learn's excellent API design and educational resources.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scikit_lite-0.0.1.tar.gz.
File metadata
- Download URL: scikit_lite-0.0.1.tar.gz
- Upload date:
- Size: 30.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49f03ea52754de407bec9520cee552153feb8b386de553d817cafd716e562261
|
|
| MD5 |
78f0a6de88b81ed6c4e3a34758960bab
|
|
| BLAKE2b-256 |
9c3f0c5bd094a82f27e8e0c2ad2f778ee7f5a68b5e6c14b8b2f7baae8a0f8447
|
File details
Details for the file scikit_lite-0.0.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: scikit_lite-0.0.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 169.0 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abb461bddbda5a8e3d9f5badb777988f84372a39424f626a805b6bd375e9d4be
|
|
| MD5 |
0b6599c2bd681f539d97a8d41cc35357
|
|
| BLAKE2b-256 |
029958e6a6aab228241c4b8a88a59ee071e2c2a8cff8faa3a6a009cfc427d6e9
|