Metadata-Version: 2.4
Name: makbool-sdk
Version: 1.0.0
Summary: Makbool Python SDK — error tracking for Python apps
License: MIT
Project-URL: Homepage, https://makbool.ru
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.24.0
Provides-Extra: flask
Requires-Dist: flask>=2.0; extra == "flask"
Provides-Extra: django
Requires-Dist: django>=3.2; extra == "django"

# makbool-sdk

> **Внимание:** SDK находится в стадии активной разработки. API может меняться между версиями.

Python SDK для отслеживания ошибок в приложениях. Автоматически перехватывает необработанные исключения и отправляет их в [Makbool](https://makbool.ru).

## Установка

```bash
pip install makbool-sdk
```

Для Flask или Django — установить с нужной экстрой:

```bash
pip install makbool-sdk[flask]
pip install makbool-sdk[django]
```

## Быстрый старт

```python
import makbool_sdk

makbool_sdk.init(project_key='ВАШ_API_КЛЮЧ')
```

После этого все необработанные исключения отправляются автоматически через `sys.excepthook`.

## Ручная отправка исключения

```python
try:
    risky_operation()
except Exception as e:
    makbool_sdk.capture_exception(e, context={'user_id': '123'})
```

## Произвольное сообщение

```python
makbool_sdk.capture_message('Что-то пошло не так', level='warning')
```

## Breadcrumbs

```python
makbool_sdk.add_breadcrumb(
    message='Пользователь нажал кнопку оплаты',
    category='ui',
    data={'plan': 'pro'},
)
```

## Flask

```python
from flask import Flask
from makbool_sdk.integrations.flask import MakboolFlaskMiddleware
import makbool_sdk

app = Flask(__name__)
makbool_sdk.init(project_key='ВАШ_API_КЛЮЧ')
MakboolFlaskMiddleware(app)
```

## Django

```python
# settings.py
MIDDLEWARE = [
    'makbool_sdk.integrations.django.MakboolDjangoMiddleware',
    ...
]
```

Инициализировать SDK при старте приложения (например, в `apps.py` или `wsgi.py`):

```python
import makbool_sdk
makbool_sdk.init(project_key='ВАШ_API_КЛЮЧ', environment='production')
```

## Параметры `init`

| Параметр      | Обязателен | По умолчанию                          | Описание                              |
|---------------|------------|---------------------------------------|---------------------------------------|
| `project_key` | да         | —                                     | API-ключ проекта из дашборда          |
| `endpoint`    | нет        | `https://makbool.ru/api/v1/errors`   | URL сервера                           |
| `environment` | нет        | `production`                          | Метка окружения (`staging`, `dev`)    |
| `release`     | нет        | `None`                                | Версия релиза для фильтрации ошибок   |

## Лицензия

MIT
