Skip to content

adam-kad/eventa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eventa

PyPI Python versions License

Lightweight, local-first event analytics for Python applications — no external services required.

from eventa import Analytics

analytics = Analytics(database="sqlite:///eventa.db")

analytics.track(
    event="payment_success",
    user="telegram:123456",
    properties={
        "plan": "premium", 
        "price": 299
    },
)

Install

pip install eventa

Usage

from eventa import Analytics

analytics = Analytics()  # defaults to sqlite:///eventa.db

analytics.track(
    event="login",
    user="user_123",
)

analytics.track(
    event="button_click",
    user="user_123",
    properties={"button": "buy"},
)

analytics.count_events()                 # total events
analytics.count_events(event="login")    # events of a given name

user is just a string identifier you control — Eventa doesn't manage user accounts or profiles. Events are stored in their own eventa_events table, so Eventa never touches your application's existing models or migrations.

Storage

Any SQLAlchemy connection URL works:

analytics = Analytics(database="sqlite:///eventa.db")

SQLite is supported today; other SQL databases (e.g. PostgreSQL) work through the same mechanism once tested and documented.

Development

uv sync --extra dev
uv run pytest
uv run ruff check .
uv run mypy

License

MIT

About

Lightweight event analytics SDK for Python applications

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages