[package] name = "rtx-sklearn-py" version = "1.0.0" edition.workspace = true rust-version = "1.92" authors = ["RustyTorch++ Team"] license = "Apache-2.0" description = "Python bindings for RustyTorch++ classical ML algorithms with scikit-learn compatibility" repository = "https://github.com/rustytorch/rustytorch" [lib] name = "rustytorch_ml" crate-type = ["cdylib", "rlib"] [dependencies] # Workspace dependencies rtx-ml-classic = { path = "../rtx-ml-classic" } rtx-preprocessing = { path = "../../training/rtx-preprocessing" } rtx-validation = { path = "../../core/rtx-validation" } rtx-tensor = { path = "../../core/rtx-tensor" } # PyO3 for Python bindings # Note: extension-module is enabled by default but disabled for tests # When running tests, use: cargo test --no-default-features --features gpu,async pyo3 = { version = "0.20", features = ["multiple-pymethods", "abi3-py38", "auto-initialize"] } pyo3-asyncio = { version = "0.20", features = ["tokio-runtime"], optional = true } # Numerical computing numpy = "0.20" ndarray = "0.15" # Async support tokio = { workspace = true } async-trait = { workspace = true } # Error handling anyhow = { workspace = true } thiserror = { workspace = true } # Serialization serde = { workspace = true } serde_json = { workspace = true } # Utilities dashmap = { workspace = true } parking_lot = { workspace = true } rand = "0.8" num_cpus = "1.16" [build-dependencies] pyo3-build-config = "0.20" [dev-dependencies] proptest = { workspace = true } tokio-test = { workspace = true } [features] default = ["gpu", "async"] gpu = [] async = ["pyo3-asyncio"] extension-module = ["pyo3/extension-module"] # The extension-module feature should only be enabled when building the Python module, # not when running tests. This avoids linker errors with undefined Python symbols. [lints] workspace = true