everypolitician-popolo for Python
This is a port of the Ruby gem everypolitician-popolo to Python. Even this README is strongly based on that gem.
You can install this package with:
pip install everypolitician-popolo
First you'll need to require the library and read in a file from disk.
from popolo_data.importer import Popolo popolo = Popolo.from_filename('ep-popolo-v1.0.json')
All Popolo classes used by EveryPolitician are implemented:
There are methods defined for each property on a class, e.g. for a Person:
len(popolo.persons) # => 60 person = popolo.persons.first person.id # => u'e3aab23e-a883-4763-be0d-92e5936024e2' person.name # => u'Aaltonen Carina' person.image # => u'http://www.lagtinget.ax/files/aaltonen_carina.jpg' person.wikidata # => u"Q4934081"
You can also find individual records or collections based on their attributes:
popolo.persons.get(name="Aaltonen Carina") # => <Person: Aaltonen Carina> popolo.organizations.filter(classification="party") # => [<Organization: Liberalerna>, # <Organization: Liberalerna på Åland r.f.>, # <Organization: Moderat Samling>, # <Organization: Moderat Samling på Åland r.f.>, # <Organization: Moderat samling>, # <Organization: Moderaterna på Åland>, # <Organization: Obunden Samling>, # <Organization: Obunden Samling på Åland>, # <Organization: Ålands Framtid>, # <Organization: Ålands Socialdemokrater>, # <Organization: Ålands framtid>, # <Organization: Ålands socialdemokrater>, # <Organization: Åländsk Center>, # <Organization: Åländsk Center r.f.>, # <Organization: Åländsk Demokrati>, # <Organization: Åländsk center>]
After checking out the repo, install the dependencies with:
pip install -r requirements.txt
You can then run the tests with:
To release a new version, update the version number in
setup.py and add notes to the
the fixes or new features.
See also: the everypolitician package
In the example above, the Popolo data comes from a downloaded
ep-popolo-v1.0.json), which is the kind of file you
can get from the EveryPolitician website. But your Ruby application can
also interact directly with the EveryPolitician data using the
so you don't need to handle JSON files at all. The value
returned from the
Legislature.popolo method is a
object, which you can use as above. For example, you can
install the package with:
pip install everypolitician
And then use it as follows:
from everypolitician import EveryPolitician australia = EveryPolitician().country('Australia') australia.code # => u'AU' senate = australia.legislature('Senate') senate.popolo().persons.get(name='Aden Ridgeway') # => <Person: Aden Ridgeway>
Bug reports and pull requests are welcome on GitHub at <https://github.com/everypolitician/everypolitician-popolo-python>.
The gem is available as open source under the terms of the MIT License.