Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ericoc/indego-py-lib
Python3 library for working with the Philadelphia Indego Bike Share API
https://github.com/ericoc/indego-py-lib
api-client bicycle bicycle-share bicycle-sharing bike bike-share bike-share-data bike-sharing bikeshare bikesharing indego indego-api philadelphia philadelphias-bike-share philly pypi python python-3 python-library python3
Last synced: 10 days ago
JSON representation
Python3 library for working with the Philadelphia Indego Bike Share API
- Host: GitHub
- URL: https://github.com/ericoc/indego-py-lib
- Owner: ericoc
- License: mit
- Created: 2018-06-05T18:46:59.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2023-03-08T22:52:04.000Z (over 1 year ago)
- Last Synced: 2024-11-05T12:21:43.527Z (15 days ago)
- Topics: api-client, bicycle, bicycle-share, bicycle-sharing, bike, bike-share, bike-share-data, bike-sharing, bikeshare, bikesharing, indego, indego-api, philadelphia, philadelphias-bike-share, philly, pypi, python, python-3, python-library, python3
- Language: Python
- Homepage: https://pypi.org/project/indego/
- Size: 166 KB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Indego Bike Share Python Library
================================About
-----I have tried to make a re-usable Python library for the Philadelphia Indego Bike Share API!
I wrote this similarly to [my existing Indego PHP library](https://github.com/ericoc/indego-php-lib).
Check out [the City of Philadelphia GitHub](https://github.com/CityOfPhiladelphia) if you think this library is interesting!
I created [indego.ericoc.com](https://indego.ericoc.com/) ([source code](https://github.com/ericoc/indego.ericoc.com)) using this library as well
Installation
------------Installation of this library should be as simple as running:
pip install indego
Compatibility
-------------Please note that this library is only compatible with Python 3+. Python 2 is not supported.
Example
-------When combined with the provided `Indego` class, the following code will generate the example output:
from indego import Indego
# Instantiate the Indego class
indego = Indego()# Retrieve and print "university" stations
uni_stations = indego.get_stations('university')
print(uni_stations)# Show how many stations were returned above
uni_count = len(uni_stations)
print(uni_count, 'stations returned')Output:
$ python3 university_example.py
{3008: {'addressStreet': '1076 Berks Street', 'addressCity': 'Philadelphia', 'addressState': 'PA', 'addressZipCode': '19122', 'bikesAvailable': 3, 'closeTime': '03:55:00', 'docksAvailable': 16, 'eventEnd': None, 'eventStart': None, 'isEventBased': False, 'isVirtual': False, 'isVisible': False, 'kioskId': 3008, 'kioskPublicStatus': 'Active', 'kioskStatus': 'FullService', 'name': 'Temple University Station', 'notes': None, 'openTime': '04:00:00', 'publicText': '', 'timeZone': 'Eastern Standard Time', 'totalDocks': 19, 'trikesAvailable': 0, 'kioskConnectionStatus': 'Active', 'kioskType': 1, 'latitude': 39.98078, 'longitude': -75.15055, 'hasGeofence': False, 'classicBikesAvailable': 3, 'smartBikesAvailable': 0, 'electricBikesAvailable': 0, 'isArchived': False}, 3020: {'addressStreet': '3051 South St.', 'addressCity': 'Philadelphia', 'addressState': 'PA', 'addressZipCode': '19147', 'bikesAvailable': 11, 'closeTime': '03:55:00', 'docksAvailable': 24, 'eventEnd': None, 'eventStart': None, 'isEventBased': False, 'isVirtual': False, 'isVisible': False, 'kioskId': 3020, 'kioskPublicStatus': 'Active', 'kioskStatus': 'FullService', 'name': 'University City Station', 'notes': None, 'openTime': '04:00:00', 'publicText': '', 'timeZone': 'Eastern Standard Time', 'totalDocks': 35, 'trikesAvailable': 0, 'kioskConnectionStatus': 'Active', 'kioskType': 1, 'latitude': 39.94922, 'longitude': -75.19036, 'hasGeofence': False, 'classicBikesAvailable': 11, 'smartBikesAvailable': 0, 'electricBikesAvailable': 0, 'isArchived': False}}
2 stations returnedProviding an argument/filter to `get_stations()` to limit the selection of stations only limits the results within the `Indego` class. The API end-point itself always returns all stations.
Unfortunately, there does not appear to be a signifcant amount of documentation for the API being used nor does there seem to be any parameters available to limit the stations being retrieved from the API.
Calling `get_stations()` without any arguments will return a list of all (*currently*, 132) stations.
More Information
----------------
* [The actual Philadelphia Indego Bike Share API, a GeoJSON file](https://www.rideindego.com/stations/json/)
* [OpenDataPhilly description of the API](https://www.opendataphilly.org/dataset/bike-share-stations)
* [Interesting article visualizing Indego usage](http://www.randalolson.com/2015/09/05/visualizing-indego-bike-share-usage-patterns-in-philadelphia-part-2/)