Qurvo analytics SDK for Python — zero-dependency event tracking
Project description
qurvo-python
Python SDK for Qurvo analytics. Zero runtime dependencies -- uses only the Python standard library.
Installation
pip install qurvo-python
Quick Start
from qurvo import Qurvo
qurvo = Qurvo(api_key="qk_...")
# Track a custom event
qurvo.track("user-123", "purchase", {"amount": 99.99, "currency": "USD"})
# Identify a user
qurvo.identify("user-123", {"name": "John", "plan": "pro"})
# Set user properties (overwrites existing)
qurvo.set("user-123", {"plan": "enterprise"})
# Set user properties only if not already set
qurvo.set_once("user-123", {"first_seen": "2026-01-01"})
# Track a screen view
qurvo.screen("user-123", "HomeScreen", {"tab": "overview"})
# Gracefully flush and shut down
qurvo.shutdown()
Configuration
qurvo = Qurvo(
api_key="qk_...", # Required
endpoint="https://ingest.qurvo.pro", # Default
flush_interval=5.0, # Seconds between flushes
flush_size=20, # Max events per batch
max_queue_size=1000, # Max queued events
timeout=30.0, # HTTP timeout in seconds
logger=lambda msg: print(f"[qurvo] {msg}"), # Optional debug logger
)
API Reference
Qurvo(api_key, **kwargs)
Create a new client instance. Starts a background thread that periodically flushes queued events to the ingest endpoint.
.track(distinct_id, event, properties=None)
Track a custom event.
.identify(distinct_id, user_properties, anonymous_id=None)
Identify a user and set their properties. Optionally merge an anonymous ID.
.set(distinct_id, properties)
Set user properties (overwrites existing values). Uses the $set envelope pattern.
.set_once(distinct_id, properties)
Set user properties only if they are not already set. Uses the $set_once envelope pattern.
.screen(distinct_id, screen_name, properties=None)
Track a screen view event. The screen_name is added as $screen_name in properties.
.shutdown(timeout=30.0)
Gracefully flush all remaining events and stop the background thread. Call this before your application exits.
Requirements
- Python >= 3.9
- No runtime dependencies
License
MIT
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 qurvo_python-0.1.0.tar.gz.
File metadata
- Download URL: qurvo_python-0.1.0.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f15ccc13cd75e088669171492d63e8b84364842a72e4ec565f6c5d0a09b1410
|
|
| MD5 |
5adce5a58fa439fc48ce4f56359e1b50
|
|
| BLAKE2b-256 |
8edb1e314ec3400edd9158fb68f6cf897233e74bbd06ab6653163bfec3dc60d9
|
File details
Details for the file qurvo_python-0.1.0-py3-none-any.whl.
File metadata
- Download URL: qurvo_python-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4c69cb58194b391074f665d640f4b2f477849cfc941424dcf7c85044819b57e
|
|
| MD5 |
f4d3647b0b95eb2ae41ccfa60fa0c129
|
|
| BLAKE2b-256 |
1c3dd8d991c7798e6c03dbaf7c6756862e6a1ba0fe5892873a73a2a6ba160c38
|