Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qurvo_python-0.1.0.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qurvo_python-0.1.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

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

Hashes for qurvo_python-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7f15ccc13cd75e088669171492d63e8b84364842a72e4ec565f6c5d0a09b1410
MD5 5adce5a58fa439fc48ce4f56359e1b50
BLAKE2b-256 8edb1e314ec3400edd9158fb68f6cf897233e74bbd06ab6653163bfec3dc60d9

See more details on using hashes here.

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

Hashes for qurvo_python-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c4c69cb58194b391074f665d640f4b2f477849cfc941424dcf7c85044819b57e
MD5 f4d3647b0b95eb2ae41ccfa60fa0c129
BLAKE2b-256 1c3dd8d991c7798e6c03dbaf7c6756862e6a1ba0fe5892873a73a2a6ba160c38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page