Metadata-Version: 2.4
Name: pycaret
Version: 4.0.0a3
Summary: PyCaret 4.0 — the modern, minimalistic ML control pane on top of scikit-learn.
Project-URL: Homepage, https://pycaret.org/
Project-URL: Repository, https://github.com/pycaret/pycaret
Project-URL: Documentation, https://pycaret.org/docs
Project-URL: Issues, https://github.com/pycaret/pycaret/issues
Project-URL: Changelog, https://pycaret.org/changelog
Project-URL: Release notes (engineering), https://pycaret.org/blog
Project-URL: 4.0 status, https://github.com/pycaret/pycaret/blob/main/docs/revamp/STATUS.md
Author: PyCaret developers
Maintainer-email: Moez Ali <moez.ali@queensu.ca>
License-Expression: LicenseRef-FSL-1.1-MIT
Keywords: anomaly-detection,automl,classification,clustering,llm-agents,machine-learning,regression,scikit-learn,time-series
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
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 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: category-encoders>=2.6
Requires-Dist: imbalanced-learn>=0.13
Requires-Dist: ipython>=8.18
Requires-Dist: jinja2>=3.1
Requires-Dist: joblib>=1.4
Requires-Dist: numpy>=1.26
Requires-Dist: pandas>=2.2
Requires-Dist: plotly>=5.22
Requires-Dist: requests>=2.32
Requires-Dist: scikit-learn>=1.7
Requires-Dist: scipy>=1.11
Requires-Dist: tqdm>=4.66
Provides-Extra: anomaly
Requires-Dist: numba>=0.60; extra == 'anomaly'
Requires-Dist: pyod>=2.0; extra == 'anomaly'
Provides-Extra: dev
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pre-commit>=3.8; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Provides-Extra: export
Requires-Dist: kaleido>=0.2; extra == 'export'
Provides-Extra: full
Requires-Dist: ipywidgets>=8.1; extra == 'full'
Requires-Dist: kaleido>=0.2; extra == 'full'
Requires-Dist: nbformat>=5.10; extra == 'full'
Requires-Dist: numba>=0.60; extra == 'full'
Requires-Dist: pmdarima>=2.0.4; extra == 'full'
Requires-Dist: pyod>=2.0; extra == 'full'
Requires-Dist: sktime>=0.36; extra == 'full'
Requires-Dist: statsmodels>=0.14; extra == 'full'
Provides-Extra: notebook
Requires-Dist: ipywidgets>=8.1; extra == 'notebook'
Requires-Dist: nbformat>=5.10; extra == 'notebook'
Provides-Extra: test
Requires-Dist: nbval>=0.11; extra == 'test'
Requires-Dist: pytest-cov>=5.0; extra == 'test'
Requires-Dist: pytest-xdist>=3.6; extra == 'test'
Requires-Dist: pytest>=8.3; extra == 'test'
Provides-Extra: timeseries
Requires-Dist: pmdarima>=2.0.4; extra == 'timeseries'
Requires-Dist: sktime>=0.36; extra == 'timeseries'
Requires-Dist: statsmodels>=0.14; extra == 'timeseries'
Description-Content-Type: text/markdown

# PyCaret 4.0 — engine

The PyCaret 4.0 engine. Config-driven, stateless, notebook-friendly, built on
scikit-learn 1.7+ / NumPy 2 / pandas 2 / Python 3.11+.

Paired with [`services/api`](../../services/api) (the FastAPI backend) and
[`apps/web`](../../apps/web) (the React UI) to form **PyCaret Control Plane** —
a self-hosted ML platform. But the engine works standalone in a notebook too:

```python
from pycaret.datasets import get_data
from pycaret.tasks import ClassificationExperiment

df = get_data("juice")
exp = ClassificationExperiment(target="Purchase", session_id=42).fit(df)
best = exp.compare_models().best
exp.save_model(best, "baseline")
```

## Status

4.0.0a1 on PyPI. Published wheel name: `pycaret`. See the repo root
[`docs/revamp/STATUS.md`](../../docs/revamp/STATUS.md) for the programme-wide
status and [`docs/revamp/ROADMAP.md`](../../docs/revamp/ROADMAP.md) for what's
next.

## Layout

```
packages/engine/
├── pyproject.toml       # builds the `pycaret` wheel
├── pycaret/             # the package
│   ├── api/             # list_models, describe_model, describe_setup_params
│   ├── core/            # Experiment base class + results + errors
│   ├── tasks/           # 5 task subclasses (classification/regression/...)
│   ├── logging/         # BaseLogger + events + MemoryLogger
│   ├── containers/      # model-registry containers (legacy, being drained)
│   └── internal/        # god-class (being drained verb-by-verb — Phase 5)
├── tests/               # pytest suite (32 tests)
└── README.md            # this file
```

## Dev

From the repo root:

```bash
uv sync --all-packages --all-extras          # all workspace members + extras
uv run pytest packages/engine/tests/ -q      # 32 engine tests
```
