Metadata-Version: 2.4
Name: skore
Version: 0.10.0
Summary: 𝗢𝘄𝗻 𝗬𝗼𝘂𝗿 𝗗𝗮𝘁𝗮 𝗦𝗰𝗶𝗲𝗻𝗰𝗲. Skore's open-source Python library accelerates ML model development with automated evaluation reports, smart methodological guidance, and comprehensive cross-validation analysis.
Project-URL: Homepage, https://probabl.ai
Project-URL: Repository, https://github.com/probabl-ai/skore
Project-URL: Download, https://pypi.org/project/skore/#files
Project-URL: Issues, https://github.com/probabl-ai/skore/issues
Project-URL: Release notes, https://github.com/probabl-ai/skore/releases
Maintainer-email: skore developers <skore@signal.probabl.ai>
License: MIT License
                
                Copyright (c) 2024-2025 Probabl
                
                Permission is hereby granted, free of charge, to any person obtaining a copy
                of this software and associated documentation files (the "Software"), to deal
                in the Software without restriction, including without limitation the rights
                to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                copies of the Software, and to permit persons to whom the Software is
                furnished to do so, subject to the following conditions:
                
                The above copyright notice and this permission notice shall be included in all
                copies or substantial portions of the Software.
                
                THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
                SOFTWARE.
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Requires-Python: >=3.10
Requires-Dist: anywidget
Requires-Dist: ipython
Requires-Dist: ipywidgets
Requires-Dist: joblib
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: plotly
Requires-Dist: rich
Requires-Dist: scikit-learn
Requires-Dist: seaborn
Requires-Dist: skore-local-project
Requires-Dist: skrub
Provides-Extra: dev
Requires-Dist: ipykernel; extra == 'dev'
Requires-Dist: nbformat; extra == 'dev'
Provides-Extra: hub
Requires-Dist: skore-hub-project; extra == 'hub'
Provides-Extra: sphinx
Requires-Dist: altair; extra == 'sphinx'
Requires-Dist: kaleido; extra == 'sphinx'
Requires-Dist: numpydoc; extra == 'sphinx'
Requires-Dist: plotly<6,>=5; extra == 'sphinx'
Requires-Dist: polars; extra == 'sphinx'
Requires-Dist: pydata-sphinx-theme; extra == 'sphinx'
Requires-Dist: seaborn; extra == 'sphinx'
Requires-Dist: sentence-transformers<4; extra == 'sphinx'
Requires-Dist: skrub; extra == 'sphinx'
Requires-Dist: sphinx-autosummary-accessors; extra == 'sphinx'
Requires-Dist: sphinx-copybutton; extra == 'sphinx'
Requires-Dist: sphinx-design; extra == 'sphinx'
Requires-Dist: sphinx-gallery; extra == 'sphinx'
Requires-Dist: sphinx-tabs; extra == 'sphinx'
Requires-Dist: sphinx<8.2.0; extra == 'sphinx'
Requires-Dist: transformers<4.51; extra == 'sphinx'
Requires-Dist: xgboost; extra == 'sphinx'
Provides-Extra: sphinx-base
Requires-Dist: altair; extra == 'sphinx-base'
Requires-Dist: kaleido; extra == 'sphinx-base'
Requires-Dist: numpydoc; extra == 'sphinx-base'
Requires-Dist: plotly<6,>=5; extra == 'sphinx-base'
Requires-Dist: pydata-sphinx-theme; extra == 'sphinx-base'
Requires-Dist: seaborn; extra == 'sphinx-base'
Requires-Dist: sentence-transformers<4; extra == 'sphinx-base'
Requires-Dist: skrub; extra == 'sphinx-base'
Requires-Dist: sphinx-autosummary-accessors; extra == 'sphinx-base'
Requires-Dist: sphinx-copybutton; extra == 'sphinx-base'
Requires-Dist: sphinx-design; extra == 'sphinx-base'
Requires-Dist: sphinx-gallery; extra == 'sphinx-base'
Requires-Dist: sphinx-tabs; extra == 'sphinx-base'
Requires-Dist: sphinx<8.2.0; extra == 'sphinx-base'
Requires-Dist: transformers<4.51; extra == 'sphinx-base'
Requires-Dist: xgboost; extra == 'sphinx-base'
Provides-Extra: sphinx-lts-cpu
Requires-Dist: altair; extra == 'sphinx-lts-cpu'
Requires-Dist: kaleido; extra == 'sphinx-lts-cpu'
Requires-Dist: numpydoc; extra == 'sphinx-lts-cpu'
Requires-Dist: plotly<6,>=5; extra == 'sphinx-lts-cpu'
Requires-Dist: polars-lts-cpu; extra == 'sphinx-lts-cpu'
Requires-Dist: pydata-sphinx-theme; extra == 'sphinx-lts-cpu'
Requires-Dist: seaborn; extra == 'sphinx-lts-cpu'
Requires-Dist: sentence-transformers<4; extra == 'sphinx-lts-cpu'
Requires-Dist: skrub; extra == 'sphinx-lts-cpu'
Requires-Dist: sphinx-autosummary-accessors; extra == 'sphinx-lts-cpu'
Requires-Dist: sphinx-copybutton; extra == 'sphinx-lts-cpu'
Requires-Dist: sphinx-design; extra == 'sphinx-lts-cpu'
Requires-Dist: sphinx-gallery; extra == 'sphinx-lts-cpu'
Requires-Dist: sphinx-tabs; extra == 'sphinx-lts-cpu'
Requires-Dist: sphinx<8.2.0; extra == 'sphinx-lts-cpu'
Requires-Dist: transformers<4.51; extra == 'sphinx-lts-cpu'
Requires-Dist: xgboost; extra == 'sphinx-lts-cpu'
Provides-Extra: test
Requires-Dist: polars; extra == 'test'
Requires-Dist: pre-commit; extra == 'test'
Requires-Dist: pyarrow; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-order; extra == 'test'
Requires-Dist: pytest-randomly; extra == 'test'
Requires-Dist: pytest-xdist; extra == 'test'
Requires-Dist: skrub; extra == 'test'
Requires-Dist: xdoctest; extra == 'test'
Provides-Extra: test-base
Requires-Dist: pre-commit; extra == 'test-base'
Requires-Dist: pytest; extra == 'test-base'
Requires-Dist: pytest-cov; extra == 'test-base'
Requires-Dist: pytest-order; extra == 'test-base'
Requires-Dist: pytest-randomly; extra == 'test-base'
Requires-Dist: pytest-xdist; extra == 'test-base'
Requires-Dist: skrub; extra == 'test-base'
Requires-Dist: xdoctest; extra == 'test-base'
Provides-Extra: test-lts-cpu
Requires-Dist: polars-lts-cpu; extra == 'test-lts-cpu'
Requires-Dist: pre-commit; extra == 'test-lts-cpu'
Requires-Dist: pytest; extra == 'test-lts-cpu'
Requires-Dist: pytest-cov; extra == 'test-lts-cpu'
Requires-Dist: pytest-order; extra == 'test-lts-cpu'
Requires-Dist: pytest-randomly; extra == 'test-lts-cpu'
Requires-Dist: pytest-xdist; extra == 'test-lts-cpu'
Requires-Dist: skrub; extra == 'test-lts-cpu'
Requires-Dist: xdoctest; extra == 'test-lts-cpu'
Description-Content-Type: text/markdown

