Metadata-Version: 2.4
Name: zeeker-common
Version: 0.2.0
Summary: Common utilities for Zeeker data projects
Project-URL: Homepage, https://github.com/zeeker-sg/cli
Project-URL: Repository, https://github.com/zeeker-sg/cli
Author-email: Ang Hou Fu <houfu@outlook.sg>
License: MIT
Keywords: data-processing,utilities,zeeker
Requires-Python: >=3.12
Requires-Dist: httpx>=0.27.0
Requires-Dist: tenacity>=8.2.0
Provides-Extra: all
Requires-Dist: openai>=1.0.0; extra == 'all'
Provides-Extra: openai
Requires-Dist: openai>=1.0.0; extra == 'openai'
Description-Content-Type: text/markdown

# zeeker-common

Common utilities for Zeeker data projects.

## Installation

```bash
pip install zeeker-common

# With OpenAI support
pip install zeeker-common[openai]

# With all optional dependencies
pip install zeeker-common[all]
```

## Utilities

### Hash ID Generation

```python
from zeeker_common import get_hash_id

# Generate deterministic IDs from multiple fields
user_id = get_hash_id(["user", "john.doe@example.com"])
```

### Jina Reader Integration

```python
from zeeker_common import get_jina_reader_content

# Extract clean text from web pages
content = await get_jina_reader_content("https://example.com/article")
```

Requires `JINA_API_TOKEN` environment variable.

### Retry Decorators

```python
from zeeker_common import async_retry

@async_retry
async def fetch_data():
    # Automatically retries on failure with exponential backoff
    pass
```

### OpenAI Integration (Optional)

```python
from zeeker_common.openai import get_summary

# Generate summaries using GPT-4
summary = await get_summary("Long text here...")
```

Requires `OPENAI_API_KEY` environment variable and `openai` package.

## License

MIT License - see LICENSE file for details
