Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
doc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Python Client for Navitia Services

NAVITIA OVERVIEW

Navitia is the open API for building cool stuff with mobility data. It provides the following services

  • journeys computation
  • line schedules
  • next departures
  • exploration of public transport data / search places
  • and sexy things such as isochrones

You can find the documentation here.

GOAL

The goal of this package is to provide a dead simple way to request navitia's API.

INSTALLATION

To install package:

pip install navitia_client

USAGE

You first have to ask for an API key, for Navitia API, you can get it here. Suppose you have it:

from navitia_client import Client

client = Client(user=NAVITIA_USER)
client.set_region("fr-idf")

# Get all journeys from a given point or ressource:
stop_area = "stop_area:OIF:SA:8768138"
response1 = client.journeys(origin=stop_area, verbose=True)

# Get route_schedules for given stop point:
stop_point = "stop_point:OIF:SP:10:1145"
response2 = client.route_schedules(stop_point=stop_point, verbose=True)

# Compute a custom request (raw_url, and extra_params):
raw_url = 'coverage/fr-idf/stop_areas/stop_area:OIF:SA:8768138/places_nearby'
response3 = client.raw(url=raw_url, verbose=True)

# Compute custom multi-pages request:
url = 'coverage/fr-idf/lines'
response4 = client.raw(url, multipage=True, page_limit=10, verbose=True)

# Compute invert geocoding request:
lat = '48.866667'
lon = '2.333333'
response5 = client.inverted_geocoding(lat=lat, lon=lon, verbose=True)

# Compute explore ressource request, single or multipage:
response6 = client.explore("networks", verbose=True)
response7 = client.explore("lines", multipage=True, page_limit=5, count_per_page=50, verbose=True)

# Compute departures request:
response8 = client.departures(coords=coords, verbose=True)
response9 = client.departures(
    collection_name="stop_points", object_id=stop_point, verbose=True)

METHODS

http://doc.navitia.io/#api-catalog

Client class has multiple methods:

  • Client.raw() : when you want to choose freely url and parameters, and still benefit from core functionalities, for instance multipage
  • Client.journeys() : computes journeys
  • Client.route_schedules() : computes route_schedules
  • Client.explore() : explore transportation objects as lines, routes, networks etc
  • Client.inverted_geocoding() : get address from coordinates
  • Client.departures() : get departures from coords or object.

And many more to come:

  • isochrones
  • arrivals
  • many others...

MISCELLANEOUS

  • verbose=True parameter if you want to get information in console about requests.
  • client.requested_urls attribute if you want to see all urls requested by your client.

TODO

  • replace multiprocessing by gevent async requests

CLEAN REPO:

  • unit tests
  • code documentation with sphynx

ADD METHODS

All api points: http://doc.navitia.io/#api-catalog :

  • Coverage - OK (raw)
  • Datasets - OK (raw)
  • Contributors - OK (raw)
  • Inverted geocoding - OK (tests to finish, and parameters check)
  • Public Transportation Objects exploration - OK
  • Autocomplete on Public Transport objects - TODO
  • Autocomplete on geographical objects - TODO
  • Places Nearby - TODO
  • Journeys - WORK IN PROGRESS
  • Isochrones (currently in Beta) - TODO
  • Route Schedules - WORK IN PROGRESS
  • Stop Schedules - TODO
  • Departures - WORK IN PROGRESS (tests, check parameters)
  • Arrivals - TODO
  • Traffic reports - TODO

About

This library makes it easy to request a navitia api in python

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.