Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Sklearn-Wrap

Python Version License PyPI Version Conda Version codecov

What is Sklearn-Wrap?

Sklearn-wrap enables you to wrap any Python class into a scikit-learn compatible estimator without rewriting your code. Whether you're integrating XGBoost's Booster API, custom gradient descent algorithms, or third-party machine learning libraries, sklearn-wrap provides the glue layer that makes them work seamlessly with sklearn's ecosystem.

With sklearn-wrap, you gain immediate access to GridSearchCV for hyperparameter tuning, Pipeline for composable workflows, and joblib for serialization, all while maintaining your original implementation. Perfect for data scientists who want sklearn compatibility without sacrificing custom logic or performance.

What are the features of Sklearn-Wrap?

  • Minimal boilerplate: 10-15 lines to wrap any Python class into a full sklearn estimator
  • Auto-parameter discovery: Constructor parameters automatically exposed for GridSearchCV/RandomizedSearchCV
  • Nested parameters: Support sklearn's double-underscore syntax for nested estimator hierarchies
  • Full ecosystem compatibility: Works seamlessly with Pipeline, cross-validation, and joblib serialization
  • Built-in validation: Optional parameter constraints with automatic type/value checking before fit
  • YAML configuration: Declarative estimator definitions with EstimatorConfig - build, save, and load estimators from YAML files (pip install sklearn-wrap[config])

How to install Sklearn-Wrap?

Install the Sklearn-Wrap package using pip:

pip install sklearn_wrap

or using uv:

uv pip install sklearn_wrap

or using conda:

conda install -c conda-forge sklearn_wrap

or using mamba:

mamba install -c conda-forge sklearn_wrap

or alternatively, add sklearn_wrap to your requirements.txt or pyproject.toml file.

How to get started with Sklearn-Wrap?

Here's a minimal example wrapping a custom polynomial regression class:

import numpy as np
from sklearn_wrap.base import BaseClassWrapper, _fit_context
from sklearn.base import RegressorMixin
from sklearn.model_selection import GridSearchCV

# Your custom class (unchanged)
class PolynomialRegressor:
    def __init__(self, degree=2, learning_rate=0.01, n_iterations=1000):
        self._degree = degree
        self._learning_rate = learning_rate
        self._n_iterations = n_iterations

    def fit_model(self, X, y):
        # ... your implementation ...
        return self

    def predict_output(self, X):
        # ... your implementation ...
        pass

# Wrapper (just 10 lines!)
class PolynomialWrapper(BaseClassWrapper, RegressorMixin):
    _estimator_name = "regressor"
    _estimator_base_class = object

    @_fit_context(prefer_skip_nested_validation=True)
    def fit(self, X, y):
        self.instance_.fit_model(X, y)  # Delegate to wrapped instance
        return self

    def predict(self, X):
        return self.instance_.predict_output(X)

# Use with sklearn tools
wrapper = PolynomialWrapper(
    regressor=PolynomialRegressor,
    degree=2,
    learning_rate=0.01
)

# Immediate GridSearchCV compatibility
param_grid = {'degree': [1, 2, 3], 'learning_rate': [0.001, 0.01, 0.1]}
grid_search = GridSearchCV(wrapper, param_grid, cv=5)
grid_search.fit(X, y)

How do I use Sklearn-Wrap?

Full documentation is available at https://sklearn-wrap.readthedocs.io/.

Interactive examples are available in the examples/ directory:

Can I contribute?

We welcome contributions, feedback, and questions:

If you are interested in becoming a maintainer or taking a more active role, please reach out to Guillaume Tauzin on stateful-y.io contact page.

Where can I learn more?

For questions and discussions, you can also open a discussion.

License

This project is licensed under the terms of the Apache-2.0 License.

Acknowledgements

This project is maintained by stateful-y, an ML consultancy specializing in data science & engineering. If you're interested in collaborating or learning more about our services, please visit our website.

Made by stateful-y

Metadata

Release files for sklearn-wrap 0.1.0a8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sklearn-wrap 0.1.0a8
File Size Uploaded
sklearn_wrap-0.1.0a8.tar.gz 397.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sklearn-wrap 0.1.0a8
File Interpreter ABI Platform
sklearn_wrap-0.1.0a8-py3-none-any.whl Python 3 none any Details

Total release size: 421.7 kB

Release files / sklearn_wrap-0.1.0a8.tar.gz

Download URL sklearn_wrap-0.1.0a8.tar.gz
Size 397.7 kB
Tags Source
SHA-256 checksum
How to use checksums
36f0fe84dfdfa61b5fd0007390ddd8d1c713cdd2dfe92e0211b9627d8043db41
BLAKE2b-256 checksum
How to use checksums
8157896ad70ceed6c98710890518bb960003c7db1028a4e61eb686eef9d752d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release files / sklearn_wrap-0.1.0a8-py3-none-any.whl

Download URL sklearn_wrap-0.1.0a8-py3-none-any.whl
Size 24.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
68fad0a0b03593bfbd98ff908e23bb16738de77dc95520ec5c7438a847925212
BLAKE2b-256 checksum
How to use checksums
b5a3a212944bf084fd98ac4c70b05f4da4328bdc1f4d0bac357fb8780f685084
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page