# -*- coding: utf-8 -*- import json from booby import Model, StringField, IntegerField, BooleanField from finch import Collection from tornado import httpclient, ioloop class Party(Model): id = StringField() name = StringField() url = StringField() def parse(self, body, headers): return parse_party(json.loads(body)) def __repr__(self): return 'Party({}/{})'.format(self.name, self.url) class Parties(Collection): model = Party url = 'http://proyectocolibri.es/api/v1/group/' def parse(self, body, headers): return [parse_party(r) for r in json.loads(body)] def parse_party(raw): import pdb; pdb.set_trace() return { 'id': int(raw['id']), 'name': raw['name'], 'url': raw['owner']['login'] } def main(): def on_parties(parties, error): ioloop.IOLoop.instance().stop() if error: raise error for party in parties: print party parties = Parties(httpclient.AsyncHTTPClient()) parties.all(on_parties) ioloop.IOLoop.instance().start() if __name__ == '__main__': main()