sklears-python 0.1.0-beta.1

Python bindings for sklears machine learning library using PyO3
Documentation
[package]
name = "sklears-python"
version.workspace = true
authors.workspace = true
license.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Python bindings for sklears machine learning library using PyO3"
keywords = ["machine-learning", "python", "pyo3", "scikit-learn", "bindings"]
categories = ["api-bindings", "science", "mathematics"]

[lib]
name = "sklears_python"
crate-type = ["cdylib"]

[dependencies]
# Core sklears dependencies (enabled with SciRS2 compatibility)
sklears-core = { workspace = true }
sklears-linear = { workspace = true, features = ["bayesian", "elastic-net", "logistic-regression"] }
sklears-metrics = { workspace = true }
# TODO: Enable other crates as they get SciRS2 compatibility
# sklears = { workspace = true, features = ["all-algorithms"] }
# sklears-clustering = { workspace = true }
# sklears-ensemble = { workspace = true }
# sklears-tree = { workspace = true }
# sklears-neural = { workspace = true }
# sklears-neighbors = { workspace = true }
# sklears-naive-bayes = { workspace = true }
# sklears-svm = { workspace = true }
# sklears-decomposition = { workspace = true }
# sklears-datasets = { workspace = true }
# sklears-feature-selection = { workspace = true }
# sklears-gaussian-process = { workspace = true }
# sklears-discriminant-analysis = { workspace = true }
# sklears-manifold = { workspace = true }
# sklears-model-selection = { workspace = true }
# sklears-utils = { workspace = true }

# Python bindings
pyo3 = { version = "0.25", features = ["extension-module", "chrono", "indexmap"] }

# Array and data handling
numpy = "0.25"
# SciRS2-Core integration for high-performance array operations
scirs2-autograd = { workspace = true }  # Primary source for ndarray types
scirs2-core = { workspace = true }  # Core SciRS2 functionality
scirs2-linalg = { workspace = true }  # Linear algebra operations

# Error handling
thiserror = { workspace = true }
anyhow = { workspace = true }

# Serialization for model persistence
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }

# Optional pandas integration
polars = { workspace = true, optional = true }

# Utility dependencies
num_cpus = { workspace = true }
rayon = { workspace = true }
# Use SciRS2 random number generation instead of direct rand
# rand = { workspace = true }  # Replaced with scirs2-core::random

[features]
default = ["pandas-integration"]
pandas-integration = ["polars"]
parallel = []

[dev-dependencies]
# Testing dependencies
proptest = { workspace = true }
# Use SciRS2 random number generation in tests
# rand = { workspace = true }  # Replaced with scirs2-core::random

# Python examples are not Rust examples - they should be run separately
# [[example]]
# name = "python_demo"
# path = "examples/python_demo.py"
# required-features = []