Metadata-Version: 2.4
Name: sinica
Version: 0.1.5
Summary: A Polars DataFrame profiling tool with interactive Plotly summaries and quality alerts.
Author-email: sarvamm <srvmrtr@gmail.com>
Project-URL: Homepage, https://github.com/sarvamm/sinica
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.6.0
Requires-Dist: polars>=1.0.0
Requires-Dist: plotly
Requires-Dist: ipython
Requires-Dist: nbformat
Requires-Dist: tqdm
Requires-Dist: wordcloud>=1.9.2
Provides-Extra: pandas
Requires-Dist: pandas>=1.2.0; extra == "pandas"
Dynamic: license-file

# Sinica 

[![PyPI version](https://badge.fury.io/py/sinica.svg)](https://badge.fury.io/py/sinica)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)

**Sinica** is a lightweight, fast, and intuitive Python data profiling tool built on top of `pandas`. It provides comprehensive statistical summaries, automated data quality alerts, and column-level analysis.

---

##  Key Features

- **Instant Statistical Summaries**: Get detailed, column-level statistical insights (mean, median, mode, missing values, min/max) in a single method call.
- **Automated Quality Alerts**: Detect data hygiene issues automatically, including:
  - Constant or zero-filled columns
  - High correlation between features
  - High cardinality & severe class imbalance
  - Skewed distributions & missing data percentages
  - Duplicate rows & empty dataset checks
- ⚡ **Lightweight & Clean Output**: Returns clean, standard `pandas.DataFrame` objects that seamlessly integrate with your analytical workflows or reporting pipelines.

---

##  Installation

Install `sinica` directly from PyPI using `pip`:

```bash
pip install sinica
```

#  Quick Start

Here is how you can profile a dataset in under 10 seconds:
```python
import pandas as pd
from sinica.core import ProfileReport

# 1. Load your DataFrame
df = your_data_frame

# 2. Instantiate the ProfileReport
pr = ProfileReport(df)

# 3. Generate a statistical summary
summary_df = pr.get_summary()
print(summary_df)

# 4. Extract data quality alerts
alerts_df = pr.get_alerts()
print(alerts_df)
```

## Column-level analysis

Use `ProfileReport.univ` to display detailed statistics and plots for a column.
Pass an explicit type: `"numeric"`, `"text"`, `"date"`, or `"categorical"`.
Aliases such as `"num"`, `"str"`, `"datetime"`, and `"category"` are also accepted.

```python
pr.univ("age", "numeric")
pr.univ("comment", "text")
```
