Ce module servant d’« API » vous permet d’accéder aux horaires des prochains bus et tram du réseau dijonnais Divia, en temps réel, grâce au service TOTEM, ainsi qu’aux disponilités en temps réels des vélos et emplacements sur les stations DiviaVélodi, et ce directement depuis un script Python !
La partie « bus et tram » de cette bibliothèque est très largement inspirée (aussi bien sur le principe que dans la logique et les techniques utilisées) de divia-api par @gauthier-th (en JavaScript).
Une démo de l’API est disponible en cliquant ici : Démo (est c’est aussi open-source !)
Cette bibliothèque est disponible pour Python 3.6 et versions postérieures.
$ pip install divia-api
- Manuellement, dans un dossier où vous avez décompressé la dernière version du module :
$ python setup.py install
from divia_api import DiviaAPI
api = DiviaAPI()
line = api.find_line("T2", 'R') # Récupération de la ligne 2 du tram, dans la direction « R » (« A » étant la valeur par défaut).
line = api.get_line("185") # Récupération de la ligne par son identifiant unique (ici le 185, qui correspond à la ligne 2 du tram, dans la direction « R ».
stop = line.find_stop("Darcy") # Récupération de l’arrêt « Darcy » pour cette ligne.
stop = line.get_stop("1494") # Récupération de l’arrêt « Darcy » pour cette ligne, à partir de son identifiant unique.
stop = api.find_stop("T2", "Darcy", 'R') # Les étapes précédentes (récupération de la ligne et de l’arrêt) peuvent également être combinées.
totem_result = stop.totem() # Interrogation du service TOTEM et récupération des prochains horaires. C’est une liste d’objets « datetime.datetime » qui est retournée par la fonction.
print(totem_result) # Affichage du résultat.
from divia_api import VelodiAPI
velodi_api = VelodiAPI()
station = velodi_api.find_station("Lycée Carnot") # Récupération de la station DiviaVélodi « Lycée Carnot ».
station = velodi_api.get_station("34") # Récupération d’une station par son identifiant. Ici, l’identifiant « 34 » correspond à la station « Lycée Carnot ».
realtime = station.check() # Requête de données à jour sur la disponibilité des vélos et des emplacements dans cette station.
print(realtime.bikes, " ", realtime.docks) # Affichage du résultat (nombre de vélos disponibles et nombre de places disponibles sur la station).
realtime_all_stations = velodi_api.check_multiple_stations(velodi_api.stations) # Requête de données à jour sur l’intégralité des stations du réseau.
for station in realtime_all_stations:
print(f"Station {station.station.code} : {station}") # Affichage, pour chaque station du réseau, du numéro de la station et du résultat.
Divia est une marque déposée de Keolis Dijon Multimodalité. Nous ne sommes en aucun cas affiliés à Keolis ou à ses filiales et succursales.
Cette bibliothèque est ditribuée sous la Licence publique générale GNU amoindrie, version 3.
© 2023, Firmin Launay (hey@firminlaunay.me)