Skip to main content

A simple pythonic wrapper for the Nobel Prize API.

Project description

A simple Python wrapper for the Nobel Prize API.

Quickstart

First, initialize the API wrapper:

import nobel
api = nobel.Api()

Now you have access to the resources defined by the API (prizes, laureates and countries) and their methods.

For example, to list all laureates:

>>> for laureate in api.laureates.all():
...     print '%s (%s)' % (laureate, laureate.born_country)

To filter (check the Nobel Prize API documentation for all available filtering parameters):

>>> api.laureates.filter(gender='female', born_country='Iran')
[<Laureate id=773>, <Laureate id=817>]
>>> api.prizes.filter(year=1969)
[<Prize category="physics" year=1969>, <Prize category="chemistry" year=1969>,
<Prize category="medicine" year=1969>, <Prize category="literature" year=1969>,
<Prize category="peace" year=1969>, <Prize category="economics" year=1969>]

To retrieve a single resource:

>>> laureate = api.laureates.get(id=26)
>>> laureate.firstname
u'Albert'
>>> laureate.surname
u'Einstein'
>>> laureate.prizes
[<Prize category="physics" year=1921>]
>>> laureate.born_country
<Country code="DE" name="Germany">
>>> laureate.died_country
<Country code="US" name="USA">

>>> prize = api.prizes.get(year=2000, category='economics')
>>> print ", ".join([str(l) for l in prize.laureates])
James J. Heckman, Daniel L. McFadden

As you can see, every Prize object is given a laureates attribute populated with a list of its Laureate objects. Likewise, every Laureate objects is given a prizes attribute with Prize objects.

Attributes and query parameters in the Nobel Prize API are mixedCase, but this wrapper uses the more pythonic lower_case_with_underscores style and takes care of the conversion when filtering and accessing attributes.

Installation

To install Nobel, simply:

$ pip install nobel

TODO

  • Documentation and full reference

  • Tests

  • More ORM-ish stuff, like filtering using Prize, Laureate or Country objects as arguments

  • Add relation attributes, like affiliations.

Credits

This is inspired by the beautifully written hipchat-api wrapper.

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

nobel-0.2.tar.gz (6.0 kB view hashes)

Uploaded Source

Supported by

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