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.0rc5

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.0rc5
File Size Uploaded
forge_mvc_stats-1.0.0rc5.tar.gz 26.9 kB Details

Built distribution (wheel)

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

Total release size: 45.9 kB

Release files / forge_mvc_stats-1.0.0rc5.tar.gz

Download URL forge_mvc_stats-1.0.0rc5.tar.gz
Size 26.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a01fc14fa61b7935fc48d59bfac97f40610dd4530dbae0ca1df88d3801164156
BLAKE2b-256 checksum
How to use checksums
9c15626116eef2377a878c4cea0b91f6a929cccec87c06bc2a2a63bc80a892b4
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.0rc5-py3-none-any.whl

Download URL forge_mvc_stats-1.0.0rc5-py3-none-any.whl
Size 19.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
66b74a2c3f0ee90c74bf704f34f1ab965a831b14c860f946f1e86b12bfc95422
BLAKE2b-256 checksum
How to use checksums
13e0352c34cdf0ed6128a8e8984ccc0f07c671041390b4f8d7cc13d305e33df5
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