- Upgrade workspace pyo3 0.24 → 0.25 and numpy 0.24 → 0.25 for Python 3.14 support - rtx-sklearn-py: replace pinned pyo3 0.20 / pyo3-asyncio 0.20 / numpy 0.20 with workspace versions; remove broken pyo3-asyncio async feature; update pyo3-build-config to 0.24 - rtx-bindings: uncomment pyo3/numpy/ndarray optional deps; enable python feature in Cargo.toml - Migrate rtx-bindings python/ to PyO3 0.25 Bound API: &PyAny → Bound<'py, PyAny>, downcast/extract on Bound types, remove rtx_runtime import, remove InferenceError arm (variant not in enum), fix py_shape_to_shape signature - Migrate rtx-sklearn-py src/ to PyO3 0.25 Bound API: #[pymodule] fn now takes &Bound<'_, PyModule>, &PyDict → &Bound<'py, PyDict>, from_array returns Bound (unbind instead of to_owned), PyTuple::new now fallible, use numpy::ndarray (0.16) over workspace ndarray (0.15) to resolve trait mismatches Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
63 lines
1.6 KiB
TOML
63 lines
1.6 KiB
TOML
[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
|
|
pyo3 = { workspace = true, features = ["multiple-pymethods", "abi3-py38"] }
|
|
|
|
# Numerical computing
|
|
numpy = { workspace = true }
|
|
ndarray = { workspace = true }
|
|
|
|
# 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.24"
|
|
|
|
[dev-dependencies]
|
|
proptest = { workspace = true }
|
|
tokio-test = { workspace = true }
|
|
|
|
[features]
|
|
default = ["gpu"]
|
|
gpu = []
|
|
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
|