divia-api


Namedivia-api JSON
Version 2.4 PyPI version JSON
download
home_pagehttps://github.com/filau/python_divia_api
Summarydivia_api is a Python library that allows to retrieve the timetable of Divia’s bus and tramways, along with some infos about DiviaVélodi bikes, straight from a Python script.
upload_time2023-09-18 20:08:12
maintainer
docs_urlNone
authorFirmin Launay
requires_python
licenseLGPL-3.0
keywords divia api firmin launay dijon bus tram velodi
VCS
bugtrack_url
requirements requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # « 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))



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/filau/python_divia_api",
    "name": "divia-api",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "divia,api,firmin,launay,dijon,bus,tram,velodi",
    "author": "Firmin Launay",
    "author_email": "hey@firminlaunay.me",
    "download_url": "https://files.pythonhosted.org/packages/02/09/4354c6fc73b448887e2935af309b821f7efbc794abacdf2f80dcf814a600/divia-api-2.4.tar.gz",
    "platform": null,
    "description": "# \u00ab API \u00bb Divia \u2014 Python\n\nCe module servant  d\u2019\u00ab API \u00bb vous permet d\u2019acc\u00e9der aux horaires des prochains bus et tram du r\u00e9seau dijonnais *Divia*, en temps r\u00e9el, gr\u00e2ce au service *TOTEM*, ainsi qu\u2019aux disponilit\u00e9s en temps r\u00e9els des v\u00e9los et emplacements sur les stations *DiviaV\u00e9lodi*, et ce directement depuis un script Python !  \nLa partie \u00ab bus et tram \u00bb de cette biblioth\u00e8que est tr\u00e8s largement inspir\u00e9e (aussi bien sur le principe que dans la logique et les techniques utilis\u00e9es) de [**divia-api** par **@gauthier-th**](https://github.com/gauthier-th/divia-api) (en JavaScript).\n\n## D\u00e9mo\n\nUne d\u00e9mo de l\u2019API est disponible en cliquant ici : [D\u00e9mo](https://pda.firminlaunay.me/) (est c\u2019est aussi [open-source](https://github.com/filau/pda_demo) !)\n\n## Installation\n\nCette biblioth\u00e8que est disponible pour Python 3.6 et versions post\u00e9rieures.  \n  \n* Depuis [PyPI](https://pypi.org), avec [pip](https://pypi.org/project/pip/) :\n```\n$  pip install divia-api\n```\n\n* Manuellement, dans un dossier o\u00f9 vous avez d\u00e9compress\u00e9 [la derni\u00e8re version](https://github.com/filau/python_divia_api/releases/latest) du module :\n```\n$  python setup.py install\n```\n\n## Exemple d\u2019utilisation de l\u2019API bus et tram\n\n```python\nfrom divia_api import DiviaAPI\n\napi = DiviaAPI()\n\nline = api.find_line(\"T2\", 'R')  # R\u00e9cup\u00e9ration de la ligne 2 du tram, dans la direction \u00ab R \u00bb (\u00ab A \u00bb \u00e9tant la valeur par d\u00e9faut).\nline = api.get_line(\"185\")  # R\u00e9cup\u00e9ration de la ligne par son identifiant unique (ici le 185, qui correspond \u00e0 la ligne 2 du tram, dans la direction \u00ab R \u00bb.\n\nstop = line.find_stop(\"Darcy\")  # R\u00e9cup\u00e9ration de l\u2019arr\u00eat \u00ab Darcy \u00bb pour cette ligne.\nstop = line.get_stop(\"1494\")  # R\u00e9cup\u00e9ration de l\u2019arr\u00eat \u00ab Darcy \u00bb pour cette ligne, \u00e0 partir de son identifiant unique.\n\nstop = api.find_stop(\"T2\", \"Darcy\", 'R')  # Les \u00e9tapes pr\u00e9c\u00e9dentes (r\u00e9cup\u00e9ration de la ligne et de l\u2019arr\u00eat) peuvent \u00e9galement \u00eatre combin\u00e9es.\n\ntotem_result = stop.totem()  # Interrogation du service TOTEM et r\u00e9cup\u00e9ration des prochains horaires. C\u2019est une liste d\u2019objets \u00ab datetime.datetime \u00bb qui est retourn\u00e9e par la fonction.\n\nprint(totem_result)  # Affichage du r\u00e9sultat.\n```\n\n## Exemple de l\u2019utilisation de l\u2019API V\u00e9lodi\n\n```python\nfrom divia_api import VelodiAPI\n\nvelodi_api = VelodiAPI()\n\nstation = velodi_api.find_station(\"Lyc\u00e9e Carnot\")  # R\u00e9cup\u00e9ration de la station DiviaV\u00e9lodi \u00ab Lyc\u00e9e Carnot \u00bb.\n\nstation = velodi_api.get_station(\"34\")  # R\u00e9cup\u00e9ration d\u2019une station par son identifiant. Ici, l\u2019identifiant \u00ab 34 \u00bb correspond \u00e0 la station \u00ab Lyc\u00e9e Carnot \u00bb.\n\nrealtime = station.check()  # Requ\u00eate de donn\u00e9es \u00e0 jour sur la disponibilit\u00e9 des v\u00e9los et des emplacements dans cette station.\n\nprint(realtime.bikes, \"  \", realtime.docks)  # Affichage du r\u00e9sultat (nombre de v\u00e9los disponibles et nombre de places disponibles sur la station).\n\nrealtime_all_stations = velodi_api.check_multiple_stations(velodi_api.stations)  # Requ\u00eate de donn\u00e9es \u00e0 jour sur l\u2019int\u00e9gralit\u00e9 des stations du r\u00e9seau.\n\nfor station in realtime_all_stations:\n    print(f\"Station {station.station.code} : {station}\")  # Affichage, pour chaque station du r\u00e9seau, du num\u00e9ro de la station et du r\u00e9sultat.\n```\n\n## __________\n\n*Divia* est une marque d\u00e9pos\u00e9e de *Keolis Dijon Multimodalit\u00e9*. Nous ne sommes en aucun cas affili\u00e9s \u00e0 *Keolis* ou \u00e0 ses filiales et succursales.  \n  \nCette biblioth\u00e8que est ditribu\u00e9e sous la [Licence publique g\u00e9n\u00e9rale GNU amoindrie, version 3](https://www.gnu.org/licenses/lgpl-3.0.fr.html).  \n\u00a9 2023, Firmin Launay ([hey@firminlaunay.me](mailto:hey@firminlaunay.me))\n\n\n",
    "bugtrack_url": null,
    "license": "LGPL-3.0",
    "summary": "divia_api is a Python library that allows to retrieve the timetable of Divia\u2019s bus and tramways, along with some infos about DiviaV\u00e9lodi bikes, straight from a Python script.",
    "version": "2.4",
    "project_urls": {
        "Download": "https://github.com/filau/python_divia_api/archive/refs/tags/2.4.tar.gz",
        "Homepage": "https://github.com/filau/python_divia_api"
    },
    "split_keywords": [
        "divia",
        "api",
        "firmin",
        "launay",
        "dijon",
        "bus",
        "tram",
        "velodi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02094354c6fc73b448887e2935af309b821f7efbc794abacdf2f80dcf814a600",
                "md5": "424e3a077e67327808ee4d3253ddfbac",
                "sha256": "20697e8137aa930f2b1151f84be5ccd66b52965007adb860486d418c59613f40"
            },
            "downloads": -1,
            "filename": "divia-api-2.4.tar.gz",
            "has_sig": false,
            "md5_digest": "424e3a077e67327808ee4d3253ddfbac",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 11337,
            "upload_time": "2023-09-18T20:08:12",
            "upload_time_iso_8601": "2023-09-18T20:08:12.159750Z",
            "url": "https://files.pythonhosted.org/packages/02/09/4354c6fc73b448887e2935af309b821f7efbc794abacdf2f80dcf814a600/divia-api-2.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-18 20:08:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "filau",
    "github_project": "python_divia_api",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "requests",
            "specs": []
        }
    ],
    "lcname": "divia-api"
}
        
Elapsed time: 0.13229s