Metadata-Version: 2.4
Name: murthylytics
Version: 0.1.0
Summary: Production-grade, AI-powered machine learning data-analysis and preparation library.
Project-URL: Homepage, https://github.com/pranavmurthy/murthylytics
Project-URL: Repository, https://github.com/pranavmurthy/murthylytics
Project-URL: Issues, https://github.com/pranavmurthy/murthylytics/issues
Author: Pranav Murthy
License: MIT
License-File: LICENSE
Keywords: autoeda,automl,data-cleaning,data-science,eda,feature-engineering,feature-selection,machine-learning,preprocessing
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
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 :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.9
Requires-Dist: numpy>=1.23
Requires-Dist: pandas>=1.5
Provides-Extra: all
Requires-Dist: charset-normalizer>=3.0; extra == 'all'
Requires-Dist: jinja2>=3.1; extra == 'all'
Requires-Dist: lightgbm>=3.3; extra == 'all'
Requires-Dist: matplotlib>=3.6; extra == 'all'
Requires-Dist: openpyxl>=3.1; extra == 'all'
Requires-Dist: pyarrow>=10.0; extra == 'all'
Requires-Dist: scikit-learn>=1.1; extra == 'all'
Requires-Dist: scipy>=1.9; extra == 'all'
Requires-Dist: seaborn>=0.12; extra == 'all'
Requires-Dist: sqlalchemy>=2.0; extra == 'all'
Requires-Dist: xgboost>=1.7; extra == 'all'
Provides-Extra: dev
Requires-Dist: black>=23.0; extra == 'dev'
Requires-Dist: mypy>=1.5; extra == 'dev'
Requires-Dist: pre-commit>=3.4; extra == 'dev'
Requires-Dist: pytest-cov>=4.1; extra == 'dev'
Requires-Dist: pytest>=7.4; extra == 'dev'
Requires-Dist: ruff>=0.1; extra == 'dev'
Provides-Extra: io
Requires-Dist: charset-normalizer>=3.0; extra == 'io'
Requires-Dist: openpyxl>=3.1; extra == 'io'
Requires-Dist: pyarrow>=10.0; extra == 'io'
Requires-Dist: sqlalchemy>=2.0; extra == 'io'
Provides-Extra: ml
Requires-Dist: lightgbm>=3.3; extra == 'ml'
Requires-Dist: xgboost>=1.7; extra == 'ml'
Provides-Extra: polars
Requires-Dist: polars>=0.20; extra == 'polars'
Provides-Extra: report
Requires-Dist: jinja2>=3.1; extra == 'report'
Provides-Extra: stats
Requires-Dist: scikit-learn>=1.1; extra == 'stats'
Requires-Dist: scipy>=1.9; extra == 'stats'
Provides-Extra: viz
Requires-Dist: matplotlib>=3.6; extra == 'viz'
Requires-Dist: seaborn>=0.12; extra == 'viz'
Description-Content-Type: text/markdown

# Murthylytics

**Production-grade, AI-powered machine-learning data analysis & preparation for Python.**

Murthylytics turns hundreds of lines of exploratory-data-analysis and preprocessing
boilerplate into a handful of intuitive commands — while staying transparent,
configurable and production-quality. Think of it as a next-generation companion to
pandas, ydata-profiling, Sweetviz and scikit-learn's preprocessing tools, unified
behind one stateful API.

```python
import murthylytics as mlt

mlt.read_csv("data.csv")   # auto-detects encoding, delimiter, dtypes, datetimes

mlt.summary()              # compact overview
mlt.inspect()              # intelligent profiling: roles, targets, leakage, issues

mlt.clean_data()           # roadmap: intelligent cleaning & imputation
mlt.auto_eda()             # roadmap: HTML / Markdown / PDF / JSON reports
mlt.preprocess()           # roadmap: task detection + preprocessing pipeline
mlt.recommend_model()      # roadmap: model recommendations with justification
```

## Why Murthylytics

- **One stateful facade.** Load a dataset once; every call operates on the active
  session — no handle passing.
- **Intelligent by default.** Encoding/delimiter/dtype detection, column-role
  inference, target detection, class-imbalance and data-leakage checks, all automatic.
- **Lightweight core, optional power.** Base install is just pandas + numpy. Heavy
  tooling (plots, XGBoost, SHAP, Parquet…) is lazy-loaded behind extras.
- **Engineered to last.** `src/` layout, full type hints, SOLID modules, a pure
  stateless engine under the facade, and a test suite.

## Installation

```bash
pip install murthylytics            # core (pandas + numpy)
pip install 'murthylytics[stats]'   # scipy + scikit-learn powered analysis
pip install 'murthylytics[viz]'     # matplotlib + seaborn plotting
pip install 'murthylytics[all]'     # everything
```

> Develop locally: `pip install -e '.[dev,stats]'`

## Quick start

```python
import murthylytics as mlt

mlt.read_csv("titanic.csv")

mlt.shape()          # {'rows': 891, 'columns': 12}
mlt.missing()        # per-column missing counts & %
report = mlt.inspect()
print(report)                    # human-readable summary
print(report.recommendations)    # actionable next steps
report.to_dict()                 # JSON-serialisable
```

## Feature status

| Area | API | Status |
|------|-----|--------|
| Data I/O (CSV/Excel/JSON/Parquet/SQL) | `read_*` | ✅ available |
| Exploration | `show/top/bottom/shape/columns/summary/describe/info/types/missing/duplicates/memory` | ✅ available |
| Intelligent inspection | `inspect` | ✅ available |
| Intelligent cleaning | `clean_data` | 🚧 roadmap (iteration 2) |
| Visualization | `cleaned_pyplot` | 🚧 roadmap (iteration 3) |
| AutoEDA reports | `auto_eda` | 🚧 roadmap (iteration 4) |
| Preprocessing | `preprocess` | 🚧 roadmap (iteration 5) |
| Feature engineering / selection | `engineer_features` / `select_features` | 🚧 roadmap (iteration 6) |
| Model recommendation | `recommend_model` | 🚧 roadmap (iteration 7) |
| Pipeline export | `export_pipeline` | 🚧 roadmap (iteration 8) |
| Plugins (malware, finance, …) | `use_plugin` | 🚧 roadmap (iteration 9) |

The roadmap functions are already part of the public surface with stable
signatures; calling one today raises a clear `NotImplementedError` pointing at the
iteration that delivers it.

## Architecture

```
murthylytics/
├── core/          config · session/context · logging · exceptions · types
├── io/            smart readers · encoding/delimiter/dtype detection · memory opt
├── exploration/   display helpers · intelligent inspection
├── cleaning/      (roadmap) duplicates · imputation · outliers · text fixes
├── viz/           (roadmap) auto-plot dispatcher
├── eda/           (roadmap) HTML/MD/PDF/JSON reports
├── preprocess/    (roadmap) task detection · scaling · encoding · pipelines
├── features/      (roadmap) engineering · selection
├── modeling/      (roadmap) model recommendation
├── pipeline/      (roadmap) save/load/export
└── plugins/       (roadmap) domain plugins
```

All mutable state lives in a single `Session`; the engine modules are pure
functions, which keeps them independently testable and reusable.

## License

MIT © Pranav Murthy
