def connected(result, uris): for uri in uris: fetch_dfr = self.client.request(str(uri.path+'?'+uri.get_params_string())) fetch_dfr.addCallback(fetched) fetch_dfr.addCallback(streamed) fetch_dfr.chainDeferred(dfr) return fetch_dfr def fetched(response): return BufferedStream(response.stream).readExactly() def streamed(data): lm.extend([self._create_model(unit) for unit in simplejson.loads(data)]) return lm connect_dfr = self.client.open(MediaUri(self.ml2_base).host) connect_dfr.addCallback(connected, ml2_uris[1])