Metadata-Version: 2.4
Name: skyulf-core
Version: 0.1.10
Summary: The core machine learning library for Skyulf.
Author: Murat H. Unsal
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=2.0.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: scikit-learn<2.0.0,>=1.4.0
Requires-Dist: polars>=0.19.0
Requires-Dist: imbalanced-learn>=0.13.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: optuna>=3.0.0
Requires-Dist: optuna-integration>=3.0.0
Requires-Dist: scipy>=1.10.0
Requires-Dist: statsmodels>=0.14.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: build; extra == "dev"
Provides-Extra: viz
Requires-Dist: matplotlib>=3.7.0; extra == "viz"
Requires-Dist: rich>=13.0.0; extra == "viz"
Dynamic: author
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Skyulf Core

**Skyulf Core** (`skyulf-core`) is the standalone machine learning library that powers the Skyulf MLOps platform. It provides a robust, type-safe, and modular set of tools for:

- **Data Preprocessing**: A comprehensive suite of transformers for cleaning, scaling, encoding, and feature engineering.
- **Modeling**: Unified interfaces for classification and regression models, wrapping Scikit-Learn and other libraries.
- **Pipeline Management**: Tools to build, serialize, and execute complex ML pipelines.
- **Tuning**: Advanced hyperparameter tuning capabilities with support for Grid Search, Random Search, and Optuna.
- **Evaluation**: Standardized metrics and evaluation schemas for model performance tracking.

<!-- Quick badges + links -->
[![Docs](https://img.shields.io/website?down_color=red&down_message=offline&up_message=online&url=https://flyingriverhorse.github.io/Skyulf)](https://flyingriverhorse.github.io/Skyulf) [![PyPI](https://img.shields.io/pypi/v/skyulf-core.svg)](https://pypi.org/project/skyulf-core) [![License](https://img.shields.io/github/license/flyingriverhorse/Skyulf)](LICENSE)
[![Downloads](https://img.shields.io/pypi/dm/skyulf-core.svg)](https://pypi.org/project/skyulf-core) [![issues](https://img.shields.io/github/issues/flyingriverhorse/Skyulf.svg)](https://github.com/flyingriverhorse/Skyulf/issues) [![contributors](https://img.shields.io/github/contributors/flyingriverhorse/Skyulf.svg)](https://github.com/flyingriverhorse/Skyulf/graphs/contributors)

**Website & Documentation**

Visit the full documentation and project site for guides, API reference, and examples:

- Project site / docs: https://www.skyulf.com
- Repository: https://github.com/flyingriverhorse/Skyulf
- PyPI package: https://pypi.org/project/skyulf-core

## Installation

```bash
pip install skyulf-core

# For visualization support (Rich dashboard + Matplotlib plots)
pip install skyulf-core[viz]
```

## Quick Start: Automated EDA

Skyulf Core includes a powerful automated Exploratory Data Analysis (EDA) module.

```python
import polars as pl
from skyulf.profiling.analyzer import EDAAnalyzer
from skyulf.profiling.visualizer import EDAVisualizer

# 1. Load Data
df = pl.read_csv("data.csv")

# 2. Analyze
analyzer = EDAAnalyzer(df)
# Optional: Manually specify special columns if auto-detection fails
profile = analyzer.analyze(
    target_col="target",
    date_col="timestamp",  # Optional
    lat_col="latitude",    # Optional
    lon_col="longitude"    # Optional
)

# 3. Visualize
viz = EDAVisualizer(profile, df)
viz.summary()  # Prints rich terminal dashboard
viz.plot()     # Opens interactive plots
```

## Features

- **Automated EDA**: One-line profiling with Data Quality, Outliers, Time Series, and Geospatial analysis.
- **Type-Safe**: Built with modern Python type hints and Pydantic models.
- **Modular**: Use only the components you need.
- **Serializable**: All components are designed to be easily serialized for storage and deployment.
- **Extensible**: Easy to extend with your own custom transformers and models.

## License

This project is licensed under the terms of the Apache 2.0 license.
