Python SDK for Semetrics — AI-first product analytics platform
Project description
Semetrics Python SDK
Python SDK для отправки аналитических событий на платформу Semetrics.
Установка
pip install semetrics-sdk
Быстрый старт
from semetrics import Semetrics
# Инициализация (один раз при старте приложения)
semetrics = Semetrics(
api_key="sm_live_ваш_ключ",
endpoint="https://semetrics.ru/events",
source_id="svc_my_service", # имя сервиса или bundle id
)
# Отправка событий (не блокирует — очередь + фоновый поток)
semetrics.track(
event_name="user_signed_up",
user_id="user_123",
properties={"plan": "pro", "source": "organic"},
)
semetrics.track(
event_name="checkout_completed",
user_id="user_123",
properties={"amount": 1990, "currency": "RUB", "items": 3},
)
# При завершении программы — отправить все накопленные события
semetrics.shutdown()
Использование через контекстный менеджер
with Semetrics(api_key="sm_live_...", endpoint="https://semetrics.ru/events") as sm:
sm.track("page_viewed", user_id="u1", properties={"page": "/home"})
# shutdown() вызывается автоматически при выходе из блока
Параметры конструктора
| Параметр | По умолчанию | Описание |
|---|---|---|
api_key |
обязательный | API-ключ проекта (sm_live_...) |
endpoint |
https://semetrics.ru/events |
URL сервиса |
source_id |
None |
Идентификатор источника (svc_tasks, com.bv.wfm) |
flush_interval |
5 |
Интервал фонового сброса (секунды) |
batch_size |
50 |
Максимум событий в одном запросе |
max_queue_size |
10_000 |
Максимум событий в памяти |
max_retries |
3 |
Попыток при ошибке отправки |
request_timeout |
10 |
Таймаут HTTP запроса (секунды) |
persistence_path |
None |
Путь к SQLite для персистентной очереди |
Персистентная очередь (опционально)
Для серверных приложений с требованием "ни одно событие не должно потеряться":
semetrics = Semetrics(
api_key="sm_live_...",
endpoint="https://semetrics.ru/events",
persistence_path="/var/lib/myapp/semetrics_queue.db",
)
События сохраняются в SQLite и отправляются даже после перезапуска процесса.
Принудительный сброс
# Отправить всё накопленное прямо сейчас (блокирует до завершения)
semetrics.flush()
Поля события
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
event_name |
str | ✅ | Название события |
user_id |
str | — | ID аутентифицированного пользователя |
anonymous_id |
str | — | ID анонимного пользователя |
session_id |
str | — | ID сессии |
properties |
dict | — | Произвольные свойства события |
client_ts |
datetime | — | Время события (по умолчанию — now()) |
source_idзадаётся при инициализации клиента и автоматически проставляется во все события — вtrack()его не нужно передавать.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file semetrics_sdk-0.3.0.tar.gz.
File metadata
- Download URL: semetrics_sdk-0.3.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64dd6016e315fbb6641865351c7067c9b835e0f5701d385a41775a042cc44c4d
|
|
| MD5 |
bb3db2e8abdeb855996c6d01c66bef20
|
|
| BLAKE2b-256 |
262f32dd49147c4441295b9259c98b6e7274956f16fe055e1a90a3c129906212
|
File details
Details for the file semetrics_sdk-0.3.0-py3-none-any.whl.
File metadata
- Download URL: semetrics_sdk-0.3.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8496e4d3ce56181f98a752db3055f13cae12a36da963bdb2cf39ea3112cef940
|
|
| MD5 |
831ec80cfc8ad140e4bd888c1049dfb0
|
|
| BLAKE2b-256 |
b40099141bdde9015db2b941eeff7aa1bad0e9be0a5c460a992dc2b96732ecc4
|