Metadata-Version: 2.4
Name: skilium-eda
Version: 0.1.0
Summary: Lightweight agentic EDA library for data science
Author-email: Skilium <hello@skilium.ai>
License: MIT
Project-URL: Homepage, https://skilium.ai
Project-URL: Repository, https://github.com/skilium-ai/skilium-eda
Keywords: eda,data-science,pandas,visualization,profiling
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: pandas>=1.5.0
Requires-Dist: numpy>=1.23.0
Requires-Dist: scipy>=1.9.0
Requires-Dist: scikit-learn>=1.2.0
Requires-Dist: matplotlib>=3.6.0
Requires-Dist: seaborn>=0.12.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: typer>=0.9.0
Provides-Extra: s3
Requires-Dist: s3fs>=2024.1.0; extra == "s3"
Requires-Dist: fsspec>=2024.1.0; extra == "s3"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"

# skilium-eda

Lightweight agentic EDA library for data science. From raw data to insights, charts, and reports in one command.

## Install

```bash
pip install skilium-eda
```

With S3 support:

```bash
pip install skilium-eda[s3]
```

## Quick Start

### Python API

```python
from skilium_eda import DataEngine, EDAPipeline

# Load and explore
df = DataEngine.load("data.csv")
summary = DataEngine.get_summary(df)
profile = DataEngine.profile(df)

# Full pipeline
pipeline = EDAPipeline("data.csv", output_dir="./reports")
results = pipeline.run()
```

### S3 Support

```python
# Load from S3
df = DataEngine.load("s3://my-bucket/datasets/sales.csv")

# Full pipeline from S3
pipeline = EDAPipeline("s3://my-bucket/datasets/sales.csv", output_dir="./reports")
results = pipeline.run()
```

S3 authentication uses standard AWS credential chains (env vars, `~/.aws/credentials`, IAM roles).

### CLI

```bash
# Full pipeline
skilium-eda run data.csv --output-dir ./reports

# Profile only
skilium-eda profile data.csv --output profile.json

# S3
skilium-eda run s3://bucket/data.csv --output-dir ./reports
```

## Features

- **Load**: CSV, Excel, Parquet, JSON/JSONL — local files and S3 URLs
- **Clean**: Missing values, duplicates, type inference, outlier removal
- **Profile**: Statistics, correlations, distributions, quality metrics
- **Agent**: Rule-based insights, chart selection, action items
- **Visualize**: Distributions, correlations, missing values, boxplots, pairplots
- **Report**: Self-contained HTML with embedded charts, Markdown export

## Project Structure

```
src/skilium_eda/
  __init__.py    # Clean exports
  core.py        # DataEngine: load, clean, profile (with S3)
  agent.py       # EDAAgent: insights, chart selection
  viz.py         # ChartEngine: matplotlib/seaborn charts
  report.py      # HTML and Markdown report generation
  pipeline.py    # EDAPipeline: orchestrate full workflow
  cli.py         # skilium-eda CLI commands
```

6 modules, ~2,800 lines, production-ready.
