Metadata-Version: 2.4
Name: tavo-sdk
Version: 0.4.0
Summary: Python SDK for Tavo AI API
Author-email: Tavo AI <dev@tavoai.net>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/TavoAI/tavo-sdk
Project-URL: Documentation, https://docs.tavoai.net/python/
Project-URL: Repository, https://github.com/TavoAI/tavo-sdk
Project-URL: Issues, https://github.com/TavoAI/tavo-sdk/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
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 :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.24.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: typing-extensions>=4.5.0
Requires-Dist: python-dateutil>=2.8.0
Requires-Dist: websockets>=12.0
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: sphinx>=5.0.0; extra == "dev"
Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "dev"

# tavo-python-sdk

Python SDK for Tavo AI API

## Installation

```bash
pip install tavo-python-sdk
# or
poetry add tavo-python-sdk
```

## Usage

### Basic Usage

```python
from tavo import TavoClient

# Initialize client
client = TavoClient(api_key='your-api-key-here')

# Health check
health = client.health_check()
print(f'API Status: {health.status}')
```

### Advanced Usage

```python
from tavo import TavoClient

client = TavoClient(
    api_key='your-api-key',
    base_url='https://api.tavoai.net'  # optional
)

# Scan a repository
scan = client.scans.create(
    repository_url='https://github.com/user/repo',
    scan_type='security'
)

print(f'Scan created: {scan.id}')

# Get scan results
results = client.scans.get_results(scan.id)
print(f'Vulnerabilities found: {len(results.vulnerabilities)}')
```

### Async Support

```python
import asyncio
from tavo import AsyncTavoClient

async def main():
    client = AsyncTavoClient(api_key='your-api-key')

    # Health check
    health = await client.health_check()
    print(f'API Status: {health.status}')

    # Scan repository
    scan = await client.scans.create(
        repository_url='https://github.com/user/repo'
    )
    print(f'Scan created: {scan.id}')

asyncio.run(main())
```

## API Reference

### TavoClient

Main client class for interacting with Tavo AI API.

#### Constructor Options

- `api_key` (str): Your Tavo AI API key
- `base_url` (str, optional): API base URL (defaults to production)
- `timeout` (float, optional): Request timeout in seconds

#### Methods

- `health_check()`: Check API availability
- `scans.create(options)`: Create a new scan
- `scans.get_results(scan_id)`: Get scan results
- `scans.list()`: List all scans

### AsyncTavoClient

Async version of TavoClient with the same interface.

## Authentication

Get your API key from [Tavo AI Dashboard](https://app.tavoai.net).

```bash
export TAVO_API_KEY="your-api-key"
```

## Requirements

- Python 3.8+
- pip or poetry

## License

Apache-2.0

## Support

- [Documentation](https://docs.tavoai.net/python/)
- [GitHub Issues](https://github.com/TavoAI/tavo-sdk/issues)
- [Community Forum](https://community.tavoai.net)
