Skip to content

Unofficial Python package for interacting with APIs available at Data.gov.sg

License

Notifications You must be signed in to change notification settings

yuhui/datagovsg

Repository files navigation

datagovsg

Python 3 PyPi PyPi status CodeCov coverage downloads GNU General Public License v3.0 Documentation Status

This is an unofficial Python package for interacting with APIs available at Data.gov.sg.

Installing the package

Install the package using pip:

pip install datagovsg

Using the package

The main steps are:

  1. Import a class.
  2. Instantiate an object from the class.
  3. Call a function on that object.

For more information, refer to the documentation.

Usage overview

Interacting with Data.gov.sg's API is done through one of four clients, where each client corresponds with a "set" of endpoints. (Data.gov.sg doesn't categorise its endpoints by set, but it can be assumed from the endpoints' path directories.)

The four clients are: Economy, Environment, Housing and Transport.

Breaking changes from v1.x

The Economy client used to be called Technology.

The old Transport client has been separated into Housing and Transport.

Data.gov.sg no longer provides endpoints for CKAN, so the Ckan client has been deprecated.

Each client contains several public functions, one function per endpoint. A function's name is the same as its corresponding endpoint's ending path.

Most functions accept named arguments, where an argument corresponds with a parameter that the endpoint accepts.

Why have separate clients instead of one single client?

Without knowing how Data.gov.sg's API will evolve, and noticing that Data.gov.sg uses "Categories" to group its endpoints, it seemed like a good idea to keep each set of endpoints in its own contextual client. This allows for each "set" of endpoints to be customised on their own, e.g. the Environment endpoints allow for either a date or date-time to be specified, whereas the Transport endpoints don't.

Reference

Data.gov.sg's Developer Guide