Metadata-Version: 2.4
Name: vibe_widget
Version: 0.2.0
Summary: Create interactive visualizations using natural language and LLMs
Project-URL: Homepage, https://www.dylanwootton.com/vibe-widgets/index.html
Project-URL: Documentation, https://github.com/yourusername/vibe-widget#readme
Project-URL: Repository, https://github.com/yourusername/vibe-widget
Project-URL: Issues, https://github.com/yourusername/vibe-widget/issues
Author-email: Your Name <your.email@example.com>
License: MIT
Keywords: interactive,jupyter,llm,visualization,widgets
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 :: Visualization
Requires-Python: >=3.9
Requires-Dist: anthropic>=0.40.0
Requires-Dist: anywidget>=0.9.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: crawl4ai>=0.3.0
Requires-Dist: nest-asyncio>=1.5.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: python-dotenv>=1.0.0
Provides-Extra: dev
Requires-Dist: ipython>=8.12.0; extra == 'dev'
Requires-Dist: mypy>=1.8.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.6.0; extra == 'dev'
Description-Content-Type: text/markdown

# Vibe Widget

Create interactive visualizations using natural language and LLMs.

## Installation

```bash
pip install vibe-widget
```

Or with `uv`:

```bash
uv pip install vibe-widget
```

## Quick Start

```python
import pandas as pd
import vibe_widget as vw

df = pd.DataFrame({
    'height': [150, 160, 170, 180, 190],
    'weight': [50, 60, 70, 80, 90]
})

vw.create("an interactive scatterplot of height and weight", df)
```

This will:
1. Analyze your data structure
2. Generate a React component via Claude API
3. Return an HTML file with the interactive visualization

## API Key Setup

Set your Anthropic API key:

```bash
export ANTHROPIC_API_KEY='your-api-key-here'
```

Or pass it directly:

```python
vw.create(
    "a bar chart of sales by region", 
    df, 
    api_key="your-api-key-here"
)
```

## Saving to File

```python
vw.create(
    "an interactive line chart showing trends over time",
    df,
    output_path="output/visualization.html"
)
```

## Development

Install with dev dependencies:

```bash
pip install -e ".[dev]"
```

Run tests:

```bash
pytest
```

Lint and format:

```bash
ruff check .
ruff format .
```

Type checking:

```bash
mypy src/
```

## Features

- 🚀 Modern Python packaging (pyproject.toml, src layout)
- 🤖 LLM-powered visualization generation
- ⚛️ React-based interactive widgets
- 📊 Pandas DataFrame integration
- 🔧 Extensible LLM provider system

## License

MIT
