Skip to main content

Client interface for the Citybikes API

Project description

python-citybikes

https://travis-ci.org/eskerda/python-citybikes.svg?branch=master

python-citybikes is a python client for the Citybikes API.

About Citybikes

Citybikes is a project about making bike sharing data available to both users and developers. It has a nice and easy to use API, but this package might be useful to projects consuming the API.

python-citybikes must not be confused with pybikes:

  • pybikes is a set of tools to access bike sharing data directly from the providers. It’s the library powering the project and the API. If a network is not supported or does not correctly work, it’s there where the issue or the contribution must be sent.

  • python-citybikes is a python wrapper around the Citybikes API.

Installation

$ pip install python-citybikes

Usage

First instantiate a client

>>>> import citybikes
>>>> client = citybikes.Client()

Get the full list of networks

>>>> networks = list(client.networks)
>>>> len(networks)
458
>>>> networks[0]
{'name': 'Opole Bike', 'href': '/v2/networks/opole-bike', 'location': {'lat
itude': 50.6645, 'city': 'Opole', 'country': 'PL', 'longitude': 17.9276}, '
id': 'opole-bike', 'company': ['Nextbike GmbH']}

Get stations from a network

>>>> len(networks[0].stations)
16
>>>> list(networks[0].stations)[0]
{'timestamp': '2016-11-22T16:05:44.318000Z', 'id': 'd8c9f66260759aeb27445b2
cddf2d6b9', 'name': 'Pętla Autobusowa - Dambonia', 'free_bikes': 7, 'empty_
slots': 3, 'latitude': 50.661775266224, 'extra': {'bike_uids': ['60128', '6
0108', '60063', '60062', '60052', '60037', '60190'], 'number': '6011', 'slo
ts': 10, 'uid': '132115'}, 'longitude': 17.888891100884}

Instantiate a network by id directly

>>>> bicing = citybikes.Network(client, uid='bicing')
>>>> bicing['name']
'Bicing'
>>>> len(bicing.stations)
465

Get a network ordered by distance to lat, lng

>>>> # Lets get the nearest network to NY lat, lng
>>>> net, dist = next(iter(client.networks.near(40.7128, -74.0059)))
>>>> net
{'href': '/v2/networks/citi-bike-nyc', 'id': 'citi-bike-nyc', 'gbfs_href':
'https://gbfs.citibikenyc.com/gbfs/gbfs.json', 'location': {'latitude': 40.
7143528, 'country': 'US', 'longitude': -74.00597309999999, 'city': 'New Yor
k, NY'}, 'company': ['NYC Bike Share, LLC', 'Motivate International, Inc.',
'PBSC Urban Solutions'], 'name': 'Citi Bike'}

Get stations from a network ordered by distance to lat, lng

>>>> # Now, get stations ordered by distance to Manhattan center
>>>> sts = net.stations.near(40.7831, -73.9712)
>>>> for s, dist in sts[:5]:
...     print(s['name'])
...
W 82 St & Central Park West
Central Park West & W 85 St
W 84 St & Columbus Ave
Central Park West & W 76 St
W 89 St & Columbus Ave

History

0.1.4 (2019-07-26)

  • Fix python 2 compatibility

0.1.3 (2017-02-13)

  • Add JSON Encoder for resources

0.1.1 (2016-11-22)

  • Improve docs

  • near helpers also return relative distance

0.1.0 (2016-11-17)

  • First release

  • Can navigate the Citybikes API

  • Requests for resources are done only once

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-citybikes-0.1.4.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_citybikes-0.1.4-py2.py3-none-any.whl (5.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file python-citybikes-0.1.4.tar.gz.

File metadata

  • Download URL: python-citybikes-0.1.4.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for python-citybikes-0.1.4.tar.gz
Algorithm Hash digest
SHA256 3ab2db070e7bc02ce030f21caa91b9603eccc3d9df94c0b331c5d250af629ca4
MD5 27cbe5610f5660d69390f85d0a245378
BLAKE2b-256 71a0f85185b4e7ba01aa30f67c442d5308e851a8b043dc0b43085b401afdf624

See more details on using hashes here.

File details

Details for the file python_citybikes-0.1.4-py2.py3-none-any.whl.

File metadata

  • Download URL: python_citybikes-0.1.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for python_citybikes-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b62d92d1daa325105920dcf9eeb2add05181d01756d91227d2ad56e1f172801c
MD5 e70223dc25eca6eabcabaaa53bb483f5
BLAKE2b-256 d6aad5cd24bf7ccfe8220e00cdd49f56763c7e36711cd12364e5c0974f35d3f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page