Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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)

Agrégation par comptage

Compter les événements groupés par name ou category (dimension en liste blanche, sans injection), avec filtres optionnels et fenêtre since (ADR-037) :

from forge_mvc_stats import count_stats_events

totaux = count_stats_events(my_fetch_all, "category", since="2026-01-01T00:00:00Z")
# [{"bucket": "traffic", "total": 128}, {"bucket": "compte", "total": 17}]

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

Release files for forge-mvc-stats 1.0.0rc7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for forge-mvc-stats 1.0.0rc7
File Size Uploaded
forge_mvc_stats-1.0.0rc7.tar.gz 26.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for forge-mvc-stats 1.0.0rc7
File Interpreter ABI Platform
forge_mvc_stats-1.0.0rc7-py3-none-any.whl Python 3 none any Details

Total release size: 45.9 kB

Release files / forge_mvc_stats-1.0.0rc7.tar.gz

Download URL forge_mvc_stats-1.0.0rc7.tar.gz
Size 26.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1136a883fd33ca48ee26c3375016ead364e73d32d5f2de2d1cfcae63dc77d0cd
BLAKE2b-256 checksum
How to use checksums
f41f53239946374423a470335d0f455c7417ceb1d11ddf32cb831f2007a6bc99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / forge_mvc_stats-1.0.0rc7-py3-none-any.whl

Download URL forge_mvc_stats-1.0.0rc7-py3-none-any.whl
Size 19.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
384675ab6612b384ac1d42d7176412077c0725f967370bf090f4f1e2f2f33b67
BLAKE2b-256 checksum
How to use checksums
0635fcdf5b80a8e4fb94a917db51ebaa0b3d84e23498610a8518d80ea7e13e53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page