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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a97d6e63f315da7f04ccecf18798f7e895834c9407f68e4a9c3617cbf52b6c8 |
|
MD5 | 10de0f2136ec83b663cd9192a4f28781 |
|
BLAKE2b-256 | 82873ac9c2d29e5f2f933da9faf3b8bd56434dd910c99b286f4ffc284f80b2c7 |