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 details)

Uploaded Source

File details

Details for the file nobel-0.2.tar.gz.

File metadata

  • Download URL: nobel-0.2.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nobel-0.2.tar.gz
Algorithm Hash digest
SHA256 6a97d6e63f315da7f04ccecf18798f7e895834c9407f68e4a9c3617cbf52b6c8
MD5 10de0f2136ec83b663cd9192a4f28781
BLAKE2b-256 82873ac9c2d29e5f2f933da9faf3b8bd56434dd910c99b286f4ffc284f80b2c7

See more details on using hashes here.

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