Metadata-Version: 2.4
Name: kukuri
Version: 0.0.1
Summary: KUKURI tries to understand any data before doing AI.
Project-URL: Homepage, https://github.com/kukuri-project/kukuri
Project-URL: Repository, https://github.com/kukuri-project/kukuri
Author-email: Keisuke <keisuke.09100910@gmail.com>
License: MIT
License-File: LICENSE
Keywords: automl,baseline,data-inspection,data-understanding,poc
Classifier: Development Status :: 2 - Pre-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.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: pandas>=2.0
Provides-Extra: all
Requires-Dist: lightgbm; extra == 'all'
Requires-Dist: openpyxl; extra == 'all'
Requires-Dist: pyarrow; extra == 'all'
Requires-Dist: scikit-learn; extra == 'all'
Provides-Extra: baseline
Requires-Dist: lightgbm; extra == 'baseline'
Requires-Dist: scikit-learn; extra == 'baseline'
Provides-Extra: excel
Requires-Dist: openpyxl; extra == 'excel'
Provides-Extra: parquet
Requires-Dist: pyarrow; extra == 'parquet'
Description-Content-Type: text/markdown

# kukuri

**KUKURI tries to understand any data before doing AI.**

kukuri is not AutoML, and not MLOps. It is the step *before* all of that:
the moment you have some data, a vague goal, and no time to argue about
architectures. kukuri looks at whatever you have, tells you what it seems
to be, and helps you get an unpretentious first baseline — in seconds,
not meetings.

> Don't optimize first. Verify first.

## Quickstart

```bash
pip install kukuri
```

```python
import kukuri

data = kukuri.load("./sensor.csv")
print(data.inspect())   # -> a DataCard: what is this data, what could it do?
```

or straight from the terminal:

```bash
kukuri inspect ./sensor.csv
```

```
KUKURI DataCard
========================================
Path        sensor.csv
Kind        table
Rows        1000
Cols        5
Missing     0.2%
Target?     label
Task        classification (binary)
Confidence  0.85

Notes
-----
- time-like column detected: timestamp
```

## Philosophy

- **Everything is a dataset.** CSV, Excel, folders, images, waveforms —
  whatever comes in, kukuri reduces it to one common understanding
  (a *DataCard*) and one common API: `load()` → `inspect()` → `baseline()`.
- **A modest baseline beats a brilliant plan.** When data is scarce,
  debating models is procrastination. Get a first answer, then decide.
- **Local first.** No cloud, no Docker, no GPU required. `pip install` is
  the entire setup.
- **kukuri never aims for maximum accuracy.** It aims for your *next step*.

## Status

`0.0.1` — pre-alpha. Today kukuri understands tables (CSV / TSV / Excel /
Parquet) and takes a first look at folders. `baseline()` lands in v0.1.
Support for more formats grows release by release — that's the game.

## The name

Kukurihime (菊理媛) is the Japanese deity who mediated between Izanagi and
Izanami — the god of *binding things together*. kukuri binds data to
understanding, modalities to one interface, PoC to production, and people
to AI. It also puns on the Japanese verb 括る (*kukuru*, "to bundle up").

## License

MIT
