Skip to main content

SIRI-lite

SIRI-lite

Dhrions Version 0.5.0, 12/08/2026

Outil Python pour interroger des API de transport en commun compatibles SIRI-lite

Documentation · Issues

⚡ 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


✨ 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 .env et .secrets ne 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)

Source distribution for siri-lite 0.6.0
File Size Uploaded
siri_lite-0.6.0.tar.gz 14.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for siri-lite 0.6.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

This release

0.6.0 This release

2 release files

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