diff -r 37abba547f8b -r 028f6adffde7 scripts/interactive.py --- a/scripts/interactive.py Sat Aug 01 13:20:05 2009 +0100 +++ b/scripts/interactive.py Sat Aug 01 14:50:53 2009 +0200 @@ -27,10 +27,10 @@ __authors__ = [ '"Sverre Rabbelier" ', + '"Pawel Solyga" ', ] - import code import getpass import os @@ -44,12 +44,13 @@ return raw_input('Username:'), getpass.getpass('Password:') -def deepFetch(queryGen,key=None,batchSize = 100): +def deepFetch(queryGen, key=None, filters=None, batchSize = 100): """Iterator that yields an entity in batches. Args: queryGen: should return a Query object key: used to .filter() for __key__ + filters: dict with additional filters batchSize: how many entities to retrieve in one datastore call Retrieved from http://tinyurl.com/d887ll (AppEngine cookbook). @@ -58,7 +59,7 @@ from google.appengine.ext import db # AppEngine will not fetch more than 1000 results - batchSize = min(batchSize,1000) + batchSize = min(batchSize, 1000) query = None done = False @@ -70,8 +71,14 @@ while not done: print count query = queryGen() + + if filters: + for key, value in filters.items(): + query.filter(key, value) + if key: - query.filter("__key__ > ",key) + query.filter("__key__ > ", key) + results = query.fetch(batchSize) for result in results: count += 1