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 validationmake_event(name, label, category, metadata)— crée et valide un événementvalidate_event(event)— valide un événement existantnormalize_event_name(value)— normalise en snake_casevalidate_event_name(value)— valide un nom normaliséSTATS_EVENTS_TABLE— nom de la table SQL (forge_stats_events)STATS_EVENTS_COLUMNS— tuple des colonnesget_stats_events_schema_sql()— SQLCREATE TABLE IF NOT EXISTStrack_event(execute, event_or_name, ...)— enregistre un événement en baseget_track_event_sql()— SQLINSERTparamétréprepare_track_event_values(event)— tuple de paramètres prêts pourexecutelist_stats_events(fetch_all, name, category, limit)— liste des événements normalisésget_stats_events_admin_sql(name, category, limit)— SQLSELECTfiltréprepare_stats_events_admin_params(name, category, limit)— paramètres du SELECTnormalize_stats_event_row(row)— normalise une ligne brute (metadata JSON → dict)StatsAdminError— exception de consultation
Metadata
Release files for forge-mvc-stats 1.0.0rc9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| forge_mvc_stats-1.0.0rc9.tar.gz | 38.8 kB | Without provenance | Details for forge_mvc_stats-1.0.0rc9.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| forge_mvc_stats-1.0.0rc9-py3-none-any.whl | Python 3 | none | any | Details for forge_mvc_stats-1.0.0rc9-py3-none-any.whl |
Total release size: 65.4 kB
Release files / forge_mvc_stats-1.0.0rc9.tar.gz
| Download URL | forge_mvc_stats-1.0.0rc9.tar.gz |
|---|---|
| Size | 38.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a092e06812808b141bd02d14837aa47b973dbcf48e3eec38ccfa5892422016e6
|
|
BLAKE2b-256 checksum How to use checksums |
d2b3c0142f60f5171ba44e4fb4d500f0c49e95ec80e5ec34fa984fb6ccace983
|
| 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.0rc9-py3-none-any.whl
| Download URL | forge_mvc_stats-1.0.0rc9-py3-none-any.whl |
|---|---|
| Size | 26.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e3f81fdaece3368eceb95b56b7ad7fa7dd9750356d627f4b24cedeef191f5e7
|
|
BLAKE2b-256 checksum How to use checksums |
1141ae7b7ca97f8464073aa370ac0f5a89fec7207a39a8ac0575563cd1fc5fa7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Security for forge-mvc-stats 1.0.0rc9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.