Create your own Wrapped-style summary from any dataset
Project description
get-wrapped
Turn your structured data into a yearly Wrapped-style summary, just like your favorite music recaps — but for any dataset. Works seamlessly with both OpenAI and Anthropic models.
Features
- Generate engaging, punchy recaps from any structured data.
- Provider-agnostic: works with OpenAI or Anthropic automatically.
- Simple, library-first API: just pass a summary dictionary.
- Easy integration with pandas or any analytics pipeline.
Installation
Install from PyPI:
pip install get-wrapped
Environment Variables
Set your model credentials (Not needed if you pass in your model credentials):
Anthropic Example:
export MODEL_API_URL="https://api.anthropic.com/v1/complete"
export MODEL_API_KEY="sk-xxxx"
export MODEL_NAME="claude-sonnet-4" # optional
Or OpenAI Example:
export MODEL_API_URL="https://api.openai.com/v1/chat/completions"
export MODEL_API_KEY="sk-xxxx"
export MODEL_NAME="gpt-4.1-mini" # optional
Usage
from get_wrapped import generate_wrapped
summary = {
"rows": 5,
"columns": {
"activity": {"top_values": {"run": 3, "bike": 2}, "dtype": "object", "nulls": 0},
"minutes": {"min": 20, "max": 60, "mean": 35, "sum": 175, "dtype": "float64", "nulls": 0},
},
}
# Example summary (or pandas dataframe)
# summary = pd.DataFrame({
# "activity": ["run", "run", "run", "bike", "bike"],
# "minutes": [20, 30, 35, 30, 60]
# })
wrapped_text = generate_wrapped(summary)
print(wrapped_text)
Output -
# 🏃♀️ Your Activity Recap
## **Total Sessions** 📊
5 activities logged
## **Time Investment** ⏱️
175 total minutes of activity
Average session: 35 minutes
## **Activity Breakdown** 🔥
**Running** dominated with 3 sessions
**Biking** rounded out with 2 sessions
## **Session Range** 📈
Shortest: 20 minutes
Longest: 60 minutes
## **The Verdict** ✨
You kept it consistent with a solid mix of cardio activities! 🎯
How it works
- Provide a structured summary of your dataset.
- The library generates a prompt and sends it to your LLM (OpenAI or Anthropic).
- Receive a fun, readable Wrapped-style recap strictly based on your data.
- Bring your own API key—or let the library pick it up from your local environment.
Development
Clone the repository:
git clone https://github.com/kkumar/get-wrapped.git
cd get-wrapped
uv sync
uv run python examples/run_wrapped.py
License
MIT License — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file get_wrapped-0.1.3.tar.gz.
File metadata
- Download URL: get_wrapped-0.1.3.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a61ef5c96d27e1cff416dee7311b28ca66029f7a1096c781328f00711ef8bcff
|
|
| MD5 |
6d9bc9fd1c4d8ffbbd7b9766161c70ab
|
|
| BLAKE2b-256 |
3bc27e787b909256d6843b8c15a3d00d9652395d6aa13c8d4f047c2b4c0d6e69
|
File details
Details for the file get_wrapped-0.1.3-py3-none-any.whl.
File metadata
- Download URL: get_wrapped-0.1.3-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec53bca5289827f1c87241a805bfb32afd0c4333343b22c086be53ab4ac637e0
|
|
| MD5 |
f9d79dbc3ea804647aab1eaa6c632b70
|
|
| BLAKE2b-256 |
97a024f153852d3aca66c02d970b7ccaab7b1a5a4de012c226767fe8599a93f6
|