[package]
name = "sklears-feature-selection"
version.workspace = true
authors.workspace = true
license.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
keywords = ["machine-learning", "feature-selection", "scikit-learn"]
categories = ["science", "mathematics"]
description = "Feature selection algorithms for sklears - scikit-learn compatible ML in Rust"

[lints]
workspace = true

[dependencies]
sklears-core = { workspace = true }
sklears-utils = { workspace = true }
# sklears-model-selection = { workspace = true }
# SciRS2 Policy Compliant Dependencies
scirs2-core = { workspace = true }
scirs2-stats = { workspace = true }  # For statistical feature selection methods
scirs2-optimize = { workspace = true }

# ❌ REMOVED: scirs2-autograd - use scirs2_core::ndarray instead (SciRS2 Policy)
thiserror = { workspace = true }
serde = { workspace = true, features = ["derive"], optional = true }
serde_json = { workspace = true, optional = true }
oxicode = { workspace = true, optional = true }
parquet = { workspace = true, optional = true }
arrow = { workspace = true, optional = true }
num_cpus = { workspace = true }
rayon = { workspace = true }
statrs = { workspace = true }

[dev-dependencies]
approx = { workspace = true }
proptest = { workspace = true }
# Following SciRS2 Policy - use scirs2-core for random number generation
criterion = { workspace = true }

[features]
default = []
serde = ["dep:serde", "dep:serde_json", "dep:oxicode", "sklears-core/serde"]
parquet = ["dep:parquet", "dep:arrow"]

[[bench]]
name = "feature_selection_benchmarks"
harness = false
