Skip to main content

Forge stats — événements génériques, schéma SQL, tracking et consultation.

Project description

forge-mvc-stats

Module stats pour Forge — événements génériques, schéma SQL, tracking et consultation.

Extrait du core Forge depuis la version 2.8.0 (ADR-004).

Installation

pip install forge-mvc-stats
# ou en mode developpement
pip install -e packages/forge-mvc-stats/

Usage

from forge_mvc_stats import make_event, track_event

# Créer un événement
event = make_event(
    "page_view",
    label="Vue de page",
    category="traffic",
    metadata={"path": "/contact"},
)

# Enregistrer dans la base (db.execute est fourni par l'application)
track_event(db.execute, event)

# Raccourci direct par nom
track_event(db.execute, "contact_click", label="Clic contact")

Consultation

from forge_mvc_stats import list_stats_events

# Lister les 50 derniers événements (fetch_all est fourni par l'application)
events = list_stats_events(my_fetch_all)

# Filtrer par nom ou catégorie
page_views = list_stats_events(my_fetch_all, name="page_view")
traffic    = list_stats_events(my_fetch_all, category="traffic", limit=100)

Schéma SQL

from forge_mvc_stats import get_stats_events_schema_sql, STATS_EVENTS_TABLE

print(STATS_EVENTS_TABLE)           # "forge_stats_events"
sql = get_stats_events_schema_sql() # CREATE TABLE IF NOT EXISTS forge_stats_events (...)

Cas d'usage

  • Comptage de visites de pages
  • Suivi de clics sur des liens ou boutons
  • Mesure de soumissions de formulaires
  • Traçage d'événements métier applicatifs

API publique

  • StatsEvent — dataclass d'événement (name, label, category, metadata)
  • StatsEventError — exception de validation
  • make_event(name, label, category, metadata) — crée et valide un événement
  • validate_event(event) — valide un événement existant
  • normalize_event_name(value) — normalise en snake_case
  • validate_event_name(value) — valide un nom normalisé
  • STATS_EVENTS_TABLE — nom de la table SQL (forge_stats_events)
  • STATS_EVENTS_COLUMNS — tuple des colonnes
  • get_stats_events_schema_sql() — SQL CREATE TABLE IF NOT EXISTS
  • track_event(execute, event_or_name, ...) — enregistre un événement en base
  • get_track_event_sql() — SQL INSERT paramétré
  • prepare_track_event_values(event) — tuple de paramètres prêts pour execute
  • list_stats_events(fetch_all, name, category, limit) — liste des événements normalisés
  • get_stats_events_admin_sql(name, category, limit) — SQL SELECT filtré
  • prepare_stats_events_admin_params(name, category, limit) — paramètres du SELECT
  • normalize_stats_event_row(row) — normalise une ligne brute (metadata JSON → dict)
  • StatsAdminError — exception de consultation

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

forge_mvc_stats-1.0.0b11.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

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

forge_mvc_stats-1.0.0b11-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file forge_mvc_stats-1.0.0b11.tar.gz.

File metadata

  • Download URL: forge_mvc_stats-1.0.0b11.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for forge_mvc_stats-1.0.0b11.tar.gz
Algorithm Hash digest
SHA256 45e08de2fee6bdea4ad860b274faab7f3c1fb07a7c3dcdaa49f6a65a746d0041
MD5 bb138a99024a40ef4b77c2f7002358f0
BLAKE2b-256 3ba0689ff2da4d0a64d87f984b6a0f14748183d893e9b2d9f695ca05b1dcf3d1

See more details on using hashes here.

File details

Details for the file forge_mvc_stats-1.0.0b11-py3-none-any.whl.

File metadata

File hashes

Hashes for forge_mvc_stats-1.0.0b11-py3-none-any.whl
Algorithm Hash digest
SHA256 9de666c204abd982ef05194171a086772d4d3ae29805e8c137cdae5f2ed5442a
MD5 6c16acb9882528f4549c8df51d0490c3
BLAKE2b-256 bd4355584a4ab920e2542103b9c5b1cc2edf93c5348248bce28eb1b48b130497

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