Metadata-Version: 2.1
Name: inspecty
Version: 0.1.0
Summary: Universal data inspector — one function to understand any dataset
Home-page: https://github.com/manjur-ai/inspecty
Author: Manjur Alam
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: numpy >=1.21.0
Requires-Dist: pandas >=1.3.0
Requires-Dist: openpyxl >=3.0.0

# inspecty

**Universal data inspector — one function to understand any dataset.**

```bash
pip install inspecty
```

Instead of `print()`, `type()`, `.info()`, `.describe()` — just run `ins.inspect(data)` and get a high-density statistical report for any data type.

---

## Supported data types

DataFrame, Series, NumPy array (1D/2D/3D), list, tuple, set, dictionary, JSON string, CSV file path, Excel file path — any Python object.

## Quick example

```python
import inspecty as ins
import pandas as pd

df = pd.DataFrame({
    "price":  [100.5, 101.2, 100.8, 102.1, 101.5],
    "volume": [1000, 1500, 1200, 1800, 2000],
})

ins.inspect(df)
```

Output:

```
Data type: <class 'pandas.DataFrame'>
Total rows: 5. Total columns: 2. Summary:

column:      price      volume
 dtype:    float64       int64
     -      -----       -----
 Row 0:      100.5        1000
 Row 1:      101.2        1500
 Row 2:      100.8        1200
----------  -----       -----
 count:          5           5
   max:      102.1      2000.0
   min:      100.5      1000.0
  mean:     101.22      1500.0
   std:   0.622093  412.310563
median:      101.2      1500.0
  mode:      100.5      1000.0
   nan:          0           0
```

---

## More examples

### Pandas Series

```python
series = pd.Series([10, 20, 30, 40, 50], name="RSI")
ins.inspect(series)
```

### Dictionary pivot

```python
data = {
    "Ticker": ["BTC", "ETH", "SOL"],
    "Price":  [62000.5, 3400.2, 145.1],
    "Signal": ["Buy", "Hold", "Buy"],
}
ins.inspect(data)
```

### 3D NumPy tensor

```python
tensor = np.random.randn(2, 100, 5)  # (Tickers, Days, Features)
ins.inspect(tensor)
```

### Auto-load files

```python
ins.inspect("historical_prices.csv")
ins.inspect("data.xlsx")
```

### JSON string

```python
json_resp = '{"Symbol": ["AAPL", "TSLA"], "Price": [150.2, 700.5]}'
ins.inspect(json_resp)
```

### System info

```python
ins.inspect("all_info")
```

---

## Parameters

| Param | Type | Default | Description |
|-------|------|---------|-------------|
| `df` | Any | required | Data object, file path, or JSON string |
| `count` | int | 3 | Rows shown from top & bottom |
| `silent` | bool | False | Hide headers, show only table |

---

## Why not `df.describe()`?

`df.describe()` works only on numeric columns, hides NaN counts, and needs multiple calls for basic stats. `inspect()` handles mixed types, shows NaN explicitly, and works on any data structure — not just DataFrames.

---

## License

MIT
