Metadata-Version: 2.4
Name: catboost-rs
Version: 0.1.0
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: catboost-rs-cuda ; extra == 'cuda'
Requires-Dist: catboost-rs-rocm ; extra == 'rocm'
Requires-Dist: catboost-rs-wgpu ; extra == 'wgpu'
Provides-Extra: cuda
Provides-Extra: rocm
Provides-Extra: wgpu
Summary: Rust-native CatBoost — scikit-learn-compatible and CatBoost-native Python bindings
License: Apache-2.0
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# catboost-rs (Python bindings)

PyO3 bindings exposing the Rust-native `catboost-rs` gradient-boosting library as
the `catboost_rs` Python module — both scikit-learn-compatible and CatBoost-native.

> Phase 8 / plan 08-01 stands up the thinnest end-to-end vertical slice:
> `CatBoostRegressor().fit(X, y).predict(X)` over a float32 contiguous NumPy
> array, wired through the real facade. Param validation, multi-source ingestion,
> the classifier / ranker, the error taxonomy, and packaging land in later plans.

## Backends

- Default wheel: **cpu** (abi3-py312, covers CPython 3.12/3.13/3.14 GIL builds).
- ROCm GPU: separate distribution `catboost-rs-rocm`, pulled via the `[rocm]`
  extra. Both wheels expose the `catboost_rs` import name and must not be
  installed simultaneously.

## Development

```bash
python3 -m venv .venv-py8
.venv-py8/bin/pip install "maturin>=1.9.4,<2.0" scikit-learn numpy pandas pyarrow polars
.venv-py8/bin/maturin develop --features cpu
.venv-py8/bin/pytest tests -q
```

