Metadata-Version: 2.4
Name: autotrace-py
Version: 0.1.0
Summary: AutoTrace Python SDK for autonomous error tracking and AI triage
Author-email: AutoTrace Team <maintainers@autotrace.io>
License: MIT
Project-URL: Homepage, https://autotrace.io
Project-URL: Repository, https://github.com/autotrace/autotrace-py
Project-URL: Documentation, https://docs.autotrace.io
Keywords: error-tracking,ai-triage,gemini,monitoring,exceptions
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
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 :: System :: Monitoring
Classifier: Topic :: Software Development :: Bug Tracking
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: django
Requires-Dist: django>=3.2; extra == "django"
Provides-Extra: fastapi
Requires-Dist: starlette>=0.14.0; extra == "fastapi"

# AutoTrace Python SDK (`autotrace-py`)

Lightweight, zero-dependency Python client for autonomous error tracking and AI triage with [AutoTrace](https://autotrace.io).

## Installation

```bash
pip install autotrace
# or from source:
pip install -e ./sdk/python
```

## Quickstart

```python
import autotrace

# 1. Initialize once at application startup
autotrace.init(
    api_key="<YOUR_API_KEY>",
    endpoint_url="http://localhost:8000/api/ingest/",
    environment="production",
    context={"service": "payment-api", "version": "2.1.0"},
)

# 2. Manual Exception Capture
try:
    process_order()
except Exception as exc:
    autotrace.capture_exception(
        exc_info=exc,
        endpoint="/api/v1/orders",
        context={"user_id": "usr_123"},
    )
```

## Function Decorator

```python
@autotrace.trace(endpoint="/jobs/sync-inventory")
def sync_inventory():
    # If this raises, AutoTrace captures the error and traceback
    perform_risky_task()
```

## Framework Integrations

### Django

In your `settings.py`:
```python
AUTOTRACE_API_KEY = "<YOUR_API_KEY>"
AUTOTRACE_ENDPOINT = "http://localhost:8000/api/ingest/"

MIDDLEWARE = [
    # ... other middleware
    "autotrace.integrations.django.AutoTraceMiddleware",
]
```

### FastAPI / Starlette

In your `main.py`:
```python
from fastapi import FastAPI
import autotrace
from autotrace.integrations.fastapi import AutoTraceMiddleware

autotrace.init(api_key="<YOUR_API_KEY>")

app = FastAPI()
app.add_middleware(AutoTraceMiddleware)
```
