If the query API module receives more pages (e.g. via the titles parameter) than the limit of the submodule used, it hsows a warning and discards the extra ones. QueryGenerator should work around this but currently doesn't (probably same goes to the other Generator and APISite classes).
One can do something like this for a workaround:
def chunked_iterator(lst, fn, size): return chain(*imap(fn, (lst[pos:pos+size] for pos in xrange(0, len(lst), size)))) for data in chunked_iterator(titles, lambda pages: api.PropertyGenerator('pageimages', titles=pages, site=site), 50): ...
but it's extra complexity and becomes even worse if one wants to preserve other features of the Generator classes like remembering pagename normalizations.