Skip to main content

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

  1. Clone the repository:

    git clone https://github.com/kowanietz/scikit-lite.git
    cd scikit-lite
    
  2. Install dependencies and build Rust extensions:

    uv sync --extra dev
    uv run maturin develop
    
  3. 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

  1. Ensure versions match in both:

    • pyproject.toml: version = "x.y.z"
    • Cargo.toml: version = "x.y.z"
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scikit_lite-0.0.1.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scikit_lite-0.0.1-cp311-cp311-macosx_11_0_arm64.whl (169.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Hashes for scikit_lite-0.0.1.tar.gz
Algorithm Hash digest
SHA256 49f03ea52754de407bec9520cee552153feb8b386de553d817cafd716e562261
MD5 78f0a6de88b81ed6c4e3a34758960bab
BLAKE2b-256 9c3f0c5bd094a82f27e8e0c2ad2f778ee7f5a68b5e6c14b8b2f7baae8a0f8447

See more details on using hashes here.

File details

Details for the file scikit_lite-0.0.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scikit_lite-0.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 abb461bddbda5a8e3d9f5badb777988f84372a39424f626a805b6bd375e9d4be
MD5 0b6599c2bd681f539d97a8d41cc35357
BLAKE2b-256 029958e6a6aab228241c4b8a88a59ee071e2c2a8cff8faa3a6a009cfc427d6e9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page