SIRI-lite
Dhrions Version 0.5.0, 12/08/2026
Outil Python pour interroger des API de transport en commun compatibles SIRI-lite
⚡ TL;DR
- 🚌 Interroge des API de transport en commun compatibles SIRI-lite pour les prochains passages et le temps restant avant arrivée
- 🎯 Pour qui : usage personnel, intégrations (ex. Home Assistant)
- 🚀
siri-lite stop-monitoring --service CTS --stop-code 43A --token YOUR_TOKEN --print
Le projet fournit :
- 🖥️ une CLI (ligne de commande),
- 🌐 une interface web minimale (Flask),
- 🔗 une base solide pour des intégrations (ex. Home Assistant).
📋 Table des matières
- ⚡ TL;DR
- ✨ Fonctionnalités principales
- 🚀 Installation rapide
- 💻 Utilisation (CLI)
- 📦 Utilisation avec Docker
- 🧪 Tests
- 🏗️ Architecture
- 📚 Documentation complète
- ⚠️ Sécurité
- 📄 Licence
✨ Fonctionnalités principales
- ⏱️ Récupération du temps restant avant l'arrivée d'un véhicule à un arrêt
- 🚌 Support de plusieurs réseaux (ex. CTS, PRIM / Île-de-France Mobilités)
- 📤 Sortie console, fichier JSON ou intégration applicative
- 📦 Exécution locale ou via Docker
- 📚 Documentation complète générée avec Antora
🚀 Installation rapide
Environnement Python
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
Configuration
Copier .env.example vers .env (fichier réellement ignoré par git, contrairement à
.env.example qui n'est qu'un gabarit) et y renseigner les paramètres du service utilisé :
CTS_BASE_API_URL=https://api.cts-strasbourg.eu/
CTS_AUTH_METH=Basic Auth
PRIM_BASE_API_URL=https://prim.iledefrance-mobilites.fr/
PRIM_AUTH_METH=apiKey
STOP_MONITORING_ENDPOINT=siri/2.0/stop-monitoring?MonitoringRef=
Ces mêmes valeurs peuvent aussi être fournies via services.conf, résolu en suivant la
spec XDG Base Directory (--config, puis $XDG_CONFIG_HOME/siri-lite/, puis
~/.siri-lite/, puis le répertoire courant) — voir la documentation Antora pour le
détail. Les tokens, eux, ne doivent jamais être commités ; ils se passent via
--token (CLI) ou {SERVICE}_TOKEN (interface web, ex. CTS_TOKEN ou PRIM_TOKEN
selon le paramètre ?service=).
💻 Utilisation (CLI)
Exemple avec le service CTS :
siri-lite stop-monitoring \
--service CTS \
--stop-code 43A \
--token YOUR_TOKEN \
--print
Exemple avec PRIM :
siri-lite stop-monitoring \
--service PRIM \
--stop-code STIF%3AStopPoint%3AQ%3A473921%3A \
--token YOUR_TOKEN \
--print
Options
| Option | Description |
|---|---|
--service |
Réseau de transport (CTS ou PRIM) |
--stop-code |
Code de l'arrêt à interroger |
--token |
Token d'authentification de l'API |
--print |
Affiche le résultat sur la sortie standard |
--unit |
Unité du temps restant (minutes ou seconds, défaut minutes) |
-c, --count |
Nombre de prochains passages à afficher (défaut 1 : un entier ; au-delà, une liste) |
-o, --output |
Écrit le résultat au format JSON dans le fichier indiqué |
--config |
Chemin explicite vers services.conf (voir section Configuration ci-dessus) |
-d, --debug |
Active les logs de debug |
📦 Utilisation avec Docker
docker build -t siri-lite .
docker run --env-file .env siri-lite stop-monitoring \
--service CTS \
--stop-code 43A \
--token YOUR_TOKEN
🧪 Tests
# Tous les tests
pytest tests/
# Un fichier spécifique
pytest tests/test_models.py
# Avec couverture
coverage run -m pytest tests/ && coverage report
🏗️ Architecture
Structure plate et simple :
src/siri_lite/
├── cli.py # Commandes CLI (Click)
├── web.py # Interface web (Flask)
├── services.py # Logique métier
├── siri_client.py # Client API SIRI + parsing
├── models.py # Modèles de données (DTOs)
├── http_client.py # Client HTTP générique (requests)
├── config.py # Chargement configuration
├── main.py # Point d'entrée
└── logging_config.py # Configuration du logging
📚 Documentation complète
La documentation détaillée (architecture, services supportés, exemples, intégration Home Assistant, etc.) est disponible via Antora :
antora antora-playbook.yml
Sources de la documentation : docs/
⚠️ Sécurité
- Les fichiers
.envet.secretsne doivent jamais être versionnés - Les tokens visibles dans l'historique doivent être considérés comme compromis et régénérés
📄 Licence
Projet personnel – licence à définir.
Metadata
Release files for siri-lite 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| siri_lite-0.6.0.tar.gz | 14.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| siri_lite-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.9 kB
Release files / siri_lite-0.6.0.tar.gz
| Download URL | siri_lite-0.6.0.tar.gz |
|---|---|
| Size | 14.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
521def8e93aa3c1d0937d54016fcb3845b8b63694b8f24fb1e9b55974bdb0a1f
|
|
BLAKE2b-256 checksum How to use checksums |
79f6d15367d906c481002efb91faf242e8af0a7d63c5c5eb5767bbf99bfc9dfe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / siri_lite-0.6.0-py3-none-any.whl
| Download URL | siri_lite-0.6.0-py3-none-any.whl |
|---|---|
| Size | 13.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8125aa10dfdeef15e605e22e2265bab63e24ab775a92ec4437be0db122ded6d4
|
|
BLAKE2b-256 checksum How to use checksums |
67908f07d951d403f6808e71090cc0b88bf8ac04b0cfafcb2d3444732d7536ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|