https://github.com/filau/python_divia_api
🇫🇷 Récupérez les horaires des prochains bus et trams Divia, et les disponibilités des DiviaVélodi, directement depuis Python !
https://github.com/filau/python_divia_api
api bus dijon divia diviavelodi horaire module package pip pypi python timetable tram tramway velodi
Last synced: 5 months ago
JSON representation
🇫🇷 Récupérez les horaires des prochains bus et trams Divia, et les disponibilités des DiviaVélodi, directement depuis Python !
- Host: GitHub
- URL: https://github.com/filau/python_divia_api
- Owner: filau
- License: lgpl-3.0
- Created: 2021-07-07T20:51:40.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-01-16T21:48:40.000Z (over 2 years ago)
- Last Synced: 2025-09-25T00:34:44.165Z (9 months ago)
- Topics: api, bus, dijon, divia, diviavelodi, horaire, module, package, pip, pypi, python, timetable, tram, tramway, velodi
- Language: Python
- Homepage: https://pypi.org/project/divia-api/
- Size: 45.9 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# « API » Divia — Python
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**](https://github.com/gauthier-th/divia-api) (en JavaScript).
## Démo
Une démo de l’API est disponible en cliquant ici : [Démo](https://pda.firminlaunay.me/) (est c’est aussi [open-source](https://github.com/filau/pda_demo) !)
## Installation
Cette bibliothèque est disponible pour Python 3.6 et versions postérieures.
* Depuis [PyPI](https://pypi.org), avec [pip](https://pypi.org/project/pip/)Â :
```
$ pip install divia-api
```
* Manuellement, dans un dossier où vous avez décompressé [la dernière version](https://github.com/filau/python_divia_api/releases/latest) du module :
```
$ python setup.py install
```
## Exemple d’utilisation de l’API bus et tram
```python
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.
```
## Exemple de l’utilisation de l’API Vélodi
```python
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](https://www.gnu.org/licenses/lgpl-3.0.fr.html).
© 2023, Firmin Launay ([hey@firminlaunay.me](mailto:hey@firminlaunay.me))