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

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

Built distribution (wheel)

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

Total release size: 64.6 kB

Release files / forge_mvc_stats-1.0.0rc8.tar.gz

Download URL forge_mvc_stats-1.0.0rc8.tar.gz
Size 38.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d53b476ef5fa563cb06c674b4776937c841959fa15b8bf9bfd14c40aac43c3a0
BLAKE2b-256 checksum
How to use checksums
bd2d663e8dd3a224463dfa677b9305267873ab78ccd2a7172f6db0a348db44cf
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.0rc8-py3-none-any.whl

Download URL forge_mvc_stats-1.0.0rc8-py3-none-any.whl
Size 26.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc9238aa71af80d52dec8072127e11860aae0a9c5726f682ec5c828695a6bee6
BLAKE2b-256 checksum
How to use checksums
75b1faf9e394b351aa4175dad0738c5f66ac7834d312e924f1f2c2861bfc5d32
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