<div align="center">

  ![license](https://img.shields.io/pypi/l/skore)
  ![python](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue?style=flat&logo=python)
  [![downloads](https://static.pepy.tech/badge/skore/month)](https://pepy.tech/projects/skore)
  [![pypi](https://img.shields.io/pypi/v/skore)](https://pypi.org/project/skore/)
  [![Discord](https://img.shields.io/discord/1275821367324840119?label=Discord)](https://discord.probabl.ai/)

</div>

<div align="center">

  <picture>
    <source srcset="https://media.githubusercontent.com/media/probabl-ai/skore/main/sphinx/_static/images/Logo_Skore_Dark@2x.svg" media="(prefers-color-scheme: dark)">
    <img width="200" src="https://media.githubusercontent.com/media/probabl-ai/skore/main/sphinx/_static/images/Logo_Skore_Light@2x.svg" alt="skore logo">
  </picture>
  <h3>Own Your Data Science</h3>

Elevate ML Development with Built-in Recommended Practices \
[Documentation](https://docs.skore.probabl.ai) — [Community](https://discord.probabl.ai) — [YouTube](https://youtube.com/playlist?list=PLSIzlWDI17bTpixfFkooxLpbz4DNQcam3) — [Skore Hub](https://probabl.ai/skore)

</div>

<br />

## 🧩 What is Skore?

The core mission of **Skore** is to turn uneven ML development into structured, effective decision-making. It is made of two complementary components:
- **Skore Lib**: the open-source Python library (described here!) designed to help data scientists boost their ML development with effective guidance and tooling.
- **Skore Hub**: the collaborative layer where teams connect, learn more on our [product page](https://probabl.ai/skore).

⭐ Support us with a star and spread the word - it means a lot! ⭐

### Key features of Skore Lib

**Evaluate and inspect**: automated insightful reports.
- `EstimatorReport`: feed your scikit-learn compatible estimator and dataset, and it generates recommended metrics, feature importance, and plots to help you evaluate and inspect your model. All in just one line of code. Under the hood, we use efficient caching to make the computations blazing fast.
- `CrossValidationReport`: get a skore estimator report for each fold of your cross-validation.
- `ComparisonReport`: benchmark your skore estimator reports.

**Diagnose**: catch methodological errors before they impact your models.
  - `train_test_split` supercharged with methodological guidance: the API is the same as scikit-learn's, but skore displays warnings when applicable. For example, it warns you against shuffling time series data or when you have class imbalance.

## 🗓️ What's next?

Skore Lib is just at the beginning of its journey, but we’re shipping fast! Frequent updates and new features are on the way as we work toward our vision of becoming a comprehensive library for data scientists.

## ⚡️ Quick start

### Installation

#### With pip

We recommend using a [virtual environment (venv)](https://docs.python.org/3/tutorial/venv.html). You need `python>=3.10`.

Then, you can install skore by using `pip`:
```bash
# If you just use skore locally
pip install -U skore
# If you wish to also interact with the skore hub
pip install -U skore[hub]
```

#### With conda

skore is available in `conda-forge` both for local and hub use:

```bash
conda install conda-forge::skore
```

You can find information on the latest version [here](https://anaconda.org/conda-forge/skore).

### Get assistance when developing your ML/DS projects

Evaluate your model using `skore.CrossValidationReport`:
```python
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression

from skore import CrossValidationReport

X, y = make_classification(n_classes=2, n_samples=100_000, n_informative=4)
clf = LogisticRegression()

cv_report = CrossValidationReport(clf, X, y)

# Display the help tree to see all the insights that are available to you
cv_report.help()
```

```python
# Display the report metrics that was computed for you:
metrics_summary = cv_report.metrics.summarize()
metrics_summary
```

```python
# Display the ROC curve that was generated for you:
roc_plot = cv_report.metrics.roc()
roc_plot.plot()
```

### Create or connect to a Project to save and load reports

```python
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

import skore

# Create or connect to a Project
project = skore.Project("<name>") # local
project = skore.Project("hub://<tenant>/<name>") # hub

X, y = make_classification(n_classes=2, n_samples=100_000, n_informative=4)
X_train, X_test, y_train, y_test = train_test_split(X, y)
clf = LogisticRegression()

report = skore.EstimatorReport(
    clf,
    X_train=X_train,
    y_train=y_train,
    X_test=X_test,
    y_test=y_test,
)

# Save report to Project for future reference
project.put("my_report", report)
```

Learn more in our [documentation](https://docs.skore.probabl.ai).


## 🛠️ Contributing

Join our mission to promote open-source and make machine learning development more robust and effective. If you'd like to contribute, please check the contributing guidelines [here](https://github.com/probabl-ai/skore/blob/main/CONTRIBUTING.rst).


## 👋 Feedback & Community

-   Join our [Discord](https://discord.probabl.ai/) to share ideas or get support.
-   Request a feature or report a bug via [GitHub Issues](https://github.com/probabl-ai/skore/issues).

<br />


## Support

Skore is tested on Linux and Windows, for at most 4 versions of Python, and at most 4 versions of scikit-learn:
- Python 3.10
  - scikit-learn 1.4
  - scikit-learn 1.7
- Python 3.11
  - scikit-learn 1.4
  - scikit-learn 1.7
- Python 3.12
  - scikit-learn 1.4
  - scikit-learn 1.7
- Python 3.13
  - scikit-learn 1.5
  - scikit-learn 1.6
  - scikit-learn 1.7

---

Brought to you by

<a href="https://probabl.ai/skore" target="_blank">
    <picture>
        <source srcset="https://media.githubusercontent.com/media/probabl-ai/skore/main/sphinx/_static/images/Probabl-logo-orange.png" media="(prefers-color-scheme: dark)">
        <img width="120" src="https://media.githubusercontent.com/media/probabl-ai/skore/main/sphinx/_static/images/Probabl-logo-blue.png" alt="Probabl logo">
    </picture>
</a>